java - 如何最好地解释和使用 Java 中的空构造函数?

标签 java constructor

<分区>

我一直在自学Java。我了解定义类的范围,但仍然没有理解空构造函数用法的概念。
通常我们应该为构造函数传递参数来构建实例对象。但是,我经常看到构造函数的参数为​​空。例如:

 class Person {
   String name;
       int age; 

 public Person();

 public Person(String name, int age){
     this.name = name;
     this.age = age;
     } 
 }

我研究并阅读了一个使用“鱼”类来解释的例子。所以,这就是我到目前为止的理解:定义类时,我们首先定义对象的属性,然后创建一个构造函数,该构造函数将使用方法构建对象。空构造函数构建 GENERIC 对象,带参数的构造函数构建具有更具体信息的对象。比方说上面的例子,如果我使用空构造函数创建一个实例对象:

Person p1 = new Person();  

-- 它仍然会创建一个对象但其中没有任何属性? 那么,空构造函数到底是用来做什么的呢?我在很多示例代码中看到了它。它非常有用/常见吗?

感谢您的查看和回答!

最佳答案

如果你写一个带参数的构造函数,那么你需要声明默认的(如果你想使用它的话)

class Person {
    String name;
    int age; 

    public Person(String name, int age){
        this.name = name;
        this.age = age;
    } 
 } 

你现在不能这样做:

Person p = new Person();

为了使用“默认”构造函数(不带参数),您需要声明它:

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;
    } 
 } 

关于java - 如何最好地解释和使用 Java 中的空构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18993936/

相关文章:

java - 在 StackPane 中的面积图上叠加节点

java - Spring Boot : Configuring Spring DataSource for Tests

C#成员变量初始化;最佳实践?

c++ - 返回值优化的魔力是什么?

java - 多线程环境下初始化前读取非final字段的代码演示

typescript - 获取构造函数的参数类型作为元组

java - 在 oAuth2 资源服务器应用程序中使用@WithMockUser(与@SpringBootTest)

java - 有没有办法让retrofit/gson将双时间戳转换为long?

java - 读取文件并将数据计数插入JTable

Javascript 类和自定义事件