我有一个“俱乐部”,并且会有俱乐部的成员。
我的第一堂课有这个:
private String first;
private String last;
private static int members = 0;
public tuna(String firstName, String lastName){
first = firstN;
last = lastN;
members++;
System.out.printf("%s %s\nMembers: %d", first, last, members);
}
}
我有
class thing {
public static void main(String[] args){
tuna member1 = new tuna("Megan", "Fox");
tuna member2 = new tuna("Mila", "Kunis");
tuna member3 = new tuna("Melanie","Iglesias");
}
}
当我运行它时,我明白了:
Megan Fox
Members: 1Mila Kunis
Members: 2Melanie Iglesias
Members: 3
但我希望“会员:3”成为唯一显示的“会员”文字,我希望它在程序的最后。所以我希望它显示为:
Megan Fox
Mila Kunis
Melanie Iglesias
Members: 3
答案 0 :(得分:1)
在您完成向班级添加成员后,调整tuna
以使用getMemberCount()
方法。
示例:
我们将printf
语句更改为System.out.printf("%s %s\n", first, last);
。
我们在名为tuna
的{{1}}中添加了一个访问者,该访问者返回getMemberCount()
。这是一个选择,因为对象的数量 独立于对象的数据本身。
static int
最后,您将public static int getMemberCount() {
return members;
}
称为:
getMemberCount()
您只需使用类名称(类似于System.out.println("Members:" + tuna.getMemberCount()); // Gets the member count.
)调用静态方法,这意味着您不需要创建它的新实例。
答案 1 :(得分:0)
删除它:
System.out.printf("%s %s\nMembers: %d", first, last, members);
将这些方法添加到您的班级:
public int getMembers() { // accessor for members field
return members;
}
protected void finalize() { // decrement member count when one is destroyed
members--;
}
在member3
声明之后将其添加到您的main方法:
System.out.println("Members: " + member3.getMembers());