歡迎您光臨本站 註冊首頁

技術大會:JavaFX 新亮點

←手機掃碼閱讀     火星人 @ 2014-03-10 , reply:0

  本屆JavaOne年會第一天,與會人數最多的會議就是Sun公司程序員Stuart Marks對JavaFX編程語言的介紹.這次會議颳起了一場旋風,而JavaFX程序員都不應該錯過.

  Stuart將JavaFX描述為用於互動式圖形,媒體和動畫的腳本語言.他還指出了幾個關鍵的JavaFX技術特性:

  ·JavaFX是對象指向型

  ·它是一種表達式語言

  ·它兼具說明性和程序性兩種特性

  ·融合了Java技術

  ·它吸納了時間這一概念

  JavaFX具備很多類似腳本的特性,以及數據綁定的便利.它還能讓程序員在類的內部和外部創建函數,函數變數甚至是匿名函數.此外,它還擁有豐富的對象功能,包括繼承JavaFX 1.2中類和新型仿類的能力,這與Java技術中的介面相似.

  Marks接著介紹到,JavaFX技術有點像腳本.一個JavaFX腳本基本上就是一個表達式序列.換言之,JavaFX中的一切,包括循環,條件甚至是塊,事實上都是一個表達式,這些表達式會產生數值,即便這些值無效.

  在這次會議上,與會者還了解到在JavaFX環境中,所有的變數都必須申明,或是使用Var 關鍵詞,這一關鍵詞能指明變數值可以改變或使用def關鍵詞,這一關鍵詞會指明不能重設變數,除非使用bind關鍵詞.但是可能的話,JavaFX可以使用類型引用來確定變數的數據類型.

  然而,儘管JavaFX可以使用類型引用,Marks指出JavaFX是靜態類型.換言之,該語言指出了變數在編譯時,而不是運行時的類型.

  JavaFX的一些基本類型有:Boolean,Number,Integer和String.字元串的作用與Java中的相當,雖然是在JavaFX中,但是你卻不擁有空的字元串引用——JavaFX不會像Java編程語言那樣拋出NullPointerExceptions.空的字元串引用僅僅映射到空的String.

  另一個有用的信息是:你還可以將完整表達式放到大括弧以內,這樣表達式就能將合適的數值插入字元串.最終,JavaFX也會擁有Duration數據類型,Duration可以用來表達時間數量,通常它會用在動畫中.

  在JavaFX中,可以用函數關鍵字聲明函數,或許它還包含括弧內所陳述的零或其他更多的參數.此外,函數或許包含了返回值,和Java不同,它在參數之後申明且用冒號分隔了.例如,JavaFX中的函數看上去像這樣:

  

function add(argOne: Integer, argTwo: Integer) {

  result = argOne argTwo;

  println("{argOne} {argTwo} = {result}");

  }

  會上,還對JavaFX類進行了介紹.類是用類關鍵詞來表述的.和元函數在大括弧中表述.和Java編程語言一樣,你可以使用擴展關鍵詞.而不同的是,如果你想覆蓋超級類中的方法,你必須在表述類之前明確指定覆蓋關鍵字.這裡是JavaFX中的類:

  

class Customer {

  var firstName: String;

  var lastName: String;

  var phoneNum: String;

  var address: Address;

  function printName() {

  println("Name: {firstName} {lastName}");

  }

  function printPhoneNum(){

  println("Phone: {phoneNum}");

  }

  function printAddress(){

  println("Street: {address.street}");

  println("City: {address.city}");

  println("State: {address.state}");

  println("Zip: {address.zip}");

  }

  }

  之後,Marks花了一些時間介紹序列.序列類似Java編程語言中的數組,不同的是多了一些簡化數據管理的功能.例如,你可以通過第一次輸入(第二次和一次輸入都緊隨其後)來縮減序列中的已知範圍.可以用sizeof運算符來確定序列大小.也可以將數值添加到序列的末端,指定索引值的前面或後面.此外,還可以用delete關鍵詞來刪除序列中的數值.

  Java編程語言有很多類似之處,可以使用 for/in 語句來迭代序列中的每個項目,為循環迭代的本地變數分配當前值.此處的區別是:Java在本地變數和數組間使用了冒號,JavaFX在本地變數和序列之間使用關鍵詞.

  綁定是JavaFX技術中最重要的特性.綁定的變數通過立刻將變數映射的更改映射給另一個變數來運作,這樣一來這兩個變數就可以保持同步.但是,Marks指出bind執行最低限度的重新計算,這意味著JavaFX會僅對那些綁定部分進行重新計算.變數不是JavaFX中唯一能被綁定的.還可以在對象文字實例前使用bind關鍵詞以便在每次對象更改時能告知JavaFX,作為代表的變數應該被更新以只是當前域的新對象.

  Replace觸發器與數據綁定相反,可以在變數值變更時將其設置為執行代碼.在JavaFX中,關鍵詞on replace用來創建替代觸發.

  ,可以使用數據包修飾語來修飾類,變數或函數.Public修飾語與Java中的工作原理一樣:它指定了可以被訪問的類,變數或函數.受保護的修飾語訪問受限.Java中,默認狀態下能訪問package private.

  Public-read和public-init修飾語是JavaFX技術中的新成員,它們僅用於變數.Public-read修飾語意思是變數可以從任意位置讀取,但只能用相同的腳本重設.同樣,public-init指定了變數可以從任意位置讀取和初始化,但只能用相同腳本重設.你還可以預先將package或protected設置為關鍵詞倆擴大重設變數值的範圍.

  因此,JavaFX中的編程與Java技術十分類似,但是執行類有所不同,例如:

  ·不存在get ters,相反,要是用public-read變數

  ·不存在set ters,相反,使用帶有觸發器的public 變數

  ·不存在類構造器.相反,使用public-init變數和對象文字

  ·監測和調回相對較少.相反,你應該表明陳述語句並允許其上的綁定


[火星人 ] 技術大會:JavaFX 新亮點已經有474次圍觀

http://coctec.com/docs/java/show-post-61503.html