你将如何创建像这样的课程
public class tmUser {
private String Username;
private int wHours;
static int numUsers;
public tmUser(){
Username = "";
wHours = 0;
}
public tmUser(String U, int H){
Username = U;
wHours = H;
}
public void setUsername(String U){
Username = U;
}
public void setwHours(int H){
wHours = H;
}
public String getUsername(){
return Username;
}
public int getwHours(){
return wHours;
}
public static void initnumUsers(){
numUsers = 0;
}
public static int getnumUsers(){
return numUsers;
}
}
然后打印所有“tmUser”实例Username变量?在每个循环中可能是一个?我希望像
这样的东西for each(tmUser){
System.out.println(Username);
}
这是一个程序中的菜单,显示所有创建的用户用户名。
先谢谢!
答案 0 :(得分:1)
你几乎拥有它:
List<TmUser> tmUsers = ...
for(TmUser user : tmUsers) {
System.out.println(user.getUsername());
}
您还希望将tmUser
大写为TmUser
。
答案 1 :(得分:0)
创建tmUser时,将其添加到
之类的集合中List<TmUser> tmUsers = new ArrayList<TmUser>();
TmUser tmUser = new TmUser(username, hoursWorked);
tmUser.add(tmUser);
// later
for(TmUser tmUser: tumUsers)
System.out.println(tmUser.getUsername());
答案 2 :(得分:0)
您需要先将所有tmUser
个实例存储在某处。你可以这样做:
public class tmUser {
...
public static List<tmUser> USERS = new ArrayList<tmUser>();
public tmUser() {
...
USERS.add( this );
}
然后打印:
for (tmUser user : tmUser.USERS) {
System.out.println(user.getUsername());
}
答案 3 :(得分:0)
目前的3个答案基本相同。只是想补充一点,如果类定义了返回用户名的toString()
,则无需添加.getUsername()
方法调用,因为System.out.println(Object)
会自动调用{{1}方法。
这是否适用于您的用例是值得商榷的。 toString()
方法通常会在对象上提供更多数据。
答案 4 :(得分:0)
正如已发布的答案所示,这将涉及维护某种数据结构,该结构包含对tmUser
的所有实例(例如List<tmUser>
)的引用。
这意味着对永远创建的每个实例的引用将始终保存在那里,它们永远不会被垃圾回收。当您决定不再需要实例时,可以显式删除它们,但是您必须跟踪所有实例的生命周期,并且基本上最终自己进行内存管理。