[英]How to call Constructors in Java
我在java中有以下代碼:
// SingleMaltView class
class abc {
public abc(display p) {
// display is another class.
}
}
class sample {
public static void main(String[] args) {
abc ob = new abc(); // error
}
}
如何調用abc
類的構造函數?
你的構造函數有一個參數/參數,使用它:
public abc(display p)
// ↑ here!!!!
這意味着你必須提供一個display
對象來創建abc
對象,所以在 main 方法中你必須做這樣的事情:
public static void main(String[] args) {
display d = new display(); // assuming display has no-argument constructor
abc ob = new abc(d); // NO error! :)
}
注意事項:
UPPERCASE
開頭,因此文件和類的名稱應該是Display
和Abc
(或ABC
)。如果您不在類中提供構造函數,編譯器默認插入無參數構造函數,但如果您提供了,則編譯器不會插入默認構造函數。 在這里,您正在創建一個存在參數化構造函數的類的對象,並且您正在創建沒有參數的 ABC 類的對象,因此編譯器無法找到沒有參數的構造函數,因此在代碼下方給出錯誤可以解決這個謎語。
public abc() // another constructor
{
}
或更改創建類型
public static void main(String[] args)
{
Display d =new Display();
abc ob = new abc(d); // error
}
在這里,您正在調用abc 類中不存在的默認構造函數。 相反,您只有一個參數化的構造函數。
public static void main(String[] args) {
abc ob = new abc(); // error
}
在這里,您正在創建一個沒有參數的對象。
所以你應該像這樣通過這里,
display obj = new display();
abc ob = new abc(obj);
我們可以通過兩種方式定義構造函數:(i) 默認構造函數 (ii) 參數化構造函數
(i) 默認構造函數語法:ConstructorName() {Statements.. }
(ii) 參數化構造函數語法:ConstructorName(Parameter/Arguments) {Statements.. }
* 調用構造函數 ClassName 引用變量的語法 = new TypeOfConstructor()
*調用作用域下定義的構造函數的變量和方法,使用引用變量調用。
注意:構造函數沒有任何返回類型和訪問說明符
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.