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
每个实例中都是通用的。
要记住以下几点:
- 不添加无用的评论 – 他们添加代码混乱,没有别的。
- 符合命名约定,使用小写的变量名称 –
name
不是Name
。