package XXX;
import java.util.Scanner;
public class UserDemo {
public static void main(String[] args) {
User user1 = new User();
User user2 = new User();
user1.setUsername("张三");user1.setPassword("Z123456");
user2.setUsername("李四");user2.setPassword("L123456");
User [] users = {user1,user2};
}
}
在测试类中,简单创建了两个对象,user1和user2,同时将这两个对象储存到User [] users这个对象数组当中。
那么我们在编写程序的时候,程序肯定不能只满足于供两个用户实行登录、注册等功能,所以必将面临一个问题:对User数组进行扩容。
扩容代码如下:
User[] temp = new User[users.length + 1];
for (int i = 0; i < users.length; i++) {
temp[i] = users[i];
}
for (int i = 3; i <= temp.length + 1; i++) {
User useri = new User();
temp[temp.length - 1] = useri;
}
temp[users.length].username = this.username;
temp[users.length].password = this.password;
users = temp;
System.out.println("注册成功,您的用户名:" + this.username + "您的密码:" + this.password);
其中一定要注意的是:因为我们创建的是一个用户对象的数组,数组当中每一个对象都对应着一个用户名和一个密码的值,所以我们在给数组进行扩容的时候,需要按照如下步骤来进行操作:
①建立一个临时的数组,其数组长度是原来对象数组的长度+1;
②通过循环,将原数组中的user1和user2保存到这个临时的数组当中
③新建一个对象,将这个对象通过下标保存到临时数组当中的最后一位
④给新建的对象进行赋值,将用户手动输入的username以及password赋值给新建的对象
⑤将临时数组赋值给原来的数组。使原有的数组实现扩容
那么在我们为数组进行扩容的时候,一旦忽略了第2步或者第3步,将导致对象无法及时保存到数组当中,也就是说数组当中的对象为null,那么在这个时候我们调用数组进行比较或者其他操作的时候,java就会给我们报出空指针异常。



