【Java有参构造器和无参构造器】

让我们来更详细地了解一下有参构造器和无参构造器。

1.无参构造器

无参构造器是指不需要参数输入的构造器。它的语法格式如下:

public ClassName() { // 构造器代码 }

当一个类没有定义任何构造器时,Java 编译器会默认生成一个无参构造器,该构造器仅仅是对类数据成员进行了默认值的初始化。例如:

public class Person { private String name; private int age; private boolean isMale; public Person() { this.name = ""; this.age = 0; this.isMale = true; } // getter 和 setter 方法 }

上述代码中,我们在 Person 类中定义了一个无参构造器。当使用无参构造器创建 Person 对象时,该对象的 name 属性会被初始化为 "",age 属性会被初始化为 0,isMale 属性会被初始化为 true。需要注意的是,在某些情况下,我们需要手动定义一个无参构造器。例如,如果我们在子类中定义了构造器,那么 Java 编译器不会再自动生成一个无参构造器。

2.有参构造器

有参构造器是指需要输入参数的构造器。它的语法格式如下 

public ClassName(ParamType param1, ParamType param2, ...) { // 构造器代码 }

有参构造器通常用于创建对象的过程中,对对象进行更加复杂的初始化操作。例如:

public class Person { private String name; private int age; private boolean isMale; public Person(String name, int age, boolean isMale) { this.name = name; this.age = age; this.isMale = isMale; } // getter 和 setter 方法 }

上述代码中,我们定义了一个 Person 类,并在其中定义了一个有参构造器,该构造器需要输入三个参数:name、age 和 isMale。当使用有参构造器创建 Person 对象时,我们需要手动输入这些参数的值。例如:

Person p = new Person("张三", 20, true);

在上述代码中,我们使用有参构造器创建了一个 Person 对象,该对象的 name 属性被初始化为 "张三",age 属性被初始化为 20,isMale 属性被初始化为 true。

需要注意的是,在一个类中可以定义多个不同参数类型的有参构造器,例如:

public class Person { private String name; private int age; private boolean isMale; public Person(String name) { this.name = name; } public Person(String name, int age) { this.name = name; this.age = age; } public Person(String name, int age, boolean isMale) { this.name = name; this.age = age; this.isMale = isMale; } // getter 和 setter 方法 }

上述代码中,我们定义了三个不同参数类型的有参构造器,分别可以接受一个字符串、一个字符串和一个整数、以及一个字符串、一个整数和一个布尔值作为参数。

综上所述,无参构造器和有参构造器是 Java 中重要的概念,用于在创建对象时对对象进行初始化操作。无参构造器通常用于简单的初始化操作,而有参构造器则用于更加复杂的初始化操作。在实际开发中,我们需要根据需求选择合适的构造器类型来创建对象。

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值