黑马程序员技术交流社区
标题:
编程问题,不知道哪里错了?
[打印本页]
作者:
张会文
时间:
2012-12-31 22:33
标题:
编程问题,不知道哪里错了?
本帖最后由 张会文 于 2013-1-1 09:50 编辑
<font size="3">
</font><p style="margin: 0cm 0cm 0pt; text-indent: 21pt;" class="MsoNormal"><span lang="EN-US"><font size="3" face="Times New Roman">public class
Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
o.i++;
}
}
class Other {
public int i;
}</font></span></p><font size="3">
</font>
复制代码
作者:
谢毅
时间:
2012-12-31 22:51
我觉得你这个public int i;要么附初值,要么给个set() get()方法啊,你这样i没意义了
作者:
何伟
时间:
2012-12-31 23:01
用final修饰other o ?下面还有 o.i++? final修饰后就是常量了,不能在次赋值
作者:
何伟
时间:
2012-12-31 23:02
用final修饰other o ?下面还有 o.i++? final修饰后就是常量了,不能在次赋值
作者:
王玮
时间:
2012-12-31 23:13
反正被 final修饰的 就不能更改了。
作者:
嘿嘿小学徒
时间:
2012-12-31 23:33
楼上各位仁兄...这个小程序完全没错,请看我注释:
package heima.io;
public class Test {
/**
* @param 黑马程序员
* @author 高一航
*/
public static void main(String[] args) {
Other o = new Other();
new Test().addOne(o);
System.out.println(o.i);
}
public void addOne(final Other o) { // 当final修饰对象引用时,对象是可变的,不可变只是“变量对对象的引用”
o.i++;
}
}
class Other {
public int i;
}
复制代码
当final修饰对象引用时,对象是可变的,不可变只是“变量对对象的引用”
作者:
刘文超
时间:
2013-1-1 07:53
lz的java代码是没有问题的。但嵌套在标签里面就不知道可不可以了,偶才疏学浅没有用过。
不过final这样用是没有任何问题的,正如楼上所说:
final的“不可变”不是对象里面的属性值不可以改变、而是final这个引用指向对象o就不可以再取指向其它对象o1了。对于这种说法、看我代码:
package org.qyx.online;
public class TestFinal {
public static void main(String[] args) {
final Person p1=new Person("张三");
p1.setName("李四");
System.out.println(p1.getName());//此时打印出李四,说明对象的属性是可以被改变的哦、
//p1=new Person("王五");
//当引用改变指向对象的时候,在eclipse下会提示错误
//The final local variable p1 cannot be assigned. It must be blank and not using a compound assignment
//所以”final修饰的变量是不可以被改变“中的“改变”二字说的是引用的指向不变,
//和基础类型一样,只是栈中存放的不可以被改变,实际堆中的对象是允许改变的、
}
}
class Person{
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
复制代码
----------接分中------------
作者:
黄锦成
时间:
2013-1-1 08:59
不知道你想问什么
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2