构造方法与方法重载:
1.构造方法:
用来创建对象和初始化属性值.
分为有参构造器和无参构造器.
每一个类都有一个默认的无参构造器,通过"new 类()"来调用从而创建对象。例如:Student stu=new Student();中的Student()就叫做Student类的无参构造器方法。
构造方法没有返回值。方法名必须和类名完全一致。每次使用构造器都会创建一个新的对象。
2.方法重载:
在同一个类中,定义多个同名但参数类型、参数数量或参数顺序不同的方法,叫做方法重载。例如:
public void study(){
System.out.println("什么都没学");
}
public void study(int hour){
System.out.println("不知道在学什么");
}
两者即为方法重载。
方法重载要求:1.方法名必须相同(即上例中的study),2.参数类型、数量及顺序至少有一点不同(上例中,()一个无参,(int hour)一个为整形参)。
在做同一件事情,但面向对象或做的事情的结果不唯一时经常使用方法重载。
代码示例:
public class Police{
//定义一个Police类
public String name;
public int hp;
public Police(String n,int h){
name = n;
hp = h;
}
//构造方法为属性赋值
public void fight(Boss b){
System.out.println(name+"警察对"+b.name+"Boss造成10点伤害");
b.hp-=10;
}
public void fight(Thief t){
System.out.println(name+"警察对"+t.name+"小贼造成15点伤害");
t.hp-=15;
}
//方法重载
}
public class Thief{
//定义Thief类
public String name;
public int hp;
public Thief(String n,int h){
name=n;
hp=h;
}
public void fight(Police p){
System.out.println(name+"小贼对"+p.name+"警察造成1点伤害");
p.hp-=1;
}
}
public class Boss{
//定义Boss类
public String name;
public int hp;
public Boss(String n,int h){
name=n;
hp=h;
}
public void fight(Police p){
System.out.println(name+"Boss对"+p.name+"警察造成7点伤害");
p.hp-=7;
}
}
public class Manager{
//创建管理文件
public static void main(String[] args){
Police po=new Police("A",100);
Boss bo=new Boss("B",100);
Thief th=new Thief("C",100);
java.util.Random r=new java.util.Random();
int n=r.nextInt(2);
//产生随机数,利用随机数使结果不唯一
if(n==0){
while(bo.hp>0){
po.fight(bo);
bo.fight(po);
}
System.out.println("Boss血量为0,警察胜利");
}
else{
while(th.hp>0){
po.fight(th);
th.fight(po);
}
System.out.println("Thief血量为0,警察胜利");
};
}
}
运行结果:
A警察对BBoss造成10点伤
BBoss对A警察造成7点伤害
A警察对BBoss造成10点伤
BBoss对A警察造成7点伤害
A警察对BBoss造成10点伤
BBoss对A警察造成7点伤害
A警察对BBoss造成10点伤
BBoss对A警察造成7点伤害
A警察对BBoss造成10点伤
BBoss对A警察造成7点伤害
A警察对BBoss造成10点伤
BBoss对A警察造成7点伤害
A警察对BBoss造成10点伤
BBoss对A警察造成7点伤害
A警察对BBoss造成10点伤
BBoss对A警察造成7点伤害
A警察对BBoss造成10点伤
BBoss对A警察造成7点伤害
A警察对BBoss造成10点伤
BBoss对A警察造成7点伤害
Boss血量为0,警察胜利