构造方法与方法重载:
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)一个为整形参)。
在做同一件事情,但面向对象或做的事情的结果不唯一时经常使用方法重载。
代码示例:
Java代码
- 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,警察胜利