当前页面: 开发资料首页 → J2ME 专题 → 为什么对象里面是空的?
为什么对象里面是空的?
摘要: 为什么对象里面是空的?
public class Test{
public int a;
public int b;
public Vector v;
test(){
a = 0;
b = 0;
}
Test test = new Texst();
test.a = 2;
test.b = 3;
v.addElement();
Test t = new Test();
t = (Test)v.elementAt(0);
}
为什么t.a的和t.b的值都是0???
v.addElement();你没往vector加入任何东西,所以a,b 都是int默认的0值;
另测试代码最好写在函数里或main里,不然看起来好像什么也做不了。
这代码得有个性!!!
--------------------
我写错了..是v.addElement(test);应该是加进去了吧...但是取出来就是0
import java.util.*;
public class Test{
public int a;
public int b;
public Vector v = new Vector();
Test(){
a = 0;
b = 0;
}
public static void main(String[] args){
Vector v = new Vector();
Test test = new Test();
test.a = 2;
test.b = 3;
v.addElement(test);
Test t = (Test)v.elementAt(0);
System.out.println(t.a);
}}
这样你看看 你代码里好几个地方都些错了啊~~~
不可以在Test类里面new一个Test对象吗?
Test test = new Texst();
Texst??? 是这里写错了吗??
不是的..这里是我手写错误..
晕!!!J2ME里面也有main?
我晕
public void x1(){
Test test = new Test();
v = new Vector(10, 5);
test.a = 2;
test.b = 3;
v.addElement(test);
test.a = 4;
test.b = 5;
v.addElement(test);
Test t = new Test();
t = (Test)v.elementAt(0);
System.out.println("t->a:" + t.a + "t->b:" + t.b);
t = (Test)v.elementAt(1);
System.out.println("t->a:" + t.a + "t->b:" + t.b);
}
如果这样打印出来的结果怎么两次都是4,5???
可以不可以每次new出不一样的名字的对象出来呢?这个名字是手机自己给的!
test.a = 2;
test.b = 3;
v.addElement(test);
test.a = 4;
test.b = 5;
v.addElement(test);
注意,你两次往里add的都是test这个对象。
而java里的对象都是引用来操作的。
所以,你的v.elementAt(1),和v.elementAt(0)实际上是指向同一个test。
也就是相当于两个指针指向同一个对象。
正确的做法是,new两个Test对象出来。
thx
我想也是~~~~