java零基礎入門第四天 方法的調用 方法的返回 實參 形參 封裝 實際變量 局部變量

這章主要內容講方法,書中章節名字叫對象的行爲,在之前章節中,我們描述過類是藍圖,是我們工程師的設計圖,設計出一個個對象,對象又有自己的實例變量值,那麼方法呢?

方法被稱爲對象的行爲,根據不同類,有不同的方法,比如人類,我們可以給他定義一些 跑 唱 跳的方法,那麼每個不同人(對象)他們都能執行這些方法。

在書中第73頁定義了狗的類,定義了狗的兩個屬性,一個是大小,一個名字,還有一個方法,根據狗不同的大小,叫的聲音也不一樣,在定義了一個dog類型對象時候,對象就可以通過原點標識符,也就是英文的小數點.就可以調用對象的屬性及方法。

在java學習第三天時候我寫了一個例子,關燈的方法, light1.turnOff(light1); 在調用turnOff這個方法的時候,要傳入對應的實參(實際參數) 比如turnOff 要求傳入的是Light 類型的參數,那麼調用的時候 傳入的一定要是 Light類型

public void turnOff(Light L) {//誰調用關燈方法的時候 都要傳關燈的對象過來,這樣我才知道是哪個燈要關
        L.lightNum = 0;//關閉燈了,就將燈泡的亮度變爲0
       System.out.println("關閉後亮度 :"+L.lightNum );
    }

調用方式代碼

 Light light1 = new Light();
	//燈1執行關燈 調用關燈方法時候將燈1這個對象傳過去
        light1.turnOff(light1);

整個類完整代碼

class Light{
    int lightNum;
    
    public static void main (String[] args) {    
        //創建Light對象
        Light light1 = new Light();
	//燈1執行關燈 調用關燈方法時候將燈1這個對象傳過去
        light1.turnOff(light1);
	//燈1亮度設爲99
        light1.lightNum = 99;
 
        // 創建Light數組
        Light [] mylight = new Light[3];
        mylight[0] = new Light();
        mylight[1] = new Light();
        mylight[2] = light1;
 
        // 通過數組引用存取Light
        mylight[0].lightNum = 100;
        mylight[1].lightNum = 50;
        
        
        //把燈全關
        int x = 0;
        while(x<mylight.length){//數組有個length的變量,能返回元素,通常用在循環,判斷
        System.out.println("關閉前燈泡亮度 :"+mylight[x].lightNum );
            mylight[x].turnOff(mylight[x]);
            x = x+1;
        }
    }
 
    public void turnOff(Light L) {//誰調用關燈方法的時候 都要傳關燈的對象過來,這樣我才知道是哪個燈要關
        L.lightNum = 0;//關閉燈了,就將燈泡的亮度變爲0
       System.out.println("關閉後亮度 :"+L.lightNum );
    }
}

在書中是從74-79頁。而方法有些情況是需要返回的 如果將關燈方法改成有返回的那麼代碼如下

public int turnOff(Light L) {//誰調用關燈方法的時候 都要傳關燈的對象過來,這樣我才知道是哪個燈要關
     	return 0;//返回值爲0
    }

調用時候還是要對象去調用,但是返回的值要賦值給 燈的亮度

//創建Light對象
        Light light1 = new Light();
	//燈1執行關燈 調用關燈方法時候將燈1這個對象傳過去
        light1.lightNum = light1.turnOff(light1);//將返回的值賦值給燈的亮度

全部完整代碼

class Light{
    int lightNum;
    
    public static void main (String[] args) {    
        //創建Light對象
        Light light1 = new Light();
	//燈1執行關燈 調用關燈方法時候將燈1這個對象傳過去
        light1.lightNum = light1.turnOff(light1);
 	System.out.println("111關閉後燈泡亮度 :"+light1.lightNum );
	//燈1亮度設爲99
        light1.lightNum = 99;

        // 創建Light數組
        Light [] mylight = new Light[3];
        mylight[0] = new Light();
        mylight[1] = new Light();
        mylight[2] = light1;

        // 通過數組引用存取Light
        mylight[0].lightNum = 100;
        mylight[1].lightNum = 50;
        
        
        //把燈全關
        int x = 0;
        while(x<mylight.length){//數組有個length的變量,能返回元素,通常用在循環,判斷
        System.out.println("關閉前燈泡亮度 :"+mylight[x].lightNum );
            mylight[x].lightNum = mylight[x].turnOff(mylight[x]);
 	System.out.println("關閉後燈泡亮度 :"+mylight[x].lightNum );
            x = x+1;
        }
    }

    public int turnOff(Light L) {//誰調用關燈方法的時候 都要傳關燈的對象過來,這樣我才知道是哪個燈要關
     	return 0;
    }
}

運行結果

有返回跟沒返回的方法都介紹了,調用的時候傳入的參數 稱爲實參,也就是實際傳入的參數,而方法定義要求的參數叫做形參,這個也介紹了,不懂得書上74-79再看一遍

java面向三大特性繼承我們在第一章的時候有稍微提一下,今天講第二個特性叫 封裝,書中是80-82頁,在最常用的方法中數一數二的兩個方法肯定是get跟set

在書中的例子裏,get set是用於獲取dog這個類的大小,get是爲了獲取大小的值,所以肯定是有返回的,size的類型是int類型,所以返回的是int類型

public int getSize(){
       return size;
}

而set這個是給對象設置size,因爲這個方法不需要返回,所以用void,而且要設置修改size 需要修改的大小需要由對象調用時候傳入的實參來定義,所以這邊要寫好形參 要求是int類型 的變量名可以自己定義 不要關鍵字就可以,然後將變量賦值給size這樣就可以改變了size

public void setSize(int s){
       size = s;
}

這樣就會出現下面兩種情況,例如當我有個燈每次需要獲取狀態或者修改燈的屬性的時候,我只要去get set調用就可以了,封裝好了方法,多個地方都能使用,而且安全性能也高

專業的描述 :提高了代碼的安全性,提高了代碼的可讀性和複用性

83頁的數組對象的行爲 看上面燈泡的循環全關的方法就是就

在85講了一個實際變量跟局部變量,其實就兩句話,實際變量是定義在類中,而局部變量是定義在方法

像我們經常在方法寫的用於判斷循環次數,就是局部變量也是最常用的一種方式。

第86頁是變量的比較,這個看下就好了沒什麼要展開說的

總結下 內容有 方法的調用 方法的返回 實參 形參 封裝 實際變量 局部變量。差不多到這裏基本知識就講完了,明天我們就可以開始做一個攻擊艦艇的遊戲。明天見

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