请问这个java程序为什么运行不了
publicclassTheater{intseat[][];publicstaticvoidmain(String[]args){Theatera=newTheater...
public class Theater
{
int seat[][];
public static void main(String[]args)
{
Theater a= new Theater(5,20);
System.out.println(a.seat[0][0]);//这里就是第7行
a.Buy(2,15);
a.Buy(2,15);
}
public Theater(int hang,int lie)//构造电影院座位
{
int seat[][]=new int[hang][lie];
for(int i=0;i<seat.length;i++)
for(int j=0;j<seat[i].length;j++)
seat[i][j]=0;
}
public void Buy(int hang,int lie)
{
if(check(hang,lie))
{
seat[hang-1][lie-1]=1;
System.out.println("位置购买成功");
}
else
System.out.println("购买失败");
}
public boolean check(int hang,int lie)
{
if((hang-1)>seat.length||(lie-1)>seat[0].length)
{
System.out.println("位置非法");
return false;
}
else if(seat[hang-1][lie-1]==1)
{
System.out.println("位置已被购买");
return false;
}
else if(seat[hang-1][lie-1]==0)
{
System.out.println("位置可被购买");
return true;
}
return false;
}
}
运行时提示Exception in thread "main" java.lang.NullPointerException
at Theater.main(Theater.java:7)
百度过感觉好像是因为a.seat其实根本不存在,但我不知道该怎么解决T T......
求大神帮助......万分感谢 展开
{
int seat[][];
public static void main(String[]args)
{
Theater a= new Theater(5,20);
System.out.println(a.seat[0][0]);//这里就是第7行
a.Buy(2,15);
a.Buy(2,15);
}
public Theater(int hang,int lie)//构造电影院座位
{
int seat[][]=new int[hang][lie];
for(int i=0;i<seat.length;i++)
for(int j=0;j<seat[i].length;j++)
seat[i][j]=0;
}
public void Buy(int hang,int lie)
{
if(check(hang,lie))
{
seat[hang-1][lie-1]=1;
System.out.println("位置购买成功");
}
else
System.out.println("购买失败");
}
public boolean check(int hang,int lie)
{
if((hang-1)>seat.length||(lie-1)>seat[0].length)
{
System.out.println("位置非法");
return false;
}
else if(seat[hang-1][lie-1]==1)
{
System.out.println("位置已被购买");
return false;
}
else if(seat[hang-1][lie-1]==0)
{
System.out.println("位置可被购买");
return true;
}
return false;
}
}
运行时提示Exception in thread "main" java.lang.NullPointerException
at Theater.main(Theater.java:7)
百度过感觉好像是因为a.seat其实根本不存在,但我不知道该怎么解决T T......
求大神帮助......万分感谢 展开
2个回答
展开全部
你源码里的这个构造函数里:
public Theater(int hang,int lie)//构造电影院座位
{
int seat[][]=new int[hang][lie];
for(int i=0;i<seat.length;i++)
for(int j=0;j<seat[i].length;j++)
seat[i][j]=0;
}声明了局部变量int seat[][],屏蔽掉了类成员int seat[][],所以类成员seat还是未初始化状态!
public Theater(int hang,int lie)//构造电影院座位
{
int seat[][]=new int[hang][lie];
for(int i=0;i<seat.length;i++)
for(int j=0;j<seat[i].length;j++)
seat[i][j]=0;
}声明了局部变量int seat[][],屏蔽掉了类成员int seat[][],所以类成员seat还是未初始化状态!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询