Getter 和 Setter 方法

Posted

技术标签:

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

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

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

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

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

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

提前致谢

【问题讨论】:

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

以上是关于Getter 和 Setter 方法的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin类与对象 ① ( 成员属性 | Kotlin 自动为成员字段生成 getter 和 setter 方法 | 手动设置成员的 getter 和 setter 方法 | 计算属性 )

getter 和 setter方法

Kotlin类的初始化 ① ( 成员属性 | Kotlin 自动为成员字段生成 getter 和 setter 方法 | 手动设置成员的 getter 和 setter 方法 | 计算属性 )

Getter 和 Setter 方法

龙目岛不生成getter和setter?

Python中的setter和getter