發新話題

Java 教程《語法說明》class 定義

Java 教程《語法說明》class 定義

■ class 定義
[abstract|public|final] class className  [extends superClass]  [implements  interface1  [,‥interfaceN]] {
  /* Instance variables declared and methods defined here */
  // 狀態變數或內部資料、方法

  Constructors
  Class-Constants
  Instance-Variables
  Instance-Methodss
  Class-Variables
  Class-Methods
  Enums
  inner-class(static-class,inner-interface)

   ‥‥‥
}

[說明]
1. class內通常可包含一個以上的建構子(constructor)。
 class內若無定義任何constructor,Java 會自動提供 default constructor,只是這個建構子不帶任何參數,也不做任何事情。
2. 一個檔案內只允許出現一個 public 等級的 interface 或 class,且該檔案名稱必須等於該 public 等級
 的 interface 或 class 的名稱(再加上java副檔名)。
3. 類別中若存有宣告 abstract 的 method,則此類別必須加上 abstract 修飾字,亦即擁有抽像 method 的
 類別一定是抽像類別,且不能直接產生屬於這個抽像類別的物件,抽像類別提供其它類別繼承使用。
 繼承抽像類別的子類別也是抽像類別,除非子類別中定義出實質的 method 內容,覆寫(override)宣告在
 父類別中的抽像 method。
4. 類別加上修飾字 final,則此類別不能被任何其它類別所繼承。
5. 一個類別可以有2個以上的修飾字,但不能同時宣告擁有 abstract 和 final 修飾字。

[範例]
public class hellowClass {
  /* instance variables */
  /* methods */

}

[錯誤範例]
錯誤:同一個檔案中有2個以的public類別
 編譯器錯誤訊息:class A is public, should be declared in a file name A.java
          class B is public, should be declared in a file name B.java   

檔案名稱 C.java
檔案內容
public class A { }
public class B { }

錯誤:abstract 類別不可以直接產生物件,錯誤訊息:A is abstract; cannot be instantiated
abstract class A { }
calss B {
  A object1 = new A( );
}

錯誤:不能繼承final類別(錯誤訊息:Cannot subclass final classes:class A)
final class A { }
calss B extends A { }

錯誤:同時擁有 abstract 和 final 修飾字(Illeagl combination of modifiers: abstract and final)
abstract final class A { }

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。