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就会给我们报出空指针异常。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)