我一直在自学Java.我理解定义类的范围,但仍然没有得到空构造函数用法的概念.
通常我们应该传递构造函数的参数来构建实例对象.但是,我经常看到构造函数的空参数.例如:
class Person {
String name;
int age;
public Person();
public Person(String name, int age){
this.name = name;
this.age = age;
}
}
Run Code Online (Sandbox Code Playgroud)
我研究并阅读了一个使用"鱼"类来解释的例子.所以,这就是我到目前为止所理解的:在定义类时,我们首先定义一个对象的属性,然后我们创建一个构造函数,用于使用方法构建对象.空构造函数构建GENERIC对象,以及带参数的构造函数构建具有更多特定信息的对象.让我们说上面的例子,如果我使用空构造函数创建一个实例对象:
Person p1 = new Person();
Run Code Online (Sandbox Code Playgroud)
- 它仍会创建一个对象,但没有任何属性?那么,究竟空构造函数用于什么?我在很多示例代码中看到了它.它非常有用/常见吗?
感谢您的回答!
如果使用参数编写构造函数,则需要声明默认构造函数(如果要使用它)
class Person {
String name;
int age;
public Person(String name, int age){
this.name = name;
this.age = age;
}
}
Run Code Online (Sandbox Code Playgroud)
您现在不能执行以下操作:
Person p = new Person();
Run Code Online (Sandbox Code Playgroud)
为了使用“默认”构造函数(不带参数),您需要对其进行声明:
class Person {
String name;
int age;
public Person(){
name = "Man With No Name"; //sometimes you will want to set the variables
age = 21; //to some default values
}
public Person(String name, int age){
this.name = name;
this.age = age;
}
}
Run Code Online (Sandbox Code Playgroud)
空的构造函数通常是“默认的”
Person() {
// This will cause you to not have any name or age values
}
Run Code Online (Sandbox Code Playgroud)
因此,我们假设您想要一个默认的 Person:
Person() {
this("Steven",20);
}
Run Code Online (Sandbox Code Playgroud)
这样你将调用非空构造函数,但你将始终拥有同一个人
| 归档时间: |
|
| 查看次数: |
42982 次 |
| 最近记录: |