Java自学-类和对象 构造方法

怎么使用 Java 构造方法?

通过一个类创建一个对象,这个过程叫做实例化

实例化是通过调用构造方法(又叫做构造器)实现的

步骤 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);
}

}

练习构造方法

(为Hero设计4个参数的构造方法
这四个参数分别是
String heroName
float heroHP
float heroArmor
int heroMoveSpeed)

答案

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 Hero(String heroName,float heroHP,float heroArmor,int heroMoveSpeed){
name = heroName;
hp = heroHP;
armor = heroArmor;
moveSpeed=heroMoveSpeed;
}

public static void main(String[] args) {
Hero garen = new Hero("盖伦");
Hero teemo = new Hero("提莫",383);
Hero db = new Hero("死哥",400,27,360);
}

}

posted on 2019-08-29 13:19  半米高峰  阅读(413)  评论(0)    收藏  举报

导航