在类中除了成员方法之外,还存在一种特殊类型的方法,那就是构造方法。构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。每当类实例化一个对象时,类都会自动调用构造方法。
构造方法的特点如下:
构造方法没有返回值。
构造方法的名称要与本类的名称相同。
在定义构造方法时,构造方法没有返回值,但这与普通没有返回值的方法不同,普通没有返回值的方法使用public void methodEx()这种形式进行定义,但构造方法并不需要使用void关键字进行修饰。
构造方法的定义语法格式如下:
public class Book{
public Book(){
//构造方法
}
}
public: 构造方法修饰符。
Book:构造方法的名称。
在构造方法中可以为成员变量赋值,这样当实例化一个本类的对象时,相应的成员变量也将被初始化。
如果类中没有明确定义构造方法,编译器会自动创建一个不带参数的构造方法。
this关键字:可以调用类的成员变量和成员方法,还可以调用类中的构造方法。
package javademo;
public class New {
int a=10;
public New(){
// this(111); //正常编译
a = 1;
System.out.println(a);
// this(111); //编译报错,构造方法访问其他构造方法,语句必须放在第一句
}
public New(int a){
a = 2;
System.out.println(a);
}
public int aaa(){
// this(111); //普通方法不能用this来访问构造方法
this.a=410;
return 20;
}
public int bbb(){
int a = this.aaa();
return a;
}
// public New(int a){}
public static void main(String[] args) {
// TODO Auto-generated method stub
New b = new New();
b.a=30;
System.out.println(b.a);
// b = new New(1);
System.out.println(b.aaa());
// System.out.println(b.bbb());
}
}