【JAVA】類和對象

一、OOP語言(面型對象設計語言)的三大特徵:繼承 封裝 多態。

二、面向過程: 處理小問題;JAVA是基於面向對象的。

1.把冰箱打開 2. 把大象放入 3. 冰箱關起來

面向對象: 處理大問題;C語言是面向過程的。

打開冰箱,儲存,關閉都是對冰箱的操作,是冰箱的行爲。冰箱就是一個對象,所以只要操作冰箱所具備的功能,都要定義在冰箱中。

三、類和對象的概念
類: 模板 (圖紙)
對象: 實體 (房子 ) 真真正正所存在的
一個類可以產生多個對象

四、定義類:自定義的一種類型(作用:用來產生對象的)

Class 類名{

類體;(成員變量;成員方法)

}

1.屬性:字段/成員(實例數據成員、靜態數據成員)

2.成員變量:public int age ;
靜態成員變量:方法區
public static final int SIZE1 =20;
public static int count=10
(1)、靜態成員的訪問:類名.屬性System.out.println(Person.count)
(2)、靜態成員方法的調用: 類名.方法進行調用 。

所有被static修飾的不管是方法 、成員 ,他的調用或者訪問,都只需要用通過類名.就可以做到。也就是說,所有被static修飾的不管是方法還是成員,都不依賴於對象。

(3)、main函數是static: 如果不是靜態的,main函數的調用需要對象。

(4)、實例成員變量:public final int SIZE2 =30;//被final修飾的 不一定在方法區

Person person = new Person()
(對象)(在棧上)(在堆上)

【注意】
*person.count :(count是Person裏面的,在堆上),其地址在棧上。
*Person.count :(不管有幾個Person1/Person2…,方法區裏面只有一個count),被static修飾的時候。

五、成員變量如果沒有賦值,那麼它的默認值就是自己所對應的0值:

引用類型: null (數組、類、 String)
簡單類型: 0 (除了 char ‘\u0000’ boolean=false)

六、在靜態方法內部,不能訪問非靜態的數據成員。
原因: 靜態的方法不依賴於對象,對象是否產生,並不影響調用靜態方法,而非靜態的數據成員依賴於對象。

【public static int count】
public (static) void fun1(){
System.out.println(“count”+count);
}
【public String name】
[錯誤] public static void fun1(){
System.out.println(“name”+name);
}

七、Private:
私有的(也能修飾方法)只能在類裏面訪問

初始化方式:
(1)、提供一系列的get/set方法;Alt+insert (fn+esc解鎖)
(2)、構造方法:構造對象,實例化對象new Person();方法名和類名是一樣的。
【注意】
a. 如果在實現類的時候,沒有寫構造方法,編譯器會自動生成一個不帶有參數的構造方法。
b.但是,如果你自己寫了一個不帶有參數的構造方法,那麼編譯器不會爲你自動生成一個帶有單數的構造方法。

(3)、一個對象的產生分爲兩步:
a.爲對象分配內存;
b.調用合適的方法(構造方法不止一個)

(4)this: 代表當前對象的引用
靜態方法不依賴於對象,所以不能使用this。

this.成員變量;
this.成員方法 (都是非靜態的/實例成員變量或方法);
this可以調用帶有一個或一個以上參數的構造方法);

Public Person(){
this(“曹操”);必須放到第一行
System.out.println(“ ”);

}

Public Person(String name){
This.name=name;
System.out.println(“ ”);
}

Public Person(String name,int age){
this.name=name;
this.age=age;
System.out.println(“ ”);
}

構造方法也可以發生重載,如上所示
(函數名相同,參數變量不同,返回值不要求)

8.Object:任何類的父親
toString
@Overrride 註解
重寫

九、代碼塊

(1)本地代碼塊:方法內部代碼
(2)實例代碼塊:類內部,方法的外部;
a.用來初始化類的實例數據成員;
b.實例代碼塊優先於構造函數執行。
(3)靜態代碼塊:用來初始化靜態的數據成員;
a.靜態代碼塊不管生成多少個對象;
b.靜態代碼塊優先於實例代碼塊;
c.同級,按順序執行;
d.不管構造多少個對象,靜態的東西只初始化一次;

發佈了34 篇原創文章 · 獲贊 29 · 訪問量 3688
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章