Java – 使用Accessor和Mutator方法

我正在做家庭作业。 我对它应该如何完成感到困惑。

问题是:

创建一个名为IDCard的类,其中包含一个人的姓名,ID号以及包含该人的photogrpah的文件的名称。 为每个字段编写accessor和mutator方法。 将以下两个重载的构造函数添加到类中:

public IDCard()public IDCard(String n,int ID,String filename)

通过使用这两个构造函数创建不同的ojbect并使用accessor和mutator方法在控制台上打印出它们的值来测试程序。

到目前为止我已经重写了这个:

public class IDCard { String Name, FileName; int ID; public static void main(String[] args) { } public IDCard() { this.Name = getName(); this.FileName = getFileName(); this.ID = getID(); } public IDCard(String n, int ID, String filename) { } public String getName() { return "Jack Smith"; } public String getFileName() { return "Jack.jpg"; } public int getID() { return 555; } } 

让我们回顾一下基础知识:“Accessor”和“Mutator”只是一个吸引人和一个二传手的奇特名字。 getter,“Accessor”,返回一个类的变量或其值。 setter“Mutator”设置类变量指针或其值。

首先,您需要设置一个包含一些变量的类来获取/设置:

 public class IDCard { private String mName; private String mFileName; private int mID; } 

但是哦,不! 如果实例化此类,则这些变量的默认值将毫无意义。 BTW“instantiate”是一个奇特的词:

 IDCard test = new IDCard(); 

所以 – 让我们设置一个默认构造函数,这是在你“实例化”一个类时调用的方法。

 public IDCard() { mName = ""; mFileName = ""; mID = -1; } 

但是如果我们知道我们想要给变量的值呢? 所以让我们创建另一个构造函数,一个带参数的构造函数:

 public IDCard(String name, int ID, String filename) { mName = name; mID = ID; mFileName = filename; } 

哇 – 这很好。 但是很愚蠢。 因为我们无法访问(=读取)变量的值。 所以让我们添加一个getter,当我们在它的时候,添加一个setter:

 public String getName() { return mName; } public void setName( String name ) { mName = name; } 

尼斯。 现在我们可以访问mName 。 添加其余的访问者和mutator,你现在是一个经过认证的Java新手。 祝你好运。

您需要从访问器方法中删除static – 这些方法需要是实例方法并访问实例变量

 public class IDCard { public String name, fileName; public int id; public IDCard(final String name, final String fileName, final int id) { this.name = name; this.fileName = fileName this.id = id; } public String getName() { return name; } } 

你可以创建一个IDCard并使用这样的访问器:

 final IDCard card = new IDCard(); card.getName(); 

每次调用new时,都会创建一个新的IDCard实例,它将拥有它自己的3个变量副本。

如果使用static关键字,那么这些变量在IDCard每个实例中都是通用的。

要记住以下几点:

  1. 不添加无用的评论 – 他们添加代码混乱,没有别的。
  2. 符合命名约定,使用小写的变量名称 – name不是Name