-9

我在 Greenfoot 做一个 Java 作业,我被一个关于 getter 和 setter 方法的问题困住了,我找不到答案。

我被要求为三个属性(名称、颜色、年龄)编写一个 getter 和 setter 方法,然后使用这些方法:

(a) 确保年龄不能小于 0,年龄不能大于 100

(b) 确保唯一有效的颜色是黑色、白色、棕色和灰色

关于如何解决这个问题的任何想法或建议?

提前致谢

4

2 回答 2

1

我希望对您有所帮助,这至少会给您带来可见性,并且您可以根据需要对其进行修改:

public class MyClass {

    private String name;

    private int age;

    private String color;

    private final List<String> colors = Arrays.asList("Black", "White", "Brown ", "Grey");

    public String getName() {
      return name;
    }

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

    public String getColor() {
      return color;
    }

    public void setColor(String color) {
      if (colors.contains(color)) {
        this.color = color;
      } else {
        // if not valid do what you want
      }
    }

    public int getAge() {
      return age;
    }

    public void setAge(int age) {
      if (age > 0 && age <= 100) {
        this.age = age;
      } else {
        // if not valid do what you want
      }
    }

  }
于 2017-04-13T12:51:25.583 回答
0

我看到你的问题已经有一个非常好的代码答案,所以我将专注于解释 getter 和 setter 方法:

getter 方法用于获取属性(也称为字段)。属性通常位于程序的顶部,例如:private int i; 我是一个属性。同一类中的所有方法都可以访问属性。因此,在编写 getter 方法时,您只需编写:

public returntype getSomeAtribute(){
    return someAtribute; 
}

setter 方法用于设置属性的值,不同类型的属性可以有不同的值,boolean 有 true 或 false,int 有整数,String 有文本。要设置 a 的值,您只需通过以下方式覆盖当前值:

public void setSomeAtribute(){
   someAtribute = something; 
}
于 2017-04-13T13:18:51.893 回答