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

构造方法的作用:创建对象,并完成对象的初始化。(说白了就是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()未定义。
构造器(构造方法):有参构造、无参构造_第1张图片
这时我们在 People1 类中定义一个无参构造即可。
此时就有了我们上面说的覆盖,覆盖这个问题还有待我去认真琢磨一下,哈哈哈,学习ing…

构造器(构造方法):有参构造、无参构造_第2张图片

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

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

//		对象的初始化  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);

直接生成构造体

构造器(构造方法):有参构造、无参构造_第3张图片

雷同对比:

(和创建数组的对比)
构造器(构造方法):有参构造、无参构造_第4张图片

你可能感兴趣的:(java基础)