亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

沒有默認構造函數的類

沒有默認構造函數的類

偶然的你 2023-03-02 09:55:16
constructor使用參數化構造函數時是否需要聲明默認值?我們可以創建它的參數化對象class,并且該對象可以用來調用該類的其他函數,那么為什么我們需要默認構造函數呢?public class Const {    Const(int s,int  t) {       int b=s+t;       System.out.println(b);    }    public int add(int a) {        int j = 9;        j=j+a;        return j;    }}public class Construct {    public static void main(String[] args) {        Const obj =new Const(5,9);        obj.add(55);    }}這里我們不需要默認構造函數。我們可以不去這個對象嗎?
查看完整描述

3 回答

?
森林海

TA貢獻2011條經驗 獲得超2個贊

您的代碼非常好。根本不需要默認構造函數。您甚至可以將所有構造函數設為私有,這樣您就無法訪問任何構造函數:

public class PrivateClassTest{ 
   // Default constructor that is not accessible by others
    private PrivateClassTest()
    {
    }
}


查看完整回答
反對 回復 2023-03-02
?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

構造函數用于初始化對象。換句話說,構造函數為對象提供內存。如果不初始化一個對象,我們就不能使用它的屬性。

但是在 Java 中不需要定義或聲明默認構造函數。如果我們沒有聲明或定義它,編譯器會在程序中隱式添加一個默認構造函數。


查看完整回答
反對 回復 2023-03-02
?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

當我們在項目結構中實現繼承時,我們需要默認構造函數。


例子:


Class Apple{

    Apple(){}


    Apple(String a){

       System.out.pritnln(a);

    }

}


Class Banana extends Apple{

    Banana(){}


    public static void main(String[] args){

       Apple("Eaten");

    }

}

在上述場景中,如果您不為類聲明任何默認構造函數,Apple那么它將拋出錯誤:

Implicit super constructor Apple() is undefined for default constructor. Must define an explicit constructor


因為類Banana總是會嘗試調用未參數化的超級構造函數,如果您已經聲明了一個參數化構造函數,那么您必須需要聲明默認構造函數。


查看完整回答
反對 回復 2023-03-02
  • 3 回答
  • 0 關注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號