爾皮 發問時間: 電腦與網際網路程式設計 · 10 年前

JAVA作業,請各位幫忙

第6章 習題 6. 請先閱讀下列程式碼:01 class Csolid {02 private int l, h, w;03 public Csolid( , , ) { ::     :     :04 } 05 public Csolid(int x) {06 l = h = w = x;07 Volume();08 } 09 Csolid() {::10 } 11 private void Volume() {12 System.out.println("立方塊三邊為:" + l + ", " + h + ", " + w);13 System.out.println("立方塊體積:" + l * h * w);14 } 15 } 16 public class Ex6_6 {17 public static void main(String args[]) {18 Csolid body1 = new Csolid(2, 3, 4);19 Csolid body2 = new Csolid(5);20 // body2.Volume();21 Csolid body3 = new Csolid();22 }23 } 回答下列問題:① 請在第03~04行之間設計一個建構子,該建構子有三個虛引數,當該建構子在被呼叫時,會自動將三個不同的虛引數分別指派給立方塊的三個邊l、h、w,並呼叫Volume()方法成員。② 在第05~08行之間的建構子,只有一個虛引數,並皆指派給立方塊的三個邊l、h、w。這表示什麼?③ 請在第09~10行之間設計一個建構子,該建構子沒有虛引數,當該建構子在被呼叫時,會自動指派給立方塊三個邊l、h、w同一個數值『10』,並呼叫Volume()方法成員。④ 第09行定義建構子Csolid() 時,沒有宣告為public,這對本建構子在被呼叫時,會產生什麼影響? ⑤ 當執行到第19行時,會呼叫第幾行的建構子?⑥ 第20行,「body2.Volume();」這個敘述在編譯時,會不會通過。若不能通過,則程式碼要如何修定才能通過編譯? 7. 請先閱讀下列程式碼:01 class CAdd {02 private int n1, n2; 03 CAdd(int x) {04 n1 = n2 = x;05 add();06 } 07 CAdd(int x, int y) {08 n1 = x;09 n2 = y;10 add();11 } 12 private void add() {13 int sum = n1 + n2;14 System.out.println(n1 + "+" + n2 + "=" + sum);15 }16 } 17 class CSum extends CAdd {18 CSum(int x) {19 super(x);20 } 21 CSum(int x, int y) {22 super(x, y);23 } 24 } 25 public class Ex6_7 {26 public static void main(String args[]) {27 CSum s1 = new CSum(5, 8);28 CSum s2 = new CSum(10); 29 }30 }回答下列問題:① 第01行的CAdd類別與第17行的CSum類別有繼承關係,請問誰是子類別?誰是父類別?② 當第21行敘述被執行時,會去呼叫第幾行敘述?③ 當第27行敘述被執行時,會去呼叫第幾行敘述?④ 因程式碼有續承關係,當第28行敘述被執行時,會層層去呼叫或執行其它行敘述,請依序指出這些被呼叫或執行的敘述行號。⑤ 本程式執行的結果為何?⑥ 第27行如果改由建立CAdd類別的物件,則要如何撰寫敘述,才能得到相同的結果。

1 個解答

評分
  • 10 年前
    最佳解答

    1.

    public Csolid(int l, int h, int w) {

    this.l = l;

    this.h = h;

    this.w = w;

    }

    2.

    表示是一個正方形

    3.

    Csolid() {

    csolid(10);

    Volume();

    }

    4.

    沒有宣告修飾元,預設public

    5.

    第5行

    6.

    不能

    將11行的

    private void Volume() {

    改成

    void Volume() {

    2-1

    CAdd是父類別 CSum是子類別

    2-2

    第7行

    2-3

    第21行

    2-4

    第28行 -> 第18行 -> 第3行 -> 第12行

    2-5

    5+8=13

    10+10=20

    2-6

    CAdd cadd = new CAdd(5,8);

還有問題?馬上發問,尋求解答。