java数组调用问题

类中有一个静态成员变量(数组),此类中的某类方法a已经对其进行初始化和赋值。在main方法中先调用类方法a,再调用这个数组的时候却提示空指针异常。求解释。代码如下:cla... 类中有一个静态成员变量(数组),此类中的某类方法a已经对其进行初始化和赋值。在main方法中先调用类方法a,再调用这个数组的时候却提示空指针异常。求解释。
代码如下:
class Ts{
public static int a[];

public static void Inita(){
int a[]=new int[3];
a[0]=1;
a[1]=2;
a[2]=3;
}

public static void main(String args[]){
Inita();
System.out.println(a[2]);
}
}
提示运行时异常:空指针异常。
展开
 我来答
qiufeng6407
2012-05-19 · TA获得超过149个赞
知道小有建树答主
回答量:175
采纳率:0%
帮助的人:136万
展开全部
建议你去看一看局部变量和全局变量的作用域,
你就可以发现
public static void Inita(){
int a[]=new int[3];
a[0]=1;
a[1]=2;
a[2]=3;
}
这里面的数组a是局部变量,和上面的static的a并非同一个数组,也就是说,你的static数组并没有初始化。理所当然出现空指针异常。
更多追问追答
追问
需要加this关键字是吗?
追答
int a[]=new int[3];
把这一句改成 a[]=new int[3];就ok了
524679503
2012-05-19 · 超过18用户采纳过TA的回答
知道答主
回答量:95
采纳率:0%
帮助的人:57.1万
展开全部
你这是必然的啊,main函数里面打印出来的是静态数组里面的,但是你的inita方法里面创建的数组a却不是在操作静态数组a,你重新新建了局部变量
追问
需要加this关键字是吗?
追答
对,加this就都是在操作静态变量了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bd9006
2012-05-19 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.8万
采纳率:63%
帮助的人:1.7亿
展开全部
看代码吧, 重复定义数组造成

public static int a[];

public static void Inita(){
int a[]=new int[3];//这行前面的int删除
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fff3ffc
2012-05-21 · TA获得超过574个赞
知道小有建树答主
回答量:253
采纳率:100%
帮助的人:120万
展开全部
public class Ts{
public static int a[];
public static void Inita(){
a=new int[3];
a[0]=1;
a[1]=2;
a[2]=3;
}

public static void main(String args[]){
Inita();
System.out.println(a[2]);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式