如何在不在构造函数中传递参数的情况下创建对象的实例?
how to create instance of a object without passing argument in constructor?
我有一个学生 class 并且它有构造函数 Student(int id, string name)
现在,我想在不触及构造函数的情况下创建 Student Class 的对象。我该怎么做?
喜欢Student std = new Student();
不是Student std = new Student(1, "Benjamin");
您必须创建无参数构造函数 - Student()
。如果您没有 Student(int id, string name)
构造函数,编译器会自动创建一个空的无参数构造函数。
创建一个default constructor,喜欢
Student();
在Java中,默认构造函数指的是nullary constructor,如果没有为[=定义构造函数,则由编译器自动生成。 30=]。默认构造函数隐式调用 superclass 的 nullary 构造函数,然后执行一个空主体。也可以自己写。
请注意,根据您的编码设计和要求,可以有多个构造函数。说,
class Student {
// default constructor
public Student() {}
// one param constructor
public Student(int id) {
this.id = id;
}
// two param constructor
public Student(int id, String name) {
this.id = id;
this.name = name;
}
}
如果你有默认构造函数,那么没有
Student std = new Student(1, "Benjamin");
您可以创建一个 std
对象,例如:
Student std = new Student();
您应该在 class:
中创建第二个没有参数的构造函数(所谓的 "default constructor")
class Student {
int id;
String name;
// new constructor
public Student() {
}
// old constructor: we don't change it.
public Student(int id, String name) {
this.id = id;
this.name = name;
}
}
您必须添加一个不带参数的构造函数。
请注意,这是仅用于学术目的的解决方案:如果您不喜欢创建不带参数的新构造函数,还有另一种可能性。删除带参数的构造函数,如果你这样做,一个不带参数的默认构造函数会自动添加到你的 class。显然,如果你这样做,你必须更改现有代码,用不带参数的新代码替换对参数化构造函数的旧调用!
你可以这样做;如果您的 class 具有默认的空构造函数和 setter 方法:
Student st = new Student();
st.setId(1);
.
..
我有同样的问题,尽管应该自动实现的默认构造函数应该允许没有参数的对象。错误状态:无法解析构造函数。 :(
User user = new User();
user.setUsername(registerRequest.getUsername());
user.setPassword(registerRequest.getPassword());
user.setEmail(registerRequest.getEmail());
所以用户();需要参数,我无法将所有其他代码行与 user
一起应用
我有一个学生 class 并且它有构造函数 Student(int id, string name)
现在,我想在不触及构造函数的情况下创建 Student Class 的对象。我该怎么做?
喜欢Student std = new Student();
不是Student std = new Student(1, "Benjamin");
您必须创建无参数构造函数 - Student()
。如果您没有 Student(int id, string name)
构造函数,编译器会自动创建一个空的无参数构造函数。
创建一个default constructor,喜欢
Student();
在Java中,默认构造函数指的是nullary constructor,如果没有为[=定义构造函数,则由编译器自动生成。 30=]。默认构造函数隐式调用 superclass 的 nullary 构造函数,然后执行一个空主体。也可以自己写。
请注意,根据您的编码设计和要求,可以有多个构造函数。说,
class Student {
// default constructor
public Student() {}
// one param constructor
public Student(int id) {
this.id = id;
}
// two param constructor
public Student(int id, String name) {
this.id = id;
this.name = name;
}
}
如果你有默认构造函数,那么没有
Student std = new Student(1, "Benjamin");
您可以创建一个 std
对象,例如:
Student std = new Student();
您应该在 class:
中创建第二个没有参数的构造函数(所谓的 "default constructor")class Student {
int id;
String name;
// new constructor
public Student() {
}
// old constructor: we don't change it.
public Student(int id, String name) {
this.id = id;
this.name = name;
}
}
您必须添加一个不带参数的构造函数。
请注意,这是仅用于学术目的的解决方案:如果您不喜欢创建不带参数的新构造函数,还有另一种可能性。删除带参数的构造函数,如果你这样做,一个不带参数的默认构造函数会自动添加到你的 class。显然,如果你这样做,你必须更改现有代码,用不带参数的新代码替换对参数化构造函数的旧调用!
你可以这样做;如果您的 class 具有默认的空构造函数和 setter 方法:
Student st = new Student();
st.setId(1);
.
..
我有同样的问题,尽管应该自动实现的默认构造函数应该允许没有参数的对象。错误状态:无法解析构造函数。 :(
User user = new User();
user.setUsername(registerRequest.getUsername());
user.setPassword(registerRequest.getPassword());
user.setEmail(registerRequest.getEmail());
所以用户();需要参数,我无法将所有其他代码行与 user
一起应用