什么是构造方法?
----构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。每当类实例化一个对象时,类都会自动调用构造方法。
---- 简单来说构造方法就是创建类的对象过程中运行的方法,也是对象初始化的方法。
public class Food { //创建食物类
public Food(){} // 食物类的构造方法
}
注意:
1.构造方法没有返回值,普通没有返回值的方法使用 public void 方法名 ()这种形式定义,但构造方法不同,它不需要使用void关键字修饰。
由构造方法进行对象初始化:
------在构造方法中可以为成员变量赋值,当实例化一个本类对象时,相应的成员变量也将被初始化。
------若类中并没有明确定义构造方法,则编译器会自动创建一个不带参数的默认构造方法。
如下代码:
public class Food { //创建食物类
public Food(){
// 食物类的构造方法
}
public static void main(String[] args) {
Food F1 = new Food(); //创建对象
}
}
而删掉构造方法后,语句并不会报错,说明编译器自动创建了一个不带参数的默认构造方法。
public class Food { //创建食物类
public static void main(String[] args) {
Food F1 = new Food(); //创建对象
}
}
注意:
若在类中没有定义无参数的构造方法,则编译器就不会自动创建不带参数的默认构造方法。
当试图调用无参数的构造方法实例化对象时,编译器会报错。
如下代码:
public class Food { //创建食物类
public Food(String a){
// 食物类有参数的构造方法
}
public static void main(String[] args) {
Food F1 = new Food("馒头"); //创建对象F1,并添加参数"馒头"
}
}
从中可以看出,若类中没有定义无参数的构造方法,则编译器就不会自动创建不带参数的默认构造方法,必须输入参数,否则语句会报错。
若想使用无参数的构造方法,则需要进行创建:
public class Food { //创建食物类
public Food(String a){
// 食物类的有参数构造方法
}
public Food(){
// 食物类的无参数构造方法
}
public static void main(String[] args) {
Food F1 = new Food("馒头"); //创建对象F1,并添加参数"馒头"
Food F2 = new Food(); //创建对象F2,无需添加参数
}
}