[英]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.