Java的构造方法

回顾Java知识点的时候,看到了构造方法,也许太久没有接触java了导致一时理解不了构造方法,现在写下来记录。

有钱人的孩子在起跑线就已经领先一步,而贫穷人的孩子只能靠一步一步打拼。而构造方法就好比有钱人,在孩子刚出生的时候就创造了条件,对这个孩子初始化赋值了。
从代码的角度来看,起到了简化的作用。

构造方法的作用:生成对象并对其初始化赋值

构造方法的注意事项:
1.当此类中没有创建构造方法,那么此类会自动生成一个默认的无参构造函数,同理,如果此类创造了一个构造方法,那么默认的就会消失。

2.构造方法的命名必须与本类相同。

3.构造方法不允许有返回值类型声明。

4.构造方法允许重载。

5.构造函数是在对象建立时由JVM调用, 给对象初始化。一般函数是对象建立后,当对象调用该功能时才会执行。

举例:

写一个Person类,里面定义两个参数,并且没有创造有参的构造方法,所以会默认生成下面的无参构造方法

package review2;

public class Demo_gouzao {
     
	public static void main(String[] args){
     
		Person p1 = new Person();
		p1.name = "张三";
		p1.age = 15;
		
		Person p2 = new Person();
		p2.name = "李四";
		p2.age = 20;
		System.out.println(p1.name+p1.age);
		System.out.println(p2.name+p2.age);
	}
}
class Person{
     
	Person(){
     //默认的无参构造函数
	}
	String name;
	int age;
}

结果如下:

Java的构造方法_第1张图片

这就好比贫穷人的状况,需要在主函数里面进行赋值,代码复杂且麻烦。

随后另外创一个Person类,在类中创造有参的构造方法,对给予的对象进行初始化赋值。

package review2;

public class Demo_gouzao2 {
     
	public static void main(String[] args){
     
		Person2 p1 = new Person2("张三",15);
		Person2 p2 = new Person2("李四",20);
		System.out.println(p1.name+p1.age);
		System.out.println(p2.name+p2.age);
		//同一个包的构造类如果撞名,会出现editor does not contain a main type的bug
	}
}

class Person2{
     
	String name;
	int age;
	Person2(){
     //默认的无参构造函数
	}
	Person2(String name,int age){
     
		this.name = name;
		this.age = age;
	}
}

这样的话,就可以方便在生成对象的同时也给对象进行赋值,简化了过程。

结果相同:

Java的构造方法_第2张图片

补充:
子类必须调用父类的构造函数。但是,子类只能继承父类的默认构造函数,如果父类没有默认的构造函数,那子类不能从父类继承默认构造函数。这时子类必须使用super来实现对父类的非默认构造函数的调用。

参考文章:
1.
https://blog.csdn.net/qq_33642117/article/details/51909346

2.
https://www.cnblogs.com/livterjava/p/4709561.html

你可能感兴趣的:(Java的构造方法)