1. 程式人生 > >Java基礎總結(一)物件,類,屬性,方法

Java基礎總結(一)物件,類,屬性,方法

物件,類,屬性,方法的解析:
以人為例。
類:人可以看作一個類。

物件:具體到什麼人(黃種人,白種人,黑種人,中國人等等)這就可以看作是物件,可以根據需求繼續往下區分,比如 男人 女人。

屬性:比如說黃種人的特點:黃面板,黑頭髮,黑眼睛等等,這些就是黃種人具有的屬性,本身存在的,也可以是後天加上去的,是不需要人刻意去行動,自然而然表現出來的。

方法:方法其實是某種人的具體行為解釋,比如說會走路,會說話

方法可以看作是動詞(行為動作的解釋),屬性是名詞(事務本身具有的特性)。
名詞解釋到這裡,我們用程式碼來看看,用程式碼是如何做到上述名詞的描述。

public class PersonDemo {  //這是類
private String name; //這是屬性 姓名 private String sex; //這是屬性 性別 private int age; //這是屬性 年齡 public void say(){ //這是方法 System.out.println("我是黃種人"); } public static void main(String[] args) { //main函式 Java應用程式的入口方法 PersonDemo PD = new PersonDemo(); //new一個物件 PD.say(); //呼叫方法
}

從上述程式碼我們可以看出:
①建立物件,那麼我們首先要有一個類,通過類new一個物件
②方法與類的區別在於:類有class開頭,無();方法需放在類的裡面,方法有(),()的設定在於是否需要傳參

 PersonDemo PD = new PersonDemo();

這段程式碼,我們怎麼理解呢?
很多人說,在這段程式碼中,我們new了一個PersonDemo的物件,名叫PD,其實這是種錯誤的理解。
PD只是PersonDemo的物件的一個引用

分析過程:
第一步:new PersonDemo():在堆記憶體中,建立PersonDemo物件。
第二步:PersonDemo PD :在棧記憶體中建立引用PD

,(其值為堆記憶體中PersonDemo物件的記憶體地址)
第三步: PersonDemo PD = new PersonDemo();將引用PD指向PersonDemo物件,也就是給PD賦值,其值為PersonDemo物件的記憶體地址
綜上三步,我們在 PD.say(); 時,其實是經歷上面三步後再通過PersonDemo()物件呼叫say();完成列印輸出。

分析圖如下
這裡寫圖片描述

那麼下面這個程式碼該怎麼分析呢?

 PersonDemo PD1  = PD;

這個就是將PD的記憶體地址(堆空間中的PersonDemo地址)賦值給PD1,這樣PD1的指向也是PersonDemo。PD1同樣是PersonDemo的物件的一個引用
這裡寫圖片描述

當完成上述程式碼後,PD1,PD都可以對PersonDemo的狀態進行改變,任意一個引用的改變會引起另一個引用的改變,因為它們指向的是同一個物件
從上分析可以看出:一個物件可以有多個引用,但是一個引用只能指向一個物件

結束語:通過上面的分析,我們可以總結出基本的面向物件思想
事物—-類—-物件—-引用
①引用 控制 物件狀態
②先有類才有物件
假如你只建立一個引用,比如

 PersonDemo PD;

那麼你在使用這個PD時,必須給它指定一個物件