【问题标题】:Getter and Setter methodsGetter 和 Setter 方法
【发布时间】:2017-09-09 12:48:33
【问题描述】:

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

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

(a) 保证age不能小于0,age不能大于100

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

对我将如何解决这个问题有任何想法或建议吗?

提前致谢

【问题讨论】:

  • 我建议您尽可能多地尝试实施,当您遇到困难时,向我们展示您的尝试并提出具体问题。
  • 这是你的作业吗?
  • 分享你目前为止的尝试?
  • 对于一个,在setter中你可以管理。对于 b,我将创建一个具有所需颜色的枚举并创建该类型的属性
  • 分享您当前的代码,以便我们为您提供帮助

标签: java methods getter-setter greenfoot


【解决方案1】:

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

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

public returntype getSomeAtribute(){
    return someAtribute; 
}

setter方法用于设置一个属性的值,不同类型的属性可以有不同的值,boolean有真假,int有整数,String有文本。要设置 a 的值,您只需通过写入覆盖当前值:

public void setSomeAtribute(){
   someAtribute = something; 
}

【讨论】:

    【解决方案2】:

    我希望对你有所帮助,这至少会给你一个可见性,你可以随意修改它:

    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
          }
        }
    
      }
    

    【讨论】:

    • 非常感谢您的帮助!真的很感激
    • @chickencreature 没问题,请采纳!
    猜你喜欢
    • 2011-04-14
    • 2017-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-09
    • 2012-06-23
    相关资源
    最近更新 更多