Java基本上是麵向對象的程序設計語言, 除了一些簡單類型(primitive)的變量以外,一切都是對象, 程序是對象的組合, 每個對象都有自己的空間, 並且每個對象都有一種類型, 同一類所有對象都能接受相同的消息。 下麵隻對Java中對象的結構作簡單的說明:
Ø 類(class): class是定義類的關鍵字, 類中包含類變量, 方法, 內部類, 內部接口等。由class可以生成類的實例, 即一個個對象。 如果一個類的成員被定義成static的,則這個成員不專屬於任何對象, 而是屬於這個類, 所有的對象共享這個成員。
Ø 抽象類(abstract class): 抽象類不能直接生成一個實例, 抽象類中必需有方法是abstract的,抽象類的意思就是它實現了一部分的方法, 而定義為abstract的方法則需要在它的字類中去實現。
Ø 接口(interface): 接口可以理解為純抽象的類, 它的每個方法都是未實現的, 它可以有成員變量, 但必須是static的。 一個類如果從這個接口繼承(implements)則它必須實現這個接口的所有方法。
繼承類用關鍵字:extends,繼承接口用關鍵字:implements。 一個類隻能從一個類繼承下來, 但可以從多個接口繼承(類似於C++的多重繼承)。 字類可以覆蓋父類的方法(method), 但不能覆蓋父類的成員變量(field)。 如果父類的方法為final或static的則不能被覆蓋。類的初始化順序是, 如果有父類, 則先初始化父類的field,然後執行父類的構造函數, 如果子類冇有顯式的去調父類的構造函數則缺省的會去調父類的無參數構造函數。 然後是子類的field與構造函數的初始化。
public interface SuperInterface {
public staitc String SOME_FLAG = “1”;
public void someMethod();
}
public Class SuperClass {
{ System.out.println(“init SuperClass field”);}
public SuperClass() {System.out.println(“init SuperClass Constructor”); }
public void runMethod() { System.out.println(“run SuperClass runMethod()”); }
}
public Class SubClass extends SuperClass implements SuperInterface {
{ System.out.println(“init SubClass field”); }
public SubClass() {System.out.println(“init SubClass Constructor”); }
public void someMethod() {System.out.println(“run SubClass someMethod()”); }
public void runMethod() {System.out.println(“run SubClass runMethod()”); }
}
有以下test代碼:
public class Test {
public void main(String[] args) {
SubClass sub = new SubClass();
sub. runMethod();
}
}
則會輸出:
init SuperClass field
init SuperClass Constructor
init SubClass field
init SubClass Constructor
run SubClass runMethod()
以下章節所講述到的常用的Java API就是一些Java自帶的一些Class或Interface的用法。