java關鍵字詳解(abstract.double.int.switch) (轉)
語法圖解
語法圖解使用了下列規則:
從左到右、從上到下、順著行的路徑讀語法圖解。
在語法圖解中使用了下列符號:
>>- 指示了一個語句的開始
-> 指示該語句在下一行繼續
>- 指示該語句從前一行繼續
->< 指示該語句的終止
句法單元而不是完整語句的圖以 |- 開始並以 -|結束。
要求的項在主要路徑上。
>>-required-item---------------------><
可選的項在主要路徑下。
>>-required-item--+----------------+-----><
'-optional-item--'
選擇專案在一個堆疊中。如果它們被要求,它們是在主路徑上;如果它們是可選的,它們是在主路徑下。
>>-required-item--+-required-choice1-+--+------------------+--><
'-required-choice2-' +-optional-choice1-+
'-optional-choice2-'
一個選擇的預設項是在該主路徑的上面。
.-default-optional-choice-.
>>-required-item--+-------------------------+--><
+-optional-choice1--------+
'-optional-choice2--------'
重複項有一個返回到該主行左上面的箭頭。
關鍵字是小寫的。每一個必須象顯示的那樣被拼寫。
變數是大小寫混合的(例如 InterfaceTypeList)。每個代表一個提供的名稱或值。
包括的標點符號是該語法語句的部分。
abstract關鍵字
類語法
>>-+--------+-abstract-class-ntifier-+-------------------+-> '-public-' '-extends-ClassType-' >-+------------------------------+-ClassBody->< '-implements-InterfaceTypeList-'
方法語法
>>-+-----------+-abstract-ResultType-Identifier-> +-public----+ '-protected-' >-(-+---------------------+-)-;->< '-FormalParameterList-'
描述
abstract 關鍵字被用來建立抽象類和方法。抽象類不能被例項化,它們的用途是向子類提供通用的資訊。抽象類可以包含正常的類包含的任何東西,也就是說,類和例項變數,以及帶有任何修飾詞的方法和構造子。只有抽象類可能有抽象方法。如果一個不是抽象的類包含一個抽象方法,那麼,將會出現編譯錯誤。如果下列的一個成立,那麼一個有抽象方法:
- 它顯式地宣告瞭一個 abstract 方法。
- 它從它的直接父類繼承了一個抽象方法。
- 一個直接的類的父介面宣告或繼承了它的一個方法(這因此必須是 abstract )以及該類既沒有宣告也沒有繼承一個實現的方法。
如果使用者宣告 private,static,和 final 方法為 abstract,編譯錯誤將出現。不可能重設一個private方法,因此一個 abstract private 方法將永遠不會被實現。 Static 方法總是可用的,因此必須有一個實現; static abstract 方法將永遠沒有實現。 final 方法不能被重設,因此不會有 final abstract 方法的實現。
一個抽象類可以透過提供另一個抽象方法宣告來覆蓋一個抽象方法。這可以提供一個放置文件註釋的地方或來宣告一個可以丟擲的更加限制的被檢查異常集合。
示例
在以下示例中,抽象類 MyAbstractClass 有一個通常方法和一個抽象方法。該具體類 MyConcreteClass 繼承自 MyAbstractClass 並且提供了 abstractMethod 的一個實現。
public abstract class MyAbstractClass { public void regularMethod() { abstractMethod(); } protected abstract void abstractMethod(); }
public class MyConcreteClass extends MyAbstractClass { protected void abstractMethod() { // does something interesting } }
下列程式碼片段顯示 MyAbstractClass 和 MyConcreteClass 類的合法和使用。
// 非法。編譯錯誤。 MyAbstractClass abstractClass = new MyAbstractClass(); // 合法。 MyConcreteClass concreteClass = new MyConcreteClass(); // 非法。受保護方法。 concreteClass.abstractMethod();
// 合法。一般方法。 concreteClass.regularMethod();
double 關鍵字
描述
該 double 數值型別表示一個雙精度型 64 位 IEEE 754 浮點數。一個 double 例項變數、類變數和陣列元素的預設值是零,也就是說,0.0。double 的值是從 4.9e-324 到 1.7976931348623157e308。
一個浮點數值文字被假定為是型別 double; 可選的,使用者可以用一個 ASCII 字元 D 或 d 作它們的字尾。
示例
使用者可以宣告一個 double 值,並且在宣告它是給它一個初始值:
double exampleDouble = 5.0;
另外的 double 字面量的例子包括:
1e1
2.
.3
0.0
3.14
1e-9d
1e137
int 關鍵字
描述
該 int 數值型別代表了一個 32-bit 帶正負號的二進位制補碼整數。一個 int 實體變數、類變數和陣列元素的預設值是零,也就是說,0。 int 的值是閉區間 -2147483648 到 2147483647 的整數。
示例
使用者可以宣告一個 int 值,並且在宣告它是給它一個初始值:
int exampleInt = 1000; //name of the variable is exampleInt and its value is 1000
switch
語法
v-------------------------------------------' >>-switch-(-Expression-)-{-+-case-ConstantExpression-:-BlockStatements-+-> >-+---------------------------+-}->< '-default-:-BlockStatements-'
描述
該 switch 語句使使用者將一個變數與不同的測試值相比較。它根據一個的值在一個迴圈中將控制傳送到幾個語句中的一個。如果該測試值與任何一個 case 值相等,那麼相應的結果發生並且 break 語句引起 switch 語句的結束。 Expression 的型別必須是 byte、short 、int 或 long,否則將出現一個編譯錯誤。
一個 switch 語句體必須是一個塊。任何被該塊立即包含的語句可能被用一個或多個 case 或 default 標籤所標記。
當 switch 語句被執行,首先該 Expression 被求值。如果Expression 的求值因為某種原因突然完成, switch 語句會因為同樣的原因突然完成。否則,執行將透過將 Expression 的值與每個 case 常量比較而繼續。 這以後,基於下列規則,做出判定:
- 如果 case 常量的之一等於 Expression 的值,那麼我們說該 case 匹配,並且所有在 switch 塊中匹配的 case 標籤後的語句,如果有的話,被順序執行。如果所有這些語句正常完成,或者如果在該匹配的 case 標籤後沒有語句,那麼整個 switch 語句正常完成。
- 如果沒有 case 匹配,有一個 default 標籤,那麼所有在該 switch 塊中匹配的 default 標籤後的語句,如果有的話,被順序執行。 如果所有這些語句正常完成,或者如果在該 default 標籤後沒有語句,那麼整個 switch 語句正常完成。
- 如果沒有 case 匹配並且沒有 default 標籤,那麼沒有進一步的動作發生並且該 switch 語句正常完成。
- 所有下列必須是正確的否則將出現編譯錯誤:
- 與switch語句相關的每個case常量表示式必須是可賦予 switch 的 Expression 的型別的。
- 不能有兩個與switch語句相關的case常量表示式具有相同的值。
- 至多隻有一個 default 標籤可與同一個 switch 語句相關聯。
示例
在下面的例子中,我們使用一個 for 迴圈來在 switch 語句中迭代四次,用零到三的值來測試它。
for (int test = 0; test <= 3; test++) { switch (test){ case 1: System.out.println("Good"); break; case 2: System.out.println("Very Good"); break; default: System.out.println( "Boring" ); break; } }
上面程式碼產生下列輸出:
Boring Good Very Good Boring
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-989346/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java 10 var關鍵字詳解和示例教程Java
- Javascript中this關鍵字詳解JavaScript
- 萬字乾貨|Synchronized關鍵字詳解synchronized
- Python關鍵字yield詳解Python
- Python 關鍵字 yield 詳解Python
- JAVA關鍵字及其作用解釋Java
- C++ typeid關鍵字詳解C++
- C語言中static關鍵字詳解C語言
- c# yield關鍵字原理詳解C#
- 關鍵字引數與非關鍵字引數(可變引數)詳解
- C/C++中extern關鍵字詳解C++
- [java]transient關鍵字Java
- java中this關鍵字Java
- java transient關鍵字Java
- java之this關鍵字Java
- Java培訓教程之this關鍵字講解Java
- 深入瞭解 Java 的 volatile 關鍵字Java
- C/C++中volatile關鍵字詳解C++
- this 關鍵字的理解--java學習筆記(轉)Java筆記
- Java關鍵字(八)——synchronizedJavasynchronized
- Java native關鍵字Java
- Java 的 static 關鍵字Java
- JAVA中的關鍵字Java
- JAVA static關鍵字理解Java
- Java Final關鍵字Java
- Java native 關鍵字Java
- java之static關鍵字Java
- java之super關鍵字Java
- synchronized關鍵字 - [JAVA心得]synchronizedJava
- [java基礎]之JAVA關鍵字Java
- Python 關鍵字global全域性變數詳解Python變數
- Java™ 教程(使用super關鍵字)Java
- Java volatile關鍵字作用Java
- Java進階——super關鍵字Java
- Java 關鍵字之 finalJava
- Java中final關鍵字Java
- Java中this與super關鍵字Java
- Java volatile關鍵字解析Java