一:构造方法
Java当中有两种函数:构造函数和普通函数(实例函数)。
构造函数的特点:
- 构造函数的函数名字与类名相同
- 构造函数不可以定义返回值
- 构造函数不可以写return语句
- 每个类默认有一个无参数构造函数
- 构造函数可以重载但不能重写
构造函数的作用:
给对象进行初始化
注意:虽然每个类都有一个默认的不带参数的构造方法,但是我们重写了这个类的构造方法之后,而又没有不带参数的构造方法,
此时程序就会报错,不能通过编译。
如下:不带参数的Person()构造方法被注释掉之后就会报错。
public class Person {
private String name;
//无参构造方法被注释掉之后会报错。
/*
Person(){
System.out.println("I'm a Person constructor.");
}
*/
Person(String name){
System.out.println("I'm a overloaded constructor.");
}
}
class PersonTest{
public static void main(String[] args) {
Person person=new Person();//这句会报错,因为找不到不带参数的构造方法
}
}
二:构造代码块
- 作用:给对象初始化用
- 对象已建立就运行,而且而且而且优先于构造函数执行
- 构造代码块是给所有对象进行初始化,也就是说new了多少次对象就会执行多少次
- 构造函数是给不同对象进行初始化的
public class Person {
Person(){
System.out.println("I am a constructor.");
}
//这是一个构造代码块
//作用:给对象初始化用
//对象已建立就运行,而且而且而且优先于构造函数执行
{
System.out.println("I am a constructor block.");
}
}
class PersonTest{
public static void main(String[] args) {
Person person=new Person();
}
}
上面代码的执行结果
I am a constructor block.
I am a constructor.