JAVA關鍵字詳解
JAVA關鍵字詳解
1 final數據:
1>對于基本類型前加以final修飾,表示被修飾的變量為常數,不可以修改。一個既是static有是final的字段表示只占據一段不能改變的存儲空間。
2>final用于對象應用時,final使應用恒定不變。一旦引用被初始化指向一個對象,就無法再把它指向另一個對象。
3>final方法:一是把方法鎖定,以防止繼承類修改它的含義,二是確保繼承中使方法行為保持不變,并且不會被覆蓋。類中所有的private方法都隱式地指定為是final。
4>final參數:對于基本類型的變量,這樣做并沒有什么實際意義,因為基本類型的變量在調用方法時是傳值,也就是說你可以在方法中更改這個參數變量而不會影響到調用語句,然而對于對象變量,卻顯得很實用,以為對象變量在傳遞時是傳遞其引用,這樣你在方法中對對象變量的修改也會影響到調用語句的對象變量,當你在方法中不需要改變作為參數的變量時,明確使用final進行聲明,會防止你無意的修改而影響到調用方法。
5>final類:當將某個類的整體定義為final時,就表明了該類不允許被繼承。
2 this 和super
1>在你的方法中的某個刑參名與當前對象的某個成員有相同的名字,這時為了不至于混淆,你便要明確使用this關鍵字來指明你要使用某個成員,使用方法是this.成員名,而不帶this的那個便是刑參。另外,還可以用this.方法名來引用當前對象的某個方法,但這時this就不是必須的了,你可以直接用方法名來訪問那個方法。
2>當父類的方法被重寫后可以用super來調用父類的方法。如果父類的方法可以被子類調用,那你可以象使用this一樣使用它,用super.父類中的成員名的方式來調用。
3>super和this直接在其后跟上適當的參數,因此它的意義就有了變化。super后加參數的是用來調用父類中具有相同形式的構造函數,this后加參數則調用的是當前具有相同參數的構造函數。
4> this通常指代當前對象,super 通常指帶父類。
3 static
1>通常在一個類中定義一個方法為static,就是說無須本類的對象就可以直接調用。
2>靜態變量和靜態方法類似。所有此類實例共享此靜態變量,也就是說類裝載時,只分配一塊存儲空間,所有此類的對象都可以操控此塊存儲空間,當然對于final就另當別論了。
3>static定義的變量會優先于任何其他非static變量,不論其出現順序如何。
4>static{}著是用來顯式的靜態變量初始化,這段代碼只會初始化一次,且在類被第一次裝載時。
5>在涉及到繼承的時候,會先初始化父類的static變量,然后是子類的。
6>通常一個普通類不允許聲明為靜態的,只有一個內部類才可以。這時這個聲明為靜態的內部類可以直接作為一個普通類來使用,而不需要實例一個外部類。
4 Abstract抽象
1>用在類的聲明中來指明一個類是不能被實例化的,但是可以被其他類繼承。一個抽象類可以使用抽象方法,抽象方法不需要實現,但是需要在子類中被實現。它的用途是向子類提供通用的信息。抽象類可以包含正常的類包含的任何東西,也就是說,類和實例變量,以及帶有任何修飾詞的方法。只有抽象類可能有抽象方法。如果一個不是抽象的類包含一個抽象方法,那么將會出現編譯錯誤。
例子:如果下列的一個成立,那么一個有抽象方法:
a.它顯式的聲明了一個abstract方法。
b.它從它的直接父類繼承了一個抽象方法。
c.一個直接的類的父借口聲明或繼承了它的一個方法(這因此必須是abstract)
2>如果用戶聲明private,static,和final方法為abstarct,編譯錯誤將出現。不可能重設一個private方法,因為一個abstarct private 永遠不能被實現。static方法總是可用的,因此必須有一個實現;static abstract 將永遠沒有實現。final方法不能被重設,因此不回有final abstract方法的實現。
1.abstract Java 關鍵字
abstract 關鍵字可以修改類或方法。
abstract 類可以擴展(增加子類),但不能直接實例化。
abstract 方法不在聲明它的類中實現,但必須在某個子類中重寫。
示例
public abstract class MyClass
{
}
public abstract String myMethod();
注釋
采用 abstract 方法的類本來就是抽象類,并且必須聲明為 abstract。
abstract 類不能實例化。
僅當 abstract 類的子類實現其超類的所有 abstract 方法時,才能實例化 abstract 類的子類。這種類稱為具體類,以區別于 abstract 類 。
如果 abstract 類的子類沒有實現其超類的所有 abstract 方法,該子類也是 abstract 類。
abstract 關鍵字不能應用于 static、private 或 final 方法,因為這些方法不能被重寫,因此,不能在子類中實現。
final 類的方法都不能是 abstract,因為 final 類不能有子類。
2.boolean 變量的值可以是 true 或 false。
示例
boolean valid = true;
if (valid)
{
<statement>
}
注釋
boolean 變量只能以 true 或 false 作為值。boolean 不能與數字類型相互轉換。
包含 boolean 操作數的表達式只能包含 boolean 操作數。
Boolean 類是 boolean 原始類型的包裝對象類
3.break 關鍵字用于提前退出 for、while 或 do 循環,或者在 switch 語句中用來結束 case 塊。
示例
for (i=0; i<max; i++)
{
if (<loop finished early>)
{
break;
}
}
int type = <some value>;
switch (type)
{
case 1:
<statement>
break;
case 2:
<statement>
break;
default:
<statement>
}
注釋
break 總是退出最深層的 while、for、do 或 switch 語句。
4.byte Java 關鍵字
byte 是 Java 原始類型。
byte 可存儲在 [-128, 127] 范圍以內的整數值。
示例
byte b = 124;
注釋
Byte 類是 byte 原始類型的包裝對象類。它定義代表此類型的值的范圍的 MIN_VALUE 和 MAX_VALUE 常量。
Java 中的所有整數值都是 32 位的 int 值,除非值后面有 l 或 L(如 235L),這表示該值應解釋為 long。
5.case 用來標記 switch 語句中的每個分支。
示例
int arg = <some value>;
switch (arg)
{
case 1:
<statements>
break;
case 2:
<statements>
break;
default:
<statements>
break;
}
注釋
case 塊沒有隱式結束點。break 語句通常在每個 case 塊末尾使用,用于退出 switch 語句。
如果沒有 break 語句,執行流將進入所有后面的 case 和/或 default 塊。
6.catch Java 關鍵字
catch 關鍵字用來在 try-catch 或 try-catch-finally 語句中定義異常處理塊。
示例
try
{
<可能引發異常的塊>
}
catch (<java.lang.Exception 或子類> e)
{
<處理異常 e 的代碼>
}
try
{
<可能引發其他異常的塊>
}
catch (FooException e)
{
<處理 FooException e 的代碼>
}
catch (BarException e)
{
<處理 BarException e 的代碼>
}
try
{
<可能引發異常的塊>
}
catch (<java.lang.Exception 或子類> e)
{
<處理異常 e 的代碼>
}
finally
{
<有異常或無異常情況下都執行的語句>
}
注釋
開始和結束標記 { 和 } 是 catch 子句語法的一部分,即使該子句只包含一個語句,也不能省略這兩個標記。
每個 try 塊都必須至少有一個 catch 或 finally 子句。
如果某個特定異常類未被任何 catch 子句處理,該異常將沿著調用棧遞歸地傳播到下一個封閉 try 塊。如果任何封閉 try 塊都未捕獲到異常,Java 解釋器將退出,并顯示錯誤消息和堆棧跟蹤信息。
7.char Java 關鍵字
char 是 Java 原始類型。
char 變量可以存儲一個 Unicode 字符。
示例
char delimiter = ';';
注釋
可以使用下列 char 常量:
/b - 空格
/f - 換頁
/n - 換行
/r - 回車
/t - 水平制表符
/' - 單引號
/" - 雙引號
/" - 反斜杠
/xxx - 采用 xxx 編碼的 Latin-1 字符。/x 和 /xx 均為合法形式,但可能引起混淆。
/uxxxx - 采用十六進制編碼 xxxx 的 Unicode 字符。
Character 類包含一些可用來處理 char 變量的 static 方法,這些方法包括 isDigit()、isLetter()、isWhitespace() 和 toUpperCase()。
char 值沒有符號。
8.class Java 關鍵字
class 關鍵字用來聲明新的 Java 類,該類是相關變量和/或方法的集合。
類是面向對象的程序設計方法的基本構造單位。類通常代表某種實際實體,如幾何形狀或人。類是對象的模板。每個對象都是類的一個實例。
要使用類,通常使用 new 操作符將類的對象實例化,然后調用類的方法來訪問類的功能。
示例
public class Rectangle
{
float width;
float height;
public Rectangle(float w, float h)
{
width = w;
height = h;
}
public float getWidth()
{
return width;
}
public float getHeight()
{
return height;
}
}
9.continue Java 關鍵字
continue 關鍵字用來跳轉到 for、while 或 do 循環的下一個迭代。
示例
for (i=0; i<max; i++)
{
<statements>
if (<done with this iteration>)
{
continue;
}
<statements>
}
注釋
continue 總是跳到最深層 while、for 或 do 語句的下一個迭代。
10.default Java 關鍵字
default 關鍵字用來標記 switch 語句中的默認分支。
示例
int arg = <some value>;
switch (arg)
{
case 1:
<statements>
break;
case 2:
<statements>
break;
default:
<statements>
break;
}
注釋
default 塊沒有隱式結束點。break 語句通常在每個 case 或 default 塊的末尾使用,以便在完成塊時退出 switch 語句。
如果沒有 default 語句,其參數與任何 case 塊都不匹配的 switch 語句將不執行任何操作。
11.do Java 關鍵字
do 關鍵字用于指定一個在每次迭代結束時檢查其條件的循環。
示例
do
{
<statements>
}
while (!found);
注釋
do 循環體至少執行一次。
條件表達式后面必須有分號。
12.double Java 關鍵字
double 是 Java 原始類型。
double 變量可以存儲雙精度浮點值。
示例
double ratio = .01;
double diameter = 6.15;
double height = 1.35E03; // 1.35 * 103 或 1350.0
double height = 1e-2; // 1.0 * 10-2 或 0.01
注釋
由于浮點數據類型是實際數值的近似值,因此,一般不要對浮點數值進行是否相等的比較。
Java 浮點數值可代表無窮大和 NaN(非數值)。Double 包裝對象類用來定義常量 MIN_VALUE、MAX_VALUE、NEGATIVE_INFINITY、POSITIVE_INFINITY 和 NaN。
13.else Java 關鍵字
else 關鍵字總是在 if-else 語句中與 if 關鍵字結合使用。else 子句是可選的,如果 if 條件為 false,則執行該子句。
示例
if (condition)
{
<statements>
}
else
{
<statements>
}
14.extends Java 關鍵字
extends 關鍵字用在 class 或 interface 聲明中,用于指示所聲明的類或接口是其名稱后跟有 extends 關鍵字的類或接口的子類。
示例
public class Rectangle extends Polygon
{
}
注釋
在上例中,Rectangle 類繼承 Polygon 類的所有 public 和 protected 變量和方法。
Rectangle 類可以重寫 Polygon 類的任何非 final 方法。
一個類只能擴展一個其他類。
15.false Java 關鍵字
false 關鍵字代表 boolean 變量的兩個合法值之一。
示例
boolean isComplete = false;
16.final Java 關鍵字
final 關鍵字可以應用于類,以指示不能擴展該類(不能有子類)。
final 關鍵字可以應用于方法,以指示不能重寫任何子類中的方法。
示例
public final class MyFinalClass
{
}
public class MyClass
{
public final String myFinalMethod()
{
<statements>
}
}
注釋
一個類不能同時是 abstract 又是 final。abstract 意味著必須擴展類,final 意味著不能擴展類。
一個方法不能同時是 abstract 又是 final。abstract 意味著必須重寫方法,final 意味著不能重寫方法。
17.finally Java 關鍵字
finally 關鍵字用來定義始終在 try-catch-finally 語句中執行的塊。
finally 塊通常包含清理代碼,用在部分執行 try 塊后恢復正常運行。
示例
try
{
<可能引發異常的塊>
}
catch (<java.lang.Exception 或子類> e)
{
<處理異常 e 的代碼>
}
finally
{
<有異常或無異常情況下都執行的語句>
}
注釋
開始和結束標記 { 和 } 是 finally 子句語法的一部分,即使該子句只包含一個語句,也不能省略這兩個標記。
每個 try 塊都必須至少有一個 catch 或 finally 子句。
如果執行 try 塊的任何部分,不論是否出現異常,也不論 try 或 catch 塊是否包含 return、continue 或 break 語句,都一定會執行 finally 塊中的代碼。
如果不出現異常,控件將跳過 try 塊,進入 finally 塊。
如果在執行 try 塊期間出現異常,并且相應的 catch 塊包含 break、continue 或 return 語句,控件將首先穿過 finally 塊,之后再執行 break、continue 或 return。
18.float Java 關鍵字
float 是 Java 原始類型。
float 變量可以存儲單精度浮點值。
示例
float ratio = .01;
float diameter = 6.15;
float height = 1.35E03; // 1.35 * 103 或 1350.0
float height = 1e-2; // 1.0 * 10-2 或 0.01
注釋
使用此關鍵字時應遵循下列規則:
Java 中的浮點文字始終默認為雙精度。要指定單精度文字值,應在數值后加上 f 或 F,如 0.01f。
由于浮點數據類型是實際數值的近似值,因此,一般不要對浮點數值進行是否相等的比較。
Java 浮點數值可代表無窮大和 NaN(非數值)。Float 包裝對象類用來定義常量 MIN_VALUE、MAX_VALUE、NEGATIVE_INFINITY、POSITIVE_INFINITY 和 NaN。
19.for Java 關鍵字
for 關鍵字用于指定一個在每次迭代結束前檢查其條件的循環。
示例
int i;
for (i=0; i<max; i++)
{
<statements>
}
注釋
for 語句的形式為 for(initialize; condition; increment)
控件流進入 for 語句時,將執行一次 initialize 語句。
每次執行循環體之前將計算 condition 的結果。如果 condition 為 true,則執行循環體。
每次執行循環體之后,在計算下一個迭代的 condition 之前,將執行 increment 語句。
20.if Java 關鍵字
if 關鍵字指示有條件地執行代碼塊。條件的計算結果必須是布爾值。
示例
if (condition)
{
<statements>
}
if (condition)
{
<statements>
}
else
{
<statements>
}
注釋
if 語句可以有可選的 else 子句,該子句包含條件為 false 時將執行的代碼。
包含 boolean 操作數的表達式只能包含 boolean 操作數。
21.implements Java 關鍵字
implements 關鍵字在 class 聲明中使用,以指示所聲明的類提供了在 implements 關鍵字后面的名稱所指定的接口中所聲明的所有方法的實現。
示例
public class Truck implements IVehicle
{
}
注釋
在上例中,Truck 類必須提供在 IVehicle 接口中所聲明的所有方法的實現。
否則,Truck 類將是獨立的;它可以聲明其他方法和變量,并擴展另一個類。
一個類可以實現多個接口。
22.import Java 關鍵字
import 關鍵字使一個包中的一個或所有類在當前 Java 源文件中可見。可以不使用完全限定的類名來引用導入的類。
示例
import java.io.File;
import java.net.*;
注釋
當多個包包含同名的類時,許多 Java 程序員只使用特定的 import 語句(沒有“*”)來避免不確定性。
23.instanceof Java 關鍵字
instanceof 關鍵字用來確定對象所屬的類。
示例
if (node instanceof TreeNode)
{
<statements>
}
注釋
在上例中,如果 node 是 TreeNode 類的實例,或者是 TreeNode 的子類的實例,則 instanceof 表達式的值將為 true。
24.int Java 關鍵字
int 是 Java 原始類型。
int 變量可以存儲 32 位的整數值。
示例
int number = 5;
int octalNumber = 0377;
int hexNumber = 0xff;
注釋
Integer 類是 int 原始類型的包裝對象類。它定義代表此類型的值的范圍的 MIN_VALUE 和 MAX_VALUE 常量。
Java 中的所有整數值都是 32 位的 int 值,除非值后面有 l 或 L(如 235L),這表示該值應解釋為 long。
25.interface Java 關鍵字
interface 關鍵字用來聲明新的 Java 接口,接口是方法的集合。
接口是 Java 語言的一項強大功能。任何類都可聲明它實現一個或多個接口,這意味著它實現了在這些接口中所定義的所有方法。
示例
public interface IPolygon
{
public float getArea();
public int getNumberOfSides();
public int getCircumference();
}
注釋
實現了接口的任何類都必須提供在該接口中的所有方法的實現。
一個類可以實現多個接口。
26.long Java 關鍵字
long 是 Java 原始類型。
long 變量可以存儲 64 位的帶符號整數。
示例
long number = 5;
long anotherNumber = 34590L;
long octalNumber = 0377;
long hexNumber = 0xffl;
注釋
Long 類是 long 原始類型的包裝對象類。它定義代表此類型的值的范圍的 MIN_VALUE 和 MAX_VALUE 常量。
Java 中的所有整數值都是 32 位的 int 值,除非值后面有 l 或 L(如 235L),這表示該值應解釋為 long。
27.native Java 關鍵字
native 關鍵字可以應用于方法,以指示該方法是用 Java 以外的語言實現的。
示例
native String getProcessorType();
注釋
Native 方法不在此文檔的討論范圍內。
28.new Java 關鍵字
new 關鍵字用于創建類的新實例。
示例
String sName = new String();
Float fVal = new Float(0.15);
注釋
new 關鍵字后面的參數必須是類名,并且類名的后面必須是一組構造方法參數(必須帶括號)。
參數集合必須與類的構造方法的簽名匹配。
= 左側的變量的類型必須與要實例化的類或接口具有賦值兼容關系。
29.null Java 關鍵字
null 是 Java 的保留字,表示無值。
示例
Integer i;
i = null;
String s;
if (s != null)
{
<statements>
}
注釋
將 null 賦給非原始變量相當于釋放該變量先前所引用的對象。
不能將 null 賦給原始類型(byte、short、int、long、char、float、double、boolean)變量。
30.package Java 關鍵字
package 關鍵字指定在 Java 源文件中聲明的類所駐留的 Java 包。
示例
package com.mycompany;
public class MyClass
{
}
注釋
package 語句(如果出現)必須是 Java 源文件中的第一個非注釋性文本。
在上面的示例中,MyClass 類的完全限定類名是 com.mycompany.MyClass。
如果 Java 源文件不包含 package 語句,在該文件中定義的類將位于“默認包”中。請注意,不能從非默認包中的類引用默認包中的類。

浙公網安備 33010602011771號