这是一个在写作业时发现的一个有趣的地方.
当时想测试创建多个对象,于是想到使用类数组,于是模仿整形数组的创建方法凭感觉写出了如下代码:
1 2 3 4 5 6 7 8 9 10 11 12
| class BookTest{ public static void test() { Book[] book=new Book[4]; book[0].setTitle("一本少于200页的测试用书"); book[0].setPageNum(20); Book.detail(book[0]); book[1].setTitle("测试用书"); book[1].setPageNum(233); Book.detail(book[1]); }
|
运行结果:Exception in thread “main” java.lang.NullPointerException…….
提示空指针异常.
于是想到类类型数组中的元素为指向对象的指针,和C语言中指针数组相似的概念.使用以上代码创建的只是若干个指针,并没有指向任何对象,因此报错.
然后改成如下代码,使用for循环和new开辟内存空间之后就能对对象属性赋值了.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| class BookTest{ public static void test() { Book[] book=new Book[4]; for(int i=0;i<book.length;i++) {
book[i]=new Book("测试用书",0); } book[0].setTitle("一本少于200页的测试用书"); book[0].setPageNum(20); Book.detail(book[0]); book[1].setTitle("测试用书"); book[1].setPageNum(233); Book.detail(book[1]); }
|