java程序,哪里错了?

[复制链接]
查看11 | 回复3 | 2008-10-29 13:33:59 | 显示全部楼层 |阅读模式
import javax.swing.JOptionPane;
public class keyishanchu {
class test{
long ID;
String name;
test(long ID,String name){
this.ID=ID;
this.name=name;
}
}
public static void main (String[] args) {
test[] s=new test[10];
int count=0;
s[count].ID=Long.parseLong(JOptionPane.showInputDialog(null,"输入ID:"));
s[count].name=JOptionPane.showInputDialog(null,"输入name:");
count++;
System.out.println(s[0].ID+""+s[0].name+"\n");
System.out.print(count);

}
}
}
编译可以通过!
要怎么改呢?

回复

使用道具 举报

千问 | 2008-10-29 13:33:59 | 显示全部楼层
这样做test对象会是空指针,因为你定义的时候并没有真正的创建对象,注意类Test的构造函数是传两个参数的...
回复

使用道具 举报

千问 | 2008-10-29 13:33:59 | 显示全部楼层
为什么要定义成一个test数组呢?看你的程序你只用到一个 test对象那就直接这样用好了 test s = new test();...
回复

使用道具 举报

千问 | 2008-10-29 13:33:59 | 显示全部楼层
1.建议你不要把test写成内部类,完全可以把它放在kwyishanchu外面的。2.test中你只写了有参数的构造方法,这种情况下会被认为没有无参的构造方法,如果调用就会出错。3.你用 test[] s = new test[10]来声明一个test的数组,但你并没有为数组中的每个test赋初始值,默认情况下,从s[0]到s[9]都是null,所以...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行