JAVA --类与对象(四)构造方法
什么是构造方法?
答:和普通方法相比
方法名和类名一样(包括大小写)
没有返回类型
实例化一个对象的时候,必然调用构造方法
public class hero {
String name;
int hp;
int mv;
public hero() {
System.out.println("实例化一个对象时候,必须使用构造方法");
} //没有返回对象
//类名和方法名一致
public static void main(String args[]) {
hero a = new hero();
a.hero();
}
}
隐式的构造方法
如果没有写构造方法,就会默认提供一个无参的构造方法。
public class hero {
String name;
int hp;
int mv;
public static void main(String args[]) {
hero h = new hero(); //如果没有写构造方法,就会默认提供一个无参的构造方法
h.name = "提莫";
h.hp = 200;
h.mv = 500;
System.out.println(h.name);
}
}
一旦提供了一个有参的构造方法
同时又没有显式的提供一个无参的构造方法
那么默认的无参的构造方法,就“木有了“
public class hero {
String name;
public hero(String heroname){
name = heroname;
}
public static void main(String args[]){
hero a = new hero("卡卡罗特");
// hero b = new hero(); 这样写就报错了
System.out.println(a.name);
}
}
构造方法的重载
和普通的方法一样
public class hero {
String name;
int hp;
public hero(String heroname){
name = heroname;
}
public hero(String heroname,int herohp){
name = heroname;
hp = herohp;
}
public static void main(String args[]){
hero a = new hero("卡卡罗特");
hero b = new hero("小明",200);
System.out.println(a.name);
System.out.println(b.name);
System.out.println(b.hp);
}
}
综合练习:为Hero设计4个参数的构造方法
这四个参数分别是
String heroName
float heroHP
float heroArmor
int heroMoveSpeed
public class hero {
String name;
int hp;
float armor;
int movespeed;
public hero(String heroname,int herohp,float heroarmor,int heromovespeed){
name = heroname;
hp = herohp;
armor = heroarmor;
movespeed = heromovespeed;
System.out.println("姓名:" + name);
System.out.println("血量:" + hp);
System.out.println("护甲值:" + armor);
System.out.println("移动速度" + movespeed);
}
public static void main(String args[]){
hero a = new hero("德玛西亚",500,20f,150);
}
}
