非常简单的Java题,帮帮忙,送分

Eli_lyq 2013-11-12 11:19:08

新小菜,不太会,如果该,怎么改啊,求大神,大侠
...全文
319 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
public class T {
int id ;
String name;
double score;

public static void main(String[] args) {
T[] t = new T[2];
t[1] = new T();
t[1].id = 2;
System.out.println(t[1].id = 2);
}
}
引用楼上
  • 打赏
  • 举报
回复
搞清楚t[1]是什么,哪个时候创建的。 t[1].id 是调用t中第二个元素的id属性,但是此时他t[1]还没有具体的T对象,所以就报错了,空指针异常。求指正!
请叫我猪小懒 2013-11-15
  • 打赏
  • 举报
回复
public class T { int id ; String name; double score; public static void main(String[] args) { T[] t = new T[2]; t[1] = new T(); t[1].id = 2; System.out.println(t[1].id = 2); } } 实施#3的合意,对对象进行初始化,就不会引发空指针了。
Eli_lyq 2013-11-15
  • 打赏
  • 举报
回复
感谢各位,很多大侠给出了意见,非常感谢。。。。但我更需要一个方案。。
Eli_lyq 2013-11-15
  • 打赏
  • 举报
回复
引用 4 楼 gaofuqi 的回复:
你只是创建了数组,没有创建数组元素,改成下面试试。

public class ArrayTest {

	int id;
	String name;
	double score;
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        ArrayTest[] t = new ArrayTest[]{new ArrayTest(), new ArrayTest()};
        t[1].id=2;
        System.out.println(t[1].id);
	}

}
这个合意。。。
常书 2013-11-13
  • 打赏
  • 举报
回复
id未分配空间就被调用不对,应定义为 static int id;
Allan_小七 2013-11-13
  • 打赏
  • 举报
回复
抛出的是空指针异常, T[] t = new T(2); 你创建了一个T类型的数组,声明长度为3, 但里面没有值。所以程序执行t[1].id = 2 ,这句就抛出该异常。
TT天天 2013-11-13
  • 打赏
  • 举报
回复
之前就错了。
tony4geek 2013-11-13
  • 打赏
  • 举报
回复
t[1] 没有初始化
guita_r 2013-11-13
  • 打赏
  • 举报
回复
你确定需要的是数组吗? T[] t = new T(2); 这样声明的话 数组里面每个元素都是T 每个T里面有id name score 3个属性 不需要数组的话 可以直接 T t = new T(); t.id = 2; System.out.printIn(t.id); 这样打出的就是2 如果需要的就是数组 就用上面各位大神说的方法就行
  • 打赏
  • 举报
回复
T[] t=new T[2];你创建了长度为2的对象数组。 既然是对象,用之前必须实例化。 应加上(在t[1].id=2之前)t[1]=new T(); 否则t[1]=null,无法为它的id赋值,更无法读取。
gaofuqi 2013-11-13
  • 打赏
  • 举报
回复
你只是创建了数组,没有创建数组元素,改成下面试试。

public class ArrayTest {

	int id;
	String name;
	double score;
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        ArrayTest[] t = new ArrayTest[]{new ArrayTest(), new ArrayTest()};
        t[1].id=2;
        System.out.println(t[1].id);
	}

}
WayneXuan 2013-11-13
  • 打赏
  • 举报
回复
数组初始化了,但数组里面的对象没有初始化,t[1]还是null,null.id=2当然会抛异常. 应在t[1].id=2前加一句 t[1]=new T();
yansaiyun176 2013-11-12
  • 打赏
  • 举报
回复
t[1] 里面什么都没有。你创建了一个T数组,但是没有给里面赋值。 T t1 = new T(); t[1] =t1; 加上这句就ok了。

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧