期末作业2

在上次,我根据思路设计的一个大概抽象类,里面有一个一个人有的大概属性,但只有属性的话也算不上一个人物,所以我们接下来继续编写。

思路;一个物种,不仅仅有属性还有种族和职业,种族我们可以做各种子类来通过继承和方法重写的方式来,区分各个种族的特点。而职业我们写一个静态方法来实现。

先在之前的Person类里添加两个抽象方法

public abstract int CarrerChoice();//种族选择和对象创建
public abstract int Ability();//各个种族的属性区分

创建一个人类类


public class Human extends Person{



    public Human(String name, String sex,int num) {
        super(name, sex,num);
    }


    public int CarrerChoice() {//方法重写
        Scanner sc = new Scanner(System.in);
        System.out.print("请选择你的职业(0.狂战士,1.圣骑士,2.刺客,3.猎手,4.牧师,5.巫师)");//人所能选择的职业
        number = sc.nextInt();
        System.out.println(number);

        return number;
    }
    public int Ability() {// 方法重写
        return number;


    }


}
创建一个精灵类
public class Elf extends Person{

    public Elf(String name, String sex,int num) {
        super(name, sex,num);
    }

    public int CarrerChoice() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请选择你的职业(0.狂战士,1.圣骑士,2.刺客,3.猎手,4.牧师,5.深林使者)");//精灵所能选择的职业
        number = sc.nextInt();
        if (number==5){
            number=6;
        }

        return number;

    }

    public int Ability() {
        agility=agility+5;
        perceive=perceive+3;
        physical=physical-3;
        return number;

    }

}

创建一个矮人类

public class Dwarf extends Person{

    public Dwarf(String name, String sex,int num) {
        super(name, sex,num);
    }

    public int CarrerChoice() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请选择你的职业(0.狂战士,1.刺客,2.猎手,3.猛猪骑士,4.重甲战士)");//矮人所能选择的职业
        number = sc.nextInt();
        if (number==1){
            number=2;
        }else if (number==2){number=3;}//修正返回值
        else if (number==3){number=8;}
        else if (number==4){number=9;}

        return number;


    }

    public int Ability() {
        power=power+1;
        agility=agility+1;
        physical=physical+1;
        wit=wit+1;
        wisdom=wisdom+1;
        perceive=perceive-3;
        return number;

    }
}

创建一个兽人类

public class Orcish extends Person{

    public Orcish(String name, String sex,int num) {//有参构造
        super(name, sex,num);
    }


    public int CarrerChoice() {//方法重写
        Scanner sc = new Scanner(System.in);
        System.out.print("请选择你的职业(0.狂战士,1.圣骑士,2.刺客,3.猎手,4.牧师,5.部落獠牙)");//兽人所能选择的职业
        number = sc.nextInt();
        if(number==5){
            number=7;
        }

        return number;
    }
    public int Ability() {// 方法重写
        power=power+1;
        physical=physical+3;
        wit=wit-3;
        return number;

    }
}

创建一个蜥蜴人类

public class Lizardmen extends Person{

    public Lizardmen(String name, String sex,int num) {//有参构造
        super(name, sex,num);
    }


    public int CarrerChoice() {//方法重写
        Scanner sc = new Scanner(System.in);
        System.out.print("请选择你的职业(0.狂战士,1.圣骑士,2.刺客,3.猎手,4.牧师,5.自然萨满)");//人所能选择的职业
        number = sc.nextInt();
        if (number==5){number=10;}
        return number;
    }
    public int Ability() {// 方法重写

        wit=wit-1;
        perceive=perceive+3;

        return number;

    }
}

创建一个职业区别的类,里面使用静态方法来方便其他类来调用

public class OccupationalAttributes extends Person{
    public int u=1;
    public OccupationalAttributes(String name, String sex,int num) {

        super(name, sex,num);
    }

public static void zhiyesuxin(){
    switch (number){
        case 0:power=power+4;
            physical=physical+3;
            wit=wit-3;
            wisdom=wisdom-3;
            break;
        case 1:
            power=power+1;
            physical=physical+1;
            wit=wit+1;
            agility=agility-2;
            break;
        case 2:
            perceive=perceive+1;
            agility=agility+2;
            physical=physical-2;
            break;
        case 3:
            perceive=perceive+2;
            physical=physical-1;
            break;
        case 4:
            power=power-2;
            agility=agility-1;
            physical=physical-2;
            wit=wit+3;
            wisdom=wisdom+3;
            break;
        case 5:
            power=power-1;

            physical=physical-1;
            wit=wit+2;
            wisdom=wisdom+1;
            break;
        case 6:power=power-1;
        agility=agility-1;
        physical=physical+2;
        wisdom=wisdom+1;
        break;
        case 7:power=power+1;
        agility=agility+1;
        physical=physical+1;
        wisdom=wisdom-1;
        wit=wit-1;
        break;
        case 8:
            agility=agility+1;
            break;
        case 9:
            power=power+2;
            physical=physical+2;
            agility=agility-2;
            wit=wit-1;
            break;
        case 10:
            perceive=perceive+1;
    }
}

    public int CarrerChoice() {
        return u ;
    }

    public int Ability() {

return u;}
}

这样我们就可以区分了每一个人物,就不再是只有属性的人了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值