一:构造方法
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.