[Java入門] Java學習第一站:類與對象

Java是一門完全面向對象的編程語言,類和對象是面向對象的基礎和核心。
Java中,我們並不是將待解決的問題分解成一個一個的步驟,通過一步步執行這些步驟來解決問題,而是從待解決的問題中分離出一個個的個體,通過逐步調用這些個體的行爲來解決問題。前者被稱爲面向過程編程,而後者,被稱爲面向對象編程。

類和對象的概念在生活中隨處可見。
比如,我們說計算機的出現給人們的生活帶來了很大的便捷。在這裏,我們並不是說的某臺計算機的出現、也不是說計算機的出現給某個人帶來了很大的便捷。此處我們所說的計算機和人,都是抽象概念,在程序中,稱之爲
又比如,我們說程序員小邱在用她的計算機寫代碼。這裏,我們知道小邱是一個具體的人、她的計算機也是一臺具體的計算機,而小邱與小邱的計算機,就是人這個類與計算機這個類的一個對象

類的構成
類的構成有兩部分:屬性和方法。
屬性是根據類中對象的特徵進行定義的,我們可以通過它來描述類中的對象。比如說小邱的計算機,它有顏色,並且有可能是黑色、紅色、銀色、灰色等等等等中的任何一種。它也有尺寸、重量、分辨率、品牌、內存、價格這些特徵,我們可以在類中定義對應的變量,對對象中的變量賦值,我們就可知知道它的具體特徵了。
如:小邱的計算機.顏色=黑色;
方法是根據對象的行爲(功能、用途)進行定義的。比如說計算機提供打字、存儲、顯示、計算、開機、關機、...我們可以定義對應的方法,在類的對象中調用這個方法。
如:小邱的計算機.開機();

類與對象在程序中的表示:
Java中類的基本格式:
    public class 類名  {
        //定義屬性的格式
        public 數據類型  屬性名;

        //定義方法的格式
        public 返回值數據類型  方法名(數據類型 參數名,...){
            
        }
    }
實例化對象格式:類名 對象名  = new  類名(參數值,...);
調用屬性和方法:
        對象名.屬性名
        對象名.方法名(參數值,...);


構造方法
當然了,除了普通方法,類中還有一種構造方法。構造方法,即實例化對象時立即調用的方法,可帶參數,參數是爲了給屬性賦值。小邱的計算機的構造方法中,顏色屬性的值爲黑色,於是計算機類給小邱實例化了一個黑色的計算機。構造方法名即類名。於是,平常所說的實例化對象時的 類名 對象名  = new  類名(參數值,...);等價於類名  對象名  = new 構造方法名(參數值,...);

注意:1.構造方法一定不能定義返回值數據類型;
        2.構造方法名一定要和類名完全一致,包括大小寫;
        3.Java會給類提供一個無參數的構造方法,如果你在類中自定義構造方法,這個自定義的構造方法
        會把默認的構造方法覆蓋,此時就只能使用自定義的構造方法。

方法重載
方法重載即定義方法名相同,但方法所帶的參數個數、參數類型、參數順序至少有一個不同的方法。
什麼情況下需要方法重載呢?比如說,小邱有“喝”這個方法,但參數只能是“水”,即你讓小邱喝灑,她就會報錯。爲了讓小邱能夠喝酒,我們可以對原有的“喝”這個方法進行重載。這就是普通方法重載。如果小邱對她的電腦有除了顏色以外的其它屬性有要求的話,比如說希望電腦有雙攝像頭(膨脹了),她就要對計算機的構造方法進行重載,使其加上雙攝像頭這個參數。再比如說,人類有打球這個方法,但不同的球作爲不同的參數,需要有不同的打法,於是我們需要對打球這個方法進行一一重載,這就是普通方法的重載;紅樓夢中賈寶玉出生的時候帶有通靈寶玉、而其他人並沒有,這肯定是上帝對他們的構造方法進行了重載。

方法重載通常用來產生一組功能相似的方法,減少了方法名的數量,對程序的可讀性有很大的好處。也可以理解爲讓一個方法能夠處理不同的參數。

this關鍵字
當參數名和屬性名完全一致時,Java會採用就近原則,優先使用離其最近的參數,把參數賦給參數;


可見,我們並沒有成功將參數賦值給屬性,參數還是參數,屬性什麼值都沒有。

正確的寫法。

就像小邱在和同學談論隔壁班學霸小邱,這時小邱說:小邱和小邱是朋友!這時,同學就會很疑惑,並且會自動地把這句話中的兩個小邱當作她們正在談論的小邱,並對說出這句話的小邱投來鄙視的眼神。這時,程序中我們就會用this關鍵字進行區分,說:本人小邱和小邱是朋友哦。這裏的this關鍵字相當於現實生活中的“我”。

this(參數值,...);  調用帶對應參數的構造方法。
this.方法名(參數值,...);   調用普通方法

 

QQ:375471598

微信:Q159837547

歡迎過來勾搭小邱同學,或者對文章提出修改意見,共同成長。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章