指山 2016-05-21 23:28 采纳率: 100%
浏览 1032
已采纳

前辈早上好,我出现了一个运行时的错误,在网页上找了好久也没有头绪,可不可以给一个大提示?

刚刚学到java的重写,在敲代码时加入了许多自己的理解和程序if判断语句。
父类代码如下(问题出在父类的概率个人感觉基本排除,时间紧的前辈可以忽略):
public class Pet {
private String name; // 姓名。
private int health; // 健康值。
private int love; // 亲密度。
// 无参构造器。

public Pet() {
    super();
}

// 有参构造器。
public Pet(String name, int health, int love) {
    super();
    this.name = name;
    this.health = health;
    this.love = love;
}

// getter/setter.
public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public int getHealth() {
    return health;
}

public void setHealth(int health) {
    if (health < 0 || health > 100) {
        System.out.println("亲!知道您的宠物很健康啦!汗……不大于100的整数哦!");
        System.exit(1);
    } else {
        this.health = health;
    }
}

public int getLove() {
    return love;
}

public void setLove(int love) {
    if (love < 0 || love > 100) {
        System.out.println("亲!知道您和您的宠物关系不一般啦!汗……不大于100的整数哦!");
        System.exit(1);
    } else {
        this.love = love;
    }
}

// 父类方法。
public void print() {
    System.out.println("宠物的自白:");
    System.out.println("我的名字叫" + this.name + ",我的健康值是" + this.health + ",我和主人的亲密度是" + this.love+".");

}

子类代码如下(时间紧迫的前辈可以直接跳至问题出现的阶段):
public class QiE extends Pet {
private String sex; // 性别。
// 无参构造器。
public QiE() {
super();
}

// 有参构造器。
public QiE(String sex) {
    super();
    this.sex = sex;
}

// setter/getter。
public String getSex() {
    return sex;
}

public void setSex(String sex) {
    this.sex = sex;
}

// 企鹅的方法。
public void print() {
    super.print();
    System.out.println("我是一只" + this.sex+".");
}

}
Test类(问题出在企鹅部分的“判断用户输入的性别是否正确”中的“if”判断语句处
在代码执行阶段,输入“q仔”则直接判为输入错误,跳入else。
理论上讲,应该不会这样的啊,但现实一场残酷,请前辈给一个
大大的提示吧!先谢过了!):
public class Test {

public static void main(String[] args) {
    Dog dog = new Dog();
    QiE qiE = new QiE();
    Scanner in = new Scanner(System.in);
    // 提示输入宠物类型。
    System.out.print("请输入宠物类型(犬/企鹅):");
    String leiXing = in.next();
    // 判断用户所需要领养的宠物类型。
    if (leiXing.equals("犬")) {
        // 提示输入姓名。
        System.out.print("请输入宠物姓名:");
        dog.setName(in.next());
        // 提示输入健康值。
        System.out.print("请输入健康值(1~100):");
        dog.setHealth(in.nextInt());
        // 提示输入亲密度。
        System.out.print("请输入亲密度(1~100):");
        dog.setLove(in.nextInt());
        // 提示输入犬的品种。
        System.out.print("请输入宠物的品种:");
        dog.setPinZhong(in.next());
        dog.print();
    } else if (leiXing.equals("企鹅")) {
        // 提示输入姓名。
        System.out.print("请输入宠物姓名:");
        qiE.setName(in.next());
        // 提示输入健康值。
        System.out.print("请输入健康值(1~100):");
        qiE.setHealth(in.nextInt());
        // 提示输入亲密度。
        System.out.print("请输入亲密度(1~100):");
        qiE.setLove(in.nextInt());
        // 提示输入企鹅的性别。
        System.out.print("请输入企鹅的性别(Q仔/Q妹):");
        qiE.setSex(in.next());
        ******************问题出在这里******************************
        ******************问题出在这里******************************
        ******************问题出在这里******************************
        if (qiE.getSex().equals("Q仔") || qiE.getSex().equals("q仔") || 
                qiE.getSex().equals("Q妹") || qiE.getSex().equals("q妹")) {
            qiE.print();
        } else {
            System.out.println("输入的性别不符合规则,已终止操作。");
            System.exit(1);
        }
    } else {
        System.out.println("输入的宠物类型不正确或没有此类型的宠物,操作已终止。");
        System.exit(1);
    }
    in.close();
}
  • 写回答

1条回答 默认 最新

  • northwest_332 2016-05-22 00:32
    关注

    打印一下你qiE.getSex()是什么。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器