2

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

这是问题:

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

public class Player {

    protected int age;
    protected String name;

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

5 回答 5

4

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

class Player{
   protected name

//Accessor for name
   public String getName()
   {
     return this.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('David');

于 2013-10-17T20:02:13.053 回答
1

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

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

于 2013-10-17T19:52:36.923 回答
0
public class Player {

protected int age;
protected String name;

// 修改器方法
public void setAge(String a) { age = a; }

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

// 访问方法
public string getAge() { return age ; }

public string getName() {
    return name;
     }


}
于 2013-10-17T19:52:30.570 回答
0

答案:我不明白访问器方法是这样的:

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

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

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

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

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

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

代码说明:

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

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

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

GetAge:它只返回当前年龄值。没有什么花哨。

如果您有更多问题,请告诉我;)祝您好运。

于 2013-10-17T19:56:34.727 回答
0

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

例如

public void getvariableName() {
    return variableName;
   }
于 2013-10-17T19:51:05.803 回答