【发布时间】:2019-11-10 09:24:19
【问题描述】:
我正在尝试为编程学校项目创建一个类来处理我的用户数据库。这将使用数组而不是数组列表,它是分配的核心参数。
public class UserDB {
User[] UserAry;
public UserDB(){
UserAry = new User[0];
}
//admin
public void addUser(String id, String pw, char type){
User[] NewUserAry = new User[UserAry.length+1];
for (int i=0; i<UserAry.length;i++){
NewUserAry[i] = UserAry[i];
}
NewUserAry[NewUserAry.length-1] = new User(id,pw,type);
UserAry = NewUserAry;
}
}
这是代码。我担心如果我要在另一个类中调用它,那么数组将始终为 0(当我调用 UserDB 时)或 1(当我添加新用户时,它会在前一个零上加一),在 arraysize 之前由于它被初始化为0,再次变为0。
【问题讨论】:
-
这看起来像工作代码。你能更具体地谈谈你的问题吗?也许您对 Java 在某些方面的工作方式存在误解?
-
那么,你在为什么呢?
-
"之前arraysize又变为零了,因为它被初始化为0" 为什么会变为零?为什么会初始化为0?这只发生在您创建
UserDB的新实例时,因此不要创建新实例,继续使用您创建的第一个实例。当然,这一切都发生在您未显示的代码中,因此我们对此无能为力。 -
我还没有开始制作我没有实际显示的代码。我仍在努力制作在实际主代码期间使用的类。我想我可能误解了代码/Java 的工作原理,所以我很恐慌