| 发表于:2007-09-27 23:14:1236楼 得分:0 |
yaray(雅睿,生活在别处) ( ) 信誉:110 2007-8-23 16:48:21 得分: 0 上面的答案除了 dtliupeng(吉利) 的回答以外,其他的全是错误的。 integer对象是final class,其对象值是不可改变的(对象实例化以后值就不可改变);其“值的改变”是依靠于重新生成定义新值的对象(string对象也是这样的)。 如果上例中采用的为 非final class,则应该选择c,而不是b。 kome2000() ( ) 信誉:90 2007-9-22 17:33:14 得分: 0 同意 manbaum(砸锅上网) 的说法 final 修饰 类, 类不可以被继承 final 修饰 方法, 方法不可以被重写或覆盖 final 修饰 变量, 变量不可以被修改! 先说一下:一个final类型实例的类变量,是不能再指向(引用)另一个地址的类型实例,而不是对象实例化以后值就不可改变,它所指向的地址的值仍是可变的.当然这样的类自是不可继承的,不过这与本题无关. 1. public class test { 2. public static void add3 (integer i) }//第二个i(叫i2),i2指向i1所指向的实例,值为0的那个实例(现在唯一的一个实例) 3. int val = i.intvalue ( );//变量val(第三个变量),其值为0,这个值是由i2指向的实例获得的 4. val += 3;//变量val值变为3 5. i = new integer (val);//由val构造出第二个integer实例(也是本题第二个实例),由i2指向 6. } 7. 8. public static void main (string args [ ] ) { 9. integer i = new integer (0);//第一个i(叫i1吧),指向一个integer实例,值为0 10. add3 (i);//i1指针(引用)被传递 11. system.out.printin (i.intvalue ( ) );//最后,i1仍然安静的默默的指向着第一个integer实例(也是本题第一个实例),那么它的值仍然是0了 12. } 13. } | | |
|