1. 程式人生 > >JAVA面向對象程序設計(第二版) 袁紹欣 第五章答案

JAVA面向對象程序設計(第二版) 袁紹欣 第五章答案

面向對象 屬性和方法 return tostring 成員 sta 克隆對象 方法名 保護

1.面向對象的主要特征是什麽?

封裝、繼承、多態

2.封裝是如何實現的?

封裝通過訪問控制符實現的,只有通過授權才能訪問數據。

3.對象之間如何相互作用?作用的條件是什麽?

通過消息,擁有訪問類數據成員或成員方法的權限。

4.protected修飾符的特點?

只有包內其它類、自己和子類可以訪問。

5.Object都有哪些方法?

Object clone()?//克隆對象

boolean equals()?//判斷兩個引用是否指向同一個對象

void finalize()?//釋放對象

int hashCode()?//獲得代表對象特有的 hashcode 整數

String toString()?//代表對象的字符串

void notify()?//線程同步中喚醒等待線程

void wait()//線程同步中線程等待

6.重載的方法之間一般有什麽關系?

方法名相同,而參數不同。返回類型可以相同也可以不同。

7.子類覆蓋父類方法需要什麽條件?子類中定義與父類同名的方法一定是覆蓋嗎?

方法名,參數,返回類型全部相同,內容不同。不一定

8.封裝、繼承和多態在面向對象設計中的用途是什麽?

封裝可以保護類的數據成員,隱藏信息。

子類繼承父類的屬性和方法後,不用重新編寫代碼,提高了代碼復用性。

多態最重要的是子類的功能可以被父類的引用調用,向後兼容。

9.設計Src和Dis兩個類,Src中有一個被封裝的屬性,類型類 int ,每當通過特定方法更改Src對象中的這個屬性後,Dis對象都能得到通知,並向Src發消息獲得此屬性值。

public class Src{
    int num;
    Dis dis;
    
    Src(int n){
        if(n>0)
        num = n;
    }
    
    void SetDis(Dis d){
        dis = d;
    }
    
    void Change(int n){
        if(n>0&&n!=num) 
        {
            num = n;
            dis.print();
        }
    }
    
    int getNum(){
        return num;
    }
    
    public static void main(String[] args) {
        Src src = new Src(1);
        Dis dis = new Dis(src);
        src.SetDis(dis);

        for(int i=0;i<5;i++)
        {
            src.Change(i);
        }
    }
}
public class Dis{
    Src src;
    Dis(Src s){
        src = s;
    }
    void print(){
        System.out.println("num被改變為:"+src.getNum());
    }
}

/*
結果:
num被改變為:2
num被改變為:3
num被改變為:4
*/

JAVA面向對象程序設計(第二版) 袁紹欣 第五章答案