【Java語言基礎】面向對象

【Java語言基礎】面向對象

Java語言是面向對象的編程語言


對象

對象:是構成系統的最基本的單位

  • 屬性:描述對象的靜態特徵(成員變量)
  • 行爲:描述對象的動態特徵(成員方法和構造方法)

類是模型,對象是實例;類是抽象的,對象是具體的。類是建築圖紙,對象是某個大樓。

定義類的簡單語法格式

[修飾符] class 類名{
	成員變量來描述靜態的屬性,一般成員變量不初始化
    成員方法來描述動態的行爲
    構造方法:b默認構造方法就是一個空的方法體,不寫也存在-->類名(){}
}

[修飾符]可以是:[public公共類][abstract抽象類 | final最終類]默認爲friendly只能被本包使用,成員變量增加private(只有自己的類可以用

例:
聲明一個類可以計算矩形的面積與周長。

public class Test {
    public static void main(String[] args){
    	//調用 Rectangle這個類
        Rectangle c1 = new Rectangle(5,5);
        System.out.println("周長是:" + c1.zc() + ",面積是:" + c1.mj());
    }
}
// Rectangle爲計算面積周長的類
class Rectangle{
	//成員變量爲Long與Wide
    double Long;
    double Wide;
    //成員方法給成員變量賦值
    Rectangle(double a,double b){
        Long = a;
        Wide = b;
    }
    //計算周長的公式,double代表返回值爲double類型,返回什麼樣的數據類型,就寫什麼數據類型,若無返回值則爲void
    double zc() {
        return 2 * (Long + Wide);
    }
    //與周長同理
    double mj(){
        return Long * Wide;
    }
}

\color{#FF0000}{重要:}
構造方法和成員方法的區別:構造方法是一種特殊的成員方法:1.方法名和類名相同 2.自動調用的 3.沒有返回值類型

調用方法

類名 名字 = new 類名([]);
名字.成員變量....

類也是一種數據類型,是一種引用數據類型,括號裏看看有沒有需要參數

構造方法可以加多個形參,叫做構造方法的重載,如果顯示定義了帶參數的構造方法,系統就不會再給默認的構造方法
用構造方法構造對象時,構造方法裏的成員變量就是該對象的成員變量

定義成員變量

[修飾符] 類型 成員變量名 [= 初始值];

定義成員方法

[修飾符] 返回值類型 方法名([形式參數表]){
    方法體;
}

定義構造方法

[修飾符(一般加public)] 類名([形參列表]){
    //構造方法的方法體	
}

[修飾符]可以是:[public公共類][abstract抽象類 | final最終類]默認爲friendly只能被本包使用,成員變量增加private(只有自己的類可以用


面向對象三大特點

封裝

把新創建的類裏面的成員變量加private修飾符,設置僅爲本類可看
注:成員方法,可以訪問任何權限的成員變量

使用public [void或者返回值類型] 方法名([數據類型 形參名]){}修改(局部變量實參的值賦值給成員變量)
或者調用(return操作後的返回值或其他,如果不進行修改賦值,則會變成數據類型的默認值)

例:
輸入當前年月日,並輸出

class Date{
    private int year,month,day;
    public Date(){
        //(2)調用本類已定義的其他構造方法
        this(2020,4,2);//不能寫成Date(2020,4,2)
    }
    public Date getThis(){
        //(3)返回對象本身,
        return this;
    }
    //拷貝構造方法,由已經存在的對象創建新對象,使用的時候傳遞對象名字傳遞過去就行了
    public Date(Date oday){
        this(oday.year,oday.month,oday.day);
    }
    //調用toString方法,使用的時候直接調用即可,和toString效果一樣
    public String fun(){
    	retutn this.toString;
    }
    public Date(int year,int month,int day){
    	//(1)this代表這個對象本身,實例化哪個對象時this就代表哪個對象本身
        this.year = year;
        this.month = month;
        this.day = day;
    }
    public String toString(){
    	//this在這裏可以省略
        return year + "-" + month + "-" + day;
    }
}

其他類無法訪問本成員變量,使之更加私密

this的用法
  1. 若成員變量與形參相同時,成員變量前可以加上this,避免傳不進去值,this代表這個對象本身,實例化哪個對象時this就代表哪個對象本身
  2. 如果想在一個構造方法裏面調用其他已被定義的構造方法。需要使用this(實參);(注意:調用的時候,this必須放到第一個語句
  3. 返回對象本身,把一個對象的值,給另外一個對象

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