构造器(构造方法):有参构造、无参构造

构造方法的作用:创建对象,并完成对象的初始化。(说白了就是new一个对象,并对对象的属性值进行设置)
其实也是对代码的简化。

构造方法:

  1. 没有返回值,
  2. 方法名与类名相同
  3. 构造方法永远出现new之后

无参构造:

此方法可以不写,因为系统会自动为类生成一个无参构造,一旦写了就会覆盖JVM默认的无参构造。(至于为什么系统里会有默认的无参构造,那就要问问java的创始人了)

public class People1 {
	
	String name;
	boolean sex;
	int age;
	
	public static void main(String[] args) {
		
		//  为People1z创建了新对象,new出的原因是因为系统内部已有默认的无参构造,供其调用
		People1 people = new People1();
		
		people.name = "lihua";
		people.age = 18;
		people.sex = true;

	}

}

有参构造:

(如果是在封装的基础上,有参构造 = 无参构造 + setter方法
【有事没事代码说话,最为直观】

public class People1 {
	
	String name;
	boolean sex;
	int age;
		
	public People1(String name1,boolean sex1,int age1) {
		this.name = name1;
		this.sex = sex1;
		this.age = age1;	
	}
	
	public static void main(String[] args) {
		
		People1 people = new People1("lihua",true,18);
		//  有参构造就可以省下了下面这一步,一行搞定。
//		people.name = "lihua";
//		people.age = 18;
//		people.sex = true;
		
		System.out.println(people.name);
	}
}
  • 在有有参构造的程序里能否写无参构造?

当我们在有有参构造的程序创建一个无参对象时,即 People1 person = new People1();
此时会显示【The constructor People1() is undefined】的报错信息,即People1()未定义。
在这里插入图片描述
这时我们在 People1 类中定义一个无参构造即可。
此时就有了我们上面说的覆盖,覆盖这个问题还有待我去认真琢磨一下,哈哈哈,学习ing…

在这里插入图片描述

以下是设置初始值的几种方法

类似于给刚生下来的小孩设置初始值

//		对象的初始化  1     
        People lisi = new People();
		
		lisi.name = "lisi";
		lisi.sex = true;
		lisi.weight = 4;
		lisi.height = 0.4;

---------------------------------------------------------------
        People zhangsanPeople = new People();
		
//		对象的初始化 2
//      该设置初始值方法是在封装的基础上		
		zhangsanPeople.setName("zhangsan");
		zhangsanPeople.setAge(1);
		zhangsanPeople.setWeight(4);
---------------------------------------------------------------

//      对象的初始化 3
//      在有参构造的基础上,对初始化 2 代码的简化
        People lisiPeople = new People("zhangsan", 1, 4);

直接生成构造体

在这里插入图片描述

雷同对比:

(和创建数组的对比)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值