我正在做家庭作业。我对它应该如何完成感到困惑。
问题是:
创建一个名为IDCard的类,其中包含一个人的姓名,ID号, 以及包含该人的photogrpah的文件的名称。写 每个字段的访问器和mutator方法。添加 跟随两个重载的构造函数到类:
public IDCard()public IDCard(String n,int ID,String filename)
使用这两个来创建不同的ojbect来测试您的程序 构造函数并使用。在控制台上打印出它们的值 访问者和变异者方法。
到目前为止我已经重写了这个:
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;
}
}
答案 0 :(得分:34)
让我们回顾一下基础知识: “Accessor”和“Mutator”只是一个吸引人和一个二传手的奇特名字。 getter,“Accessor”,返回类的变量或其值。 setter“Mutator”设置类变量指针或其值。
首先,你需要设置一个包含一些变量来获取/设置的类:
public class IDCard
{
private String mName;
private String mFileName;
private int mID;
}
但是哦不!如果实例化此类,则这些变量的默认值将毫无意义。 B.T.W. “实例化”是一个奇特的词:
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新手。
祝你好运。
答案 1 :(得分:3)
您需要从访问者方法中删除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
。