【问题标题】:Class and accessor methods Java类和访问器方法 Java
【发布时间】:2013-10-17 19:47:27
【问题描述】:

我不了解访问器方法,我一直在忙于创建 setAge、getAge 和 getName。

这是问题:

添加三个访问器方法,setAgegetAgegetName。这些方法应该设置和获取相应实例变量的值。

public class Player {

    protected int age;
    protected String name;

    public Player(String namArg) {
        namArg = name;
        age = 15;
    }
}

【问题讨论】:

  • 你是在问如何创建getter和setter方法吗?
  • 您应该先尝试自己解决这个问题,遇到障碍后再联系我们。如果您尝试过,请提出更具体的问题,我们应该能够帮助您解决问题。
  • @Andrew 是的,我想知道如何创建它们,例如语法。请
  • @Shaded 我之前已经给出了,但我不完全确定。

标签: java class methods accessor


【解决方案1】:

访问器方法用于返回私有或受保护字段的值。它遵循一个命名方案,在方法名称的开头加上“get”这个词。例如,让我们为 name 添加访问器方法:

class Player{
   protected name

//Accessor for name
   public String getName()
   {
     return this.name;
   }
}

可以通过对象访问protected name的值如:

Player ball = new Player()
System.out.println(ball.getName())

mutator 方法用于设置私有字段的值。它遵循一个命名方案,在方法名称的开头加上“set”这个词。例如,让我们为 name 添加 mutator 字段:

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

现在我们可以使用以下方法设置玩家名称: ball.setName('大卫');

【讨论】:

    【解决方案2】:

    您的实例变量是年龄和姓名。您的 setter 方法是无效的,并将您传递的参数设置为相应的变量。您的 getter 不是 void 并返回适当的变量。

    试试这个,然后带着问题回来。

    【讨论】:

    • 感谢您的帮助! :)
    【解决方案3】:
    public class Player {
    
    protected int age;
    protected String name;
    

    // 修改器方法
    公共无效setAge(字符串a){ 年龄=一个; }

    public void setName(String n) {
        name = n;
         }
    

    // 存取方法
    公共字符串 getAge() { 返回年龄; }

    public string getName() {
        return name;
         }
    
    
    }
    

    【讨论】:

    • 虽然 getName 和 getAge 正在返回它,但我不完全确定 setter 做了什么。这就是为什么我质疑我是否做得正确并在这里询问。感谢您的帮助
    • setter 设置字段的值。这个想法是你在类中定义一个私有变量来强制调用者调用你的 setter 方法。假设如果要添加年龄条件,例如年龄必须超过 15 岁。所以你将把这个条件放在年龄设置方法中。
    【解决方案4】:

    setAbcd 方法是用于设置受保护数据字段的 mutator 方法。 getAbcd 方法是用于返回数据字段值的访问器方法,因为它们通常是私有的并且在类之外不可用。

    例如

    public void getvariableName() {
        return variableName;
       }
    

    【讨论】:

      【解决方案5】:

      答案:我不懂访问器方法 事情是这样的:

      为什么我们需要访问器方法?封装!!! 为什么需要封装?

      1) 想象一下,您(程序员#1)将编写 setAge、getAge 和 getName 方法。 我是程序员#2。我很可能无法直接访问年龄和姓名。所以我让你使用你的公共访问器方法 setAge、getAge 和 getName。这是为了让您的代码和变量免于混乱。因为你不能信任所有的程序员。

      2) 在 setAge 方法中你可以提供 VALIDATION

      随机邪恶程序员:我想让年龄等于 234,所以你的程序结果会粉碎哈哈哈

      你:不,我要在我的 setAge 方法中添加验证条件,所以你只能使年龄等于 0 到 90(无论你想要什么)

      这是我们使用访问器方法最普遍的原因。

      代码说明:

      setAge 解释(这只是为了了解主要思想)

      public void setAge(int ageInput) { 
      if ((ageInput > 10) && (ageInput <90))
       {age = a;}}
      

      随机邪恶的程序员将 ageInput 发送到您的公共方法中。 首先,它检查年龄值是否正确。如果是,则年龄实例(对象)变量将变为 ageInput。如果没有,什么都不会发生,你的变量也不会被弄乱。

      GetAge:它只返回当前年龄值。没什么特别的。

      如果您还有其他问题,请告诉我;)祝您好运。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-01
        • 2012-06-02
        • 1970-01-01
        相关资源
        最近更新 更多