Java简单总结——构造方法
1、什么是构造方法?
构造方法是 : 类的一个特殊成员,它会在实例化对象时被自动调用。
定义构造方法的三个基本要求:(同时满足!!)
- 构造方法的名字必须与定义他的类名完全相同。
- 方法名前面没有返回类型的声明。注意:该处指的没有返回类型不是void,因为Void 类是一个不可实例化的占位符类,它保持一个对代表 Java 关键字 void 的 Class 对象的引用。
- 方法中不能使用return语句返回一个值。
例如:
public class Person {
//这是Person类的一个构造方法
public Person() {
}
}
2、构造方法分类
构造方法分为两种:无参构造 和 有参构造。
无参构造:一个类没写有参构造方法时,在该类被实例化时,会使用默认的无参构造方法。(注意:当你类中没有定义任何构造方法的时候,类中会有一个默认的无参数的构造方法!!!)
public class Person {
//这是Person类的一个无参构造方法
public Person() {
System.out.println("进行无参构造方法");
}
public static void main(String[] args) {
Person person = new Person();
}
}
结果是: 进行无参构造方法
有参构造:一个类除了可以定义无参构造方法,还可以定义有参构造方法,通过有参构造方法可以实现对属性的赋值。
public class Person {
public String name;
//这是Person类的一个无参构造方法
public Person() {
System.out.println("进行无参构造方法");
}
//这是Person类的一个有参构造方法
public Person(String name){
System.out.println("进行有参构造方法"+name);
}
public static void main(String[] args) {
Person person1 = new Person();
Person person2 = new Person("测试");
}
}
结果是:
进行无参构造方法
进行有参构造方法测试
3、拓展
- 构造方法可以重载,但是不能重写,因为构造方法不能被继承。
- 如果在子类的构造方法中,没有显式的使用关键字super调用父类的某个构造方法,那么会默认隐式的使用super调用父类无参构造方法。
- 如果类里定义一个或多个构造方法,那么java不提供默认的构造方法(不带参数的构造方法)。因此,当在父类中定义多个构造方法时,应当补充一个不带参数的构造方法,以防子类省略super时出现错误。