閱讀java 程式 回答以下問題

1. 請先閱讀下列程式碼: 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();」這個敘述在編譯時,會不會通過。若不能通過,則程式碼要如何修定才能通過編譯?

3 個解答

評分
  • Lv 4
    9 年前
    最佳解答

    class Csolid { private int l, h, w; public Csolid(int a ,int b ,int c ) {

    l=a ;

    h=b ;

    w=c ;

    Volume();

    } public Csolid(int x) { l = h = w = x; //三個邊 均設定為 (int x)

    Volume(); } Csolid() {

    //沒有宣告為public,被呼叫時會有所限制.如需在同一個//package l = h = w =10;

    Volume();

    } protected void Volume() {// private 改為 protected System.out.println("立方塊三邊為:"+ l + ", " + h + ", " + w); System.out.println("立方塊體積:"+ l * h * w); } }

    public class Ex6_6 {

    public static void main(String args[]) { Csolid body1 = new Csolid(2, 3, 4); Csolid body2 = new Csolid(5);

    // 當執行到第19行時,會呼叫第幾行的建構子?

    //只帶一個引數的建構子... 05 public Csolid(int x) body2.Volume();

    //第20行,「body2.Volume();」這個敘述在編譯時,會不會通過。

    //第11行 private void Volume(){ 改為 protected void Volume() {// private 改為 protected

    Csolid body3 = new Csolid(); } }

    參考資料: 經驗
  • 9 年前

    我犯法嗎要當我?

    還是他有說不能查知識家?

    還是你也要看答案?

    我不能上網參考資料?

  • 9 年前

    徐欽志老師說你要被當了 不要在知識家發問了

    參考資料: 徐欽志
還有問題?馬上發問,尋求解答。