什么是构造方法?

----构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。每当类实例化一个对象时,类都会自动调用构造方法。
---- 简单来说构造方法就是创建类的对象过程中运行的方法,也是对象初始化的方法。

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,无需添加参数

   }
}