本屆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}"); } |
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}"); } } |
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 新亮點已經有553次圍觀