標籤:物件導向 java 類
OOP——Object Oriented Programming是java最大的特點,而且他不和C++一樣,java屬於徹頭徹尾的物件導向,每一個檔案都是以類的形式出現,main函數也包括在一個大類中。
1、關於類的聲明定義如下模板:
class User{
String name;//成員變數
int age;
public void show()
{
System.out.println("使用者姓名是:"+name+",年齡是:"+age);//成員方法
}
}
2、成員變數的修飾符:
static:表示一個類成員靜態變數,它僅在產生第一次對象時分配記憶體,相當於全域變數,所有執行個體對象共用一個,會互相改變影響。屬於類,可通過類名直接存取。
final:表示一個常量,只能被引用不能被改變,相當於c++中的const。
3、成員方法:注意必須屬於某個類,不能定義一個不屬於任何類的方法。修飾符:
static:靜態方法,可通過類名直接調用,當然也可以由執行個體對象調用。
abstract:抽象方法,只有方法聲明,沒有方法體。
final:最終方法,在子類中不能被覆蓋。
4、類的構造方法
名字與類名一致,在建立對象時用來對成員變數進行初始化。注意名字要和類名一樣,而且不能有返回值,特別要注意的是,前面連void也不能加。
此外,構造方法可以重載(即名相同,參數不同)。
5、對象的建立
<類名> <對象名> = new 構造方法();
如:
User usr1 = new User(); //預設構造方法
User usr2 = new User("sun",28); //自訂構造方法(重載)
6、類的封裝許可權
類的存取權限只有兩種,預設和public。在同一個檔案中,只能有一個是public公用類,而且要求這個類的名字必須與檔案名稱相同,main方法也要在公用類中。預設的許可權不能超過包。main方法的編寫:public static void main(String argv[]){}
成員的存取權限:
public:可以被任何其他所有類訪問。
protected:可以被同一包中的類和其他包中該類的子類訪問。
預設:能被同一包中的類訪問。
private:只能被同一包中的成員訪問。
7、類的繼承
class subclassname extends superclassname{}
和C++不同的是,java不支援多重繼承,子類只能有一個父類。
關於方法的重載和覆蓋:
重載:同一類中,相同名字不同參數。
覆蓋:父類和子類,子類方法覆蓋父 類方法,名字和參數都應該相同。
8、抽象類別
首先理解之定義方法聲明,不一定方法實現的思想。
定義方式是在類名和方法名之前加上abstract:
abstract class Student{
int stu_id;
void set id(int id){
stu_id = id;
}
//定義抽象方法
abstract void show id();//一定要注意分號,表示結束了,沒有具體的方法體
}
注意到,抽象類別中也可以有非抽象方法,但有抽象方法的類就是抽象類別。如果它的子類沒有將抽象方法進行具體的實現,那麼子類也變成抽象類別了。
9、最終類
類名之前加上final,表示這個類不能被繼承,可以避免開發人員編寫的類被別人繼承後修改。
java物件導向——類