电竞比分网-中国电竞赛事及体育赛事平台

分享

java中的幾個關(guān)鍵字

 posondlq 2012-04-19
java中的幾個關(guān)鍵字
2008-09-20 22:01
abstract Java 關(guān)鍵字

abstract 關(guān)鍵字可以修改類或方法。

abstract 類可以擴展(增加子類),但不能直接實例化。

abstract 方法不在聲明它的類中實現(xiàn),但必須在某個子類中重寫。

示例
public abstract class MyClass
  {
  }
    public abstract String myMethod();


注釋
采用 abstract 方法的類本來就是抽象類,并且必須聲明為 abstract。

abstract 類不能實例化。

僅當 abstract 類的子類實現(xiàn)其超類的所有 abstract 方法時,才能實例化 abstract 類的子類。這種類稱為具體類,以區(qū)別于 abstract 類。

如果 abstract 類的子類沒有實現(xiàn)其超類的所有 abstract 方法,該子類也是 abstract 類。

abstract 關(guān)鍵字不能應(yīng)用于 static、private 或 final 方法,因為這些方法不能被重寫,因此,不能在子類中實現(xiàn)。

final 類的方法都不能是 abstract,因為 final 類不能有子類。



extends Java 關(guān)鍵字

extends 關(guān)鍵字用在 class 或 interface 聲明中,用于指示所聲明的類或接口是其名稱后跟有 extends 關(guān)鍵字的類或接口的子類。

示例
public class Rectangle extends Polygon
  {
  }


注釋
在上例中,Rectangle 類繼承 Polygon 類的所有 public 和 protected 變量和方法。

Rectangle 類可以重寫 Polygon 類的任何非 final 方法。

一個類只能擴展一個其他類。


final Java 關(guān)鍵字

final 關(guān)鍵字可以應(yīng)用于類,以指示不能擴展該類(不能有子類)。

final 關(guān)鍵字可以應(yīng)用于方法,以指示不能重寫任何子類中的方法。

示例
public final class MyFinalClass
  {
  }
    public class MyClass
  {
     public final String myFinalMethod()
     {
        <statements>
     }
  }


注釋
一個類不能同時是 abstract 又是 final。abstract 意味著必須擴展類,final 意味著不能擴展類。

一個方法不能同時是 abstract 又是 final。abstract 意味著必須重寫方法,final 意味著不能重寫方法。





finally Java 關(guān)鍵字

finally 關(guān)鍵字用來定義始終在 try-catch-finally 語句中執(zhí)行的塊。

finally 塊通常包含清理代碼,用在部分執(zhí)行 try 塊后恢復(fù)正常運行。

示例
try
  {
     <可能引發(fā)異常的塊>
  }
  catch (<java.lang.Exception 或子類> e)
  {
     <處理異常 e 的代碼>
  }
  finally
  {
     <有異常或無異常情況下都執(zhí)行的語句>
  }


注釋
開始和結(jié)束標記 { 和 } 是 finally 子句語法的一部分,即使該子句只包含一個語句,也不能省略這兩個標記。

每個 try 塊都必須至少有一個 catch 或 finally 子句。

如果執(zhí)行 try 塊的任何部分,不論是否出現(xiàn)異常,也不論 try 或 catch 塊是否包含 return、continue 或 break 語句,都一定會執(zhí)行 finally 塊中的代碼。

如果不出現(xiàn)異常,控件將跳過 try 塊,進入 finally 塊。

如果在執(zhí)行 try 塊期間出現(xiàn)異常,并且相應(yīng)的 catch 塊包含 break、continue 或 return 語句,控件將首先穿過 finally 塊,之后再執(zhí)行 break、continue 或 return。


implements Java 關(guān)鍵字

implements 關(guān)鍵字在 class 聲明中使用,以指示所聲明的類提供了在 implements 關(guān)鍵字后面的名稱所指定的接口中所聲明的所有方法的實現(xiàn)。

示例
public class Truck implements IVehicle
  {
  }


注釋
在上例中,Truck 類必須提供在 IVehicle 接口中所聲明的所有方法的實現(xiàn)。

否則,Truck 類將是獨立的;它可以聲明其他方法和變量,并擴展另一個類。

一個類可以實現(xiàn)多個接口。




instanceof Java 關(guān)鍵字


instanceof 關(guān)鍵字用來確定對象所屬的類。

示例
if (node instanceof TreeNode)
  {
     <statements>
  }


注釋
在上例中,如果 node 是 TreeNode 類的實例,或者是 TreeNode 的子類的實例,則 instanceof 表達式的值將為 true。



interface Java 關(guān)鍵字

interface 關(guān)鍵字用來聲明新的 Java 接口,接口是方法的集合。

接口是 Java 語言的一項強大功能。任何類都可聲明它實現(xiàn)一個或多個接口,這意味著它實現(xiàn)了在這些接口中所定義的所有方法。

示例
public interface IPolygon
  {
     public float getArea();
     public int getNumberOfSides();
     public int getCircumference();
  }


注釋
實現(xiàn)了接口的任何類都必須提供在該接口中的所有方法的實現(xiàn)。

一個類可以實現(xiàn)多個接口。





static Java 關(guān)鍵字

static 關(guān)鍵字可以應(yīng)用于內(nèi)部類(在另一個類中定義的類)、方法或字段(類的成員變量)。

示例
public class MyPublicClass
  {
     public final static int MAX_OBJECTS = 100;
     static int _numObjects = 0;
     
     static class MyStaticClass
     {
     }
     
     static int getNumObjects()
     {
     }
  }


注釋
通常,static 關(guān)鍵字意味著應(yīng)用它的實體在聲明該實體的類的任何特定實例外部可用。

static(內(nèi)部)類可以被其他類實例化和引用(即使它是頂級類)。在上面的示例中,另一個類中的代碼可以實例化 MyStaticClass 類,方法是用包含它的類名來限定其名稱,如 MyClass.MyStaticClass。

static 字段(類的成員變量)在類的所有實例中只存在一次。

可以從類的外部調(diào)用 static 方法,而不用首先實例化該類。這樣的引用始終包括類名作為方法調(diào)用的限定符。在上面的示例中,MyClass 類外部的代碼以 MyClass.getNumObjects() 的形式調(diào)用 getNumObjects() static 方法。

模式:

public final static <type> varName = <value>;

通常用于聲明可以在類的外部使用的類常量。在引用這樣的類常量時需要用類名加以限定。在上面的示例中,另一個類可以用 MyClass.MAX_OBJECTS 形式來引用 MAX_OBJECTS 常量。





switch Java 關(guān)鍵字


switch 語句用于基于某個表達式選擇執(zhí)行多個代碼塊中的某一個。

示例
int arg = <some value>;
  switch (arg)
  {
     case 1:
        <statements>
        break;
     case 2:
        <statements>
        break;
     default:
        <statements>
        break;
  }
    char arg = <some value>;
  switch (arg)
  {
     case 'y':
     case 'Y':
        <statements>
        break;
     case 'n':
     case 'N':
        <statements>
        break;
     default:
        <statements>
        break;
  }


注釋
switch 條件的計算結(jié)果必須等于 byte、char、short 或 int。

case 塊沒有隱式結(jié)束點。break 語句通常在每個 case 塊末尾使用,用于退出 switch 語句。

如果沒有 break 語句,執(zhí)行流將進入所有后面的 case 和/或 default 塊。



synchronized Java 關(guān)鍵字

synchronized 關(guān)鍵字可以應(yīng)用于方法或語句塊,并為一次只應(yīng)由一個線程執(zhí)行的關(guān)鍵代碼段提供保護。

示例
public class MyClass
  {
     public synchronized static String mySyncStaticMethod()
     {
     }
     
     public synchronized String mySyncMethod()
     {
     }
  {
    public class MyOtherClass
  {
     Object someObj;
     
     public String myMethod()
     {
        <statements>
        synchronized (someObj)
        {
           <statements affecting someObj>
        }
     }
  }


注釋
synchronized 關(guān)鍵字可防止代碼的關(guān)鍵代碼段一次被多個線程執(zhí)行。

如果應(yīng)用于靜態(tài)方法(如上例中的 MySyncStaticMethod),那么,當該方法一次由一個線程執(zhí)行時,整個類將被鎖定。

如果應(yīng)用于實例方法(如上例中的 MySyncMethod),那么,當該方法一次由一個線程訪問時,該實例將被鎖定。

如果應(yīng)用于對象或數(shù)組,當關(guān)聯(lián)的代碼塊一次由一個線程執(zhí)行時,對象或數(shù)組將被鎖定。





throw Java 關(guān)鍵字


throw 關(guān)鍵字用于引發(fā)異常。

示例
import java.io.IOException;
  
  public class MyClass
  {
     public method readFile(String filename) throws IOException
     {
        <statements>
        if (error)
        {
           throw new IOException("error reading file");
        }
     }
  }


注釋
throw 語句將 java.lang.Throwable 作為參數(shù)。Throwable 在調(diào)用棧中向上傳播,直到被適當?shù)?catch 塊捕獲。

引發(fā)非 RuntimeException 異常的任何方法還必須在方法聲明中使用 throws 修飾符來聲明它引發(fā)的異常。



throws Java 關(guān)鍵字

throws 關(guān)鍵字可以應(yīng)用于方法,以便指出方法引發(fā)了特定類型的異常。

示例
import java.io.IOException;
  
  public class MyClass
  {
     public method readFile(String filename) throws IOException
     {
        <statements>
        if (error)
        {
           throw new IOException("error reading file");
        }
     }
  }


注釋
throws 關(guān)鍵字將逗號分隔的 java.lang.Throwables 列表作為參數(shù)。

引發(fā)非 RuntimeException 異常的任何方法還必須在方法聲明中使用 throws 修飾符來聲明它引發(fā)的異常。

要在 try-catch 塊中包含帶 throws 子句的方法的調(diào)用,必須提供該方法的調(diào)用者。





transient Java 關(guān)鍵字

transient 關(guān)鍵字可以應(yīng)用于類的成員變量,以便指出該成員變量不應(yīng)在包含它的類實例已序列化時被序列化。

示例
public class MyClass
  {
     private transient String password;
  }

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多