Lansional 2023-09-24 23:15 采纳率: 88%
浏览 3
已结题

Java封装,为什么打印出的结果和我输入的不一致


public class GirlFriend {
    private String name;
    private int age;
    private String gender;  //变量

    public void setName(String n) {
        name = n;          //给成员变量name赋值
    }

    public String getName() {
        return name;    //对外提供成员变量name的值
    }

    public void setAge(int a) {
        if (age >= 18 && age <= 50) {
            age = a;          //给成员变量age赋值,并判断是否合法
        } else {
            System.out.println("非法参数");
        }
    }

    public int getAge() {
        return age;       //对外提供成员变量age的值
    }

    public void setGender(String arr) {
        gender = arr;     //给成员变量gender赋值
    }

    public String getGender() {
        return gender;      //对外提供成员变量gender的值
    }

    public void sleep() {
        System.out.println("女朋友在睡觉");
    }

    public void eat() {
        System.out.println("女朋友在吃饭");
    }
}
public class GirlFriendTest {
    public static void main(String[] args) {
        GirlFriend gf1 = new GirlFriend();
        gf1.setName("小诗诗");
        gf1.setAge(18);
        gf1.setGender("女");

        System.out.println(gf1.getName());
        System.out.println(gf1.getAge());
        System.out.println(gf1.getGender());

        gf1.sleep();
        gf1.eat();
    }
}

为什么结果是这样的

img

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2023-09-24 23:20
    关注

    引自免费应用 皆我百晓生 小程序,希望对题主有所帮助,如有帮助,还请采纳。


    img

    这部分有问题,应该拿a去判断,而不是age

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月3日
  • 已采纳回答 9月25日
  • 创建了问题 9月24日