JavaFX的變量,數(shù)據(jù)類型,運算符.doc_第1頁
JavaFX的變量,數(shù)據(jù)類型,運算符.doc_第2頁
JavaFX的變量,數(shù)據(jù)類型,運算符.doc_第3頁
JavaFX的變量,數(shù)據(jù)類型,運算符.doc_第4頁
JavaFX的變量,數(shù)據(jù)類型,運算符.doc_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

一、JavaFX的變量1.定義變量在JavaFx中需要通過var關鍵字來定義變量(如同JavaScript一樣),變量的類型是可以省略的,省略的話變量的類型通過實際賦值的類型來推斷。變量定義格式為:var 變量名:變量類型 = 變量值;例如:var i:Integer = 12;var i1 = 11;var name:String = hello;var name1 = hello;2.標識符標識符的規(guī)范和Java一樣,下劃線或者字母開頭,由下劃線、字母、數(shù)字組成。JavaFx還接受另外一種規(guī)范,包含在之間的,任意字符串,包括空格,可以作為JavaFx中的標識符。這樣可以把JavaFx的關鍵字或者其他保留字,當作普通標識符來使用。例如:var = 100;var = hi;的語法還有另外一種用意。在Java和JavaFx之間有些關鍵字和保留字不盡相同,有了這個語法就能克服了。例如:有些在Java代碼里面的方法名稱在JavaFx里面恰好是關鍵字。var textArea = new JTextArea();textArea.(Hello, 0); JavaFX的變量類型有三種,分別是腳本變量,實例變量和局部變量。3.腳本變量(類似于Java中的全局變量,也就是public static 修飾的變量)腳本變量是在類定義或塊定義之外定義的變量,腳本變量可作用于整個應用。var thing = Thing;class A function getThing() : String thing 如果定義腳本變量時沒有使用訪問修飾符,那么它僅能作用于一個腳本文件。如果使用了訪問修飾符那么它可以如腳本成員那樣被其他部分訪問。訪問修飾符包括: public, protected, package, public-read和public-init. 例如下面是一個文件名為Foo.fx的腳本文件:public def bohr = 0.529177e-10Noof.fx腳本文件也可以訪問bohr變量:println(Foo.bohr)。腳本變量的生存期為整個應用運行時間.4.實例變量(類似于Java中的屬性)實例變量是在類定義中聲明的成員變量. 在類中可直接通過變量名來訪問. 在類外則通過對象成員的方式來訪問。例如:def anA = A rat: true ;println(anA.rat);class A var rat : Boolean; function isIt() rat class B function wellisIt() anA.rat 訪問修飾符用來控制實例變量的可見性. 如果沒有使用訪問修飾符,實例變量只能作用于一個腳本文件。實例變量的生存期為它所在的對象實例的生存期.5. 局部變量(同Java完全相同)局部變量定義在塊語句中, 或者在方法中. 局部變量作用于一個塊范圍. 局部變量不可以應用訪問修飾符.局部變量的生存期為一個塊執(zhí)行時間。不同于腳本和實例變量, 局部變量定義是一個表達式,具有類型和返回值. 有該局部變量的類型和返回值決定.形式參數(shù), 迭代變量和其他表達式參數(shù)。方法形式參數(shù)作用于該方法. For循環(huán)迭代變量作用于該for循環(huán)體. 表達式參數(shù)作用于該表達式.這些變量都不可以被賦值。二、JavaFX的數(shù)據(jù)類型每一個JavaFX的變量, 方法和表達式都具有一個類型, 通常情況下由程序上下文來決定. 變量可以被顯式地制定一個特定類型; 方法也可以顯式地指定參數(shù)和返回值的類型.類型標識由類型標識符和基數(shù)構成.1. 類型標識符類型標識符通常都是類名或者方法名. 下面是一些類型標識符舉例:MyClassjava.util.MapDurationjavafx.animation.TimelineInteger方法名通常包括參數(shù)名和返回值類型 - 如果沒有方法名將不特定于任何方法實現(xiàn). 下面是一個方法類型的例子:function(:Number):Booleanfunction(:Integer,:Integer):SplotchedBallfunction():Integer所有的類型標識符都是java.lang.Object的子類.2. JavaFx基本數(shù)據(jù)類型對應于Java中的數(shù)據(jù)類型JavaFx JavaString java.lang.StringBoolean java.lang.BooleanNumber java.lang.NumberIntegerbyte,short,int,long,BigIntegerDuration 無前面四種類型已經(jīng)為Java程序員所熟識,并經(jīng)常使用的了,比較簡單,這里著重解釋一下JavaFx所獨有的Duration類型。Duration,即javafx.lang.Duration,用來表示一個時間段(單位可以為毫秒,秒,分,小時),主要用于JavaFx里面動畫的實現(xiàn)。我們來看一下Duration的例子:5ms; /5 毫秒10s; /10 秒30m; /30 分1h; /1 小時運行一下下面的代碼,把以上幾個Duration值輸出看一下結果:System.out.println(5ms);System.out.println(10s);System.out.println(30m);System.out.println(1h);3. 基數(shù)基數(shù)表示該變量聲明可以包含多少個元素. 有如下三種。可選(0個或1個)可選表示可以有也可以沒有實際元素. 總的來說包括所有自定義對象和大部分其他對象. 例如:var x : Foo;表示x變量可以持有一個Foo變量或是一個空引用null.必須(1個)必須表示變量必須持有一個元素, 包括如下內(nèi)建對象String, Integer, Number, Boolean和Duration. 例如:var k : Integer;表示變量k持有一個Integer.這種情況下空引用是不被允許的. 否則的話會被自動替換為默認值.序列(0個到多個)序列表示變量可以持有0個到多個元素. 這需要顯示說明基數(shù)為序列. 例如:var seq : Integer;表示seq變量可以持有多個Integer元素.4.默認值每個JavaFX數(shù)據(jù)類型都具有一個默認值. 對于基數(shù)是可選的類型默認值是null. 例如:var x : Foo; println(x);這會在控制臺輸出一個null.對于序列來講默認值就是空序列. 例如:var seq : Integer;println(sizeof seq);這會在控制臺輸出一個0值.對于基數(shù)是必須的類型來講都會有一個確定的默認值.var k : Integer; println(k);這會在控制臺輸出一個0值, 因為Integer的默認值是0值.三、運算符運算符是一些特殊的符號,用來對一個或兩個操作數(shù)執(zhí)行特定的運算,然后返回一個結果。JavaFX編程語言提供賦值運算符、算術運算符、一元運算符、相等和關系運算符、條件運算符和類型比較運算符。1. 賦值運算符賦值運算符 = 是您將遇到的最常用的運算符。使用該運算符可以將其右側的值賦給其左側的操作數(shù):result = num1 + num2;days = Mon,Tue,Wed,Thu,Fri;2. 算術運算符使用算術運算符可以執(zhí)行加、減、乘和除運算。mod 運算符用一個操作數(shù)除以另一個操作數(shù)并將余數(shù)作為結果返回。+ (加運算符)- (減運算符)* (乘運算符)/ (除運算符)mod (求余運算符)以下腳本提供了一些示例:var result = 1 + 2; / result is now 3println(result);result = result - 1; / result is now 2println(result);result = result * 2; / result is now 4println(result);result = result / 2; / result is now 2println(result);result = result + 8; / result is now 10println(result);result = result mod 7; / result is now 3println(result); 還可以結合使用算術運算符與賦值運算符來創(chuàng)建復合賦值。例如,result += 1; 和 result = result+1; 都會將 result 的值加 1。var result = 0;result += 1;println(result); / result is now 1result -= 1;println(result); / result is now 0result = 2;result *= 5; / result is now 10println(result);result /= 2; / result is now 5println(result); 唯一不能按照此方式使用的算術運算符是 mod。例如,如果您希望將 result 除以 2,然后將余數(shù)重新賦給其自身,則需要編寫:result = result mod 2;3. 一元運算符大多數(shù)運算符都需要兩個操作數(shù),而一元運算符僅使用一個操作數(shù)來執(zhí)行諸如按一遞增/遞減某個值、對某個數(shù)字求反或?qū)Σ紶栔登蠓粗惖牟僮鳌? 一元減運算符;對某個數(shù)字求反+ 遞增運算符;按 1 遞增某個值- 遞減運算符;按 1 遞減某個值not 邏輯求補運算符;對布爾值求反 以下腳本用于測試一元運算符:var result = 1; / result is now 1result-; / result is now 0println(result);result+; / result is now 1println(result);result = -result; / result is now -1println(result);var success = false;println(success); / falseprintln(not success); / true遞增/遞減運算符可以在操作數(shù)之前(前綴)或之后(后綴)應用。代碼 result+; 和 +result; 都將導致 result 的值加 1。二者之間的唯一區(qū)別就是前綴版本 (+result) 得到的是遞增后的值,而后綴版本 (result+) 得到的是原始值。(您可以通過以下方法來記憶:+result 先執(zhí)行遞增再獲得值,而 result+ 先獲得值再執(zhí)行遞增。)如果您只是執(zhí)行簡單的遞增/遞減,則選擇哪個版本都一樣。但是,如果您將該運算符作為較大表達式的一部分進行使用,則選擇不同的版本會對結果產(chǎn)生很大的影響。4. 關系運算符相等和關系運算符確定一個操作數(shù)是大于、小于、等于還是不等于另一個操作數(shù)。=等于!=不等于大于=大于或等于小于 num2); / prints falseprintln(num1 = num2); / prints falseprintln(num1 num2); / prints trueprintln(num1 = num2); / prints true5. 條件運算符條件與 (and) 和條件或 (or) 運算符用于對兩個布爾表達式執(zhí)行條件運算。這些運算符會表現(xiàn)出“短路”行為,也就是說,僅在必要時才計算第二個操作數(shù):例如,對于 and 運算,如果第一個表達式的結果為 false,將不計算第二個表達式。對于 or 運算,如果第一個表達式的結果為 true,將不計算第二個表達式。andor 以下腳本定義了 username 和 password 變量,然后輸出各個條件的匹配項,從而說明了這些運算符的用法:def username = foo;def password = bar;if (username = foo) and (password = bar) println(Test 1: username AND password are correct);if (username = ) and (password = bar) println(Test 2: username AND password is correct);if (username = foo) or (password = bar) println(Test 3: username OR password is correct);if (us

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論