类和对象系列教材 (四)- 怎么使用 Java 构造方法?
通过一个类创建一个对象,这个过程叫做实例化
实例化是通过调用构造方法(又叫做构造器)实现的
步骤1:什么是构造方法
步骤2:隐式的构造方法
步骤3:如果提供了一个有参的构造方法
步骤4:构造方法的重载
步骤5:练习-构造方法
步骤6:答案-构造方法
步骤2:隐式的构造方法
步骤3:如果提供了一个有参的构造方法
步骤4:构造方法的重载
步骤5:练习-构造方法
步骤6:答案-构造方法
步骤 1 : 什么是构造方法
方法名和类名一样(包括大小写)
没有返回类型
实例化一个对象的时候,必然调用构造方法
没有返回类型
实例化一个对象的时候,必然调用构造方法
public class Hero { String name; float hp; float armor; int moveSpeed; // 方法名和类名一样(包括大小写) // 没有返回类型 public Hero() { System.out.println( "实例化一个对象的时候,必然调用构造方法" ); } public static void main(String[] args) { //实例化一个对象的时候,必然调用构造方法 Hero h = new Hero(); } } |
步骤 2 : 隐式的构造方法
Hero类的构造方法是
这个无参的构造方法,如果不写,就会默认提供一个
public Hero(){ } |
这个无参的构造方法,如果不写,就会默认提供一个
public class Hero { String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed; //移动速度 //这个无参的构造方法,如果不写, //就会默认提供一个无参的构造方法 // public Hero(){ // System.out.println("调用Hero的构造方法"); // } public static void main(String[] args) { Hero garen = new Hero(); garen.name = "盖伦" ; garen.hp = 616 .28f; garen.armor = 27 .536f; garen.moveSpeed = 350 ; Hero teemo = new Hero(); teemo.name = "提莫" ; teemo.hp = 383f; teemo.armor = 14f; teemo.moveSpeed = 330 ; } } |
步骤 3 : 如果提供了一个有参的构造方法
一旦提供了一个有参的构造方法
同时又没有显式的提供一个无参的构造方法
那么默认的无参的构造方法,就“木有了“
同时又没有显式的提供一个无参的构造方法
那么默认的无参的构造方法,就“木有了“
public class Hero { String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed; //移动速度 //有参的构造方法 //默认的无参的构造方法就失效了 public Hero(String heroname){ name = heroname; } public static void main(String[] args) { Hero garen = new Hero( "盖伦" ); Hero teemo = new Hero(); //无参的构造方法“木有了” } } |
步骤 4 : 构造方法的重载
和普通方法一样,构造方法也可以重载
public class Hero { String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed; //移动速度 //带一个参数的构造方法 public Hero(String heroname){ name = heroname; } //带两个参数的构造方法 public Hero(String heroname, float herohp){ name = heroname; hp = herohp; } public static void main(String[] args) { Hero garen = new Hero( "盖伦" ); Hero teemo = new Hero( "提莫" , 383 ); } } |