java数组空指针一场_Java使用自定义类数组报空指针异常
一開始自定義了一個(gè)學(xué)生類,類里面有幾個(gè)屬性。因?yàn)橛泻芏鄠€(gè)學(xué)生,所以想將這個(gè)類聲明成數(shù)組使用,但是當(dāng)我通過不同的下標(biāo)給數(shù)組里不同對(duì)象賦值的時(shí)候一直報(bào)空指針異常
一開始代碼是這樣的
package _4_9_test;
public class EightTwoTest {
public static class Test{
String name;
int num;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Test test[] = new Test[2];
test[0].name = "張珊";
test[0].num = 1;
test[1].name = "李四";
test[1].num = 2;
System.out.println(test[0].name+" "+test[0].num);
System.out.println(test[1].name+" "+test[1].num);
}
}
看了文檔后發(fā)現(xiàn)**數(shù)組的創(chuàng)建不會(huì)給數(shù)組成員分配內(nèi)存**
也就是說
Test test[] = new Test[2];
是沒有地方可以存數(shù)據(jù)的。
只有每個(gè)成員進(jìn)行聲明后才會(huì)給這個(gè)成員分配內(nèi)存
test[0] = new Test();
改良后的代碼是這樣的
package _4_9_test;
public class EightTwoTest {
public static class Test{
String name;
int num;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Test test[] = new Test[2];
test[0] = new Test();
test[0].name = "張珊";
test[0].num = 1;
test[1] = new Test();
test[1].name = "李四";
test[1].num = 2;
System.out.println(test[0].name+" "+test[0].num);
System.out.println(test[1].name+" "+test[1].num);
}
}
總結(jié)
以上是生活随笔為你收集整理的java数组空指针一场_Java使用自定义类数组报空指针异常的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java http get json_j
- 下一篇: java美元兑换,(Java实现) 美元