黑马程序员技术交流社区

标题: 求指教:帮忙看看哪错了?? [打印本页]

作者: 王小丑    时间: 2013-2-14 21:11
标题: 求指教:帮忙看看哪错了??
本帖最后由 王文正 于 2013-2-14 21:14 编辑

高手指教,昨天看一本java面试题集,遇到下面两个小问题,说出来很丢人,自己好歹学习这么长时间了,确实看不出来那一个地方错了?一共两个,求指教,多谢!
public class Something {
void doSomething () {
private String s = ”";
int l = s.length();
}
}
有错吗?


这个我看了很久都找不到错误
abstract class Something {
private abstract String doSomething ();
}
这好像没什么错吧?

作者: 王小丑    时间: 2013-2-14 21:13
补充:下面这个我就更搞不懂了,高手看看那个错了
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;
}

作者: 郑传庆    时间: 2013-2-14 21:33
这几个问题,说实在的网上有答案的,这里就说两个例子。
第二个例子,抽象方法不能私有化,这个可以参照有关抽象类的资料,会有介绍。
第三个例子,new Something().addOne(o),这个是一个内部类new Something(),然后直接在这内部类的后面调用该类的方法,传递相应的参数

网上很多答案,这样的问题很多很


作者: jonn    时间: 2013-2-14 22:30
只不过都是修饰符的问题,建议去看java语言规范....
作者: 朱玉玺    时间: 2013-2-14 22:35
本帖最后由 朱玉玺 于 2013-2-14 22:37 编辑

第一例子:局部变量不能使用成员变量的修饰符private~
第二个例子,楼上已经说了
第三个例子,运行没有问题啊。
另外楼主,你发代码的时候能不能用发帖里边的代码工具编辑一下,这样看很累。
作者: jonn    时间: 2013-2-14 22:53
貌似第三个非常有意思,是对滴,只不过方法内形参 final修饰的引用 o,对象的值可以改变
晓得 final 修饰基本类型(int,float,double....)值不能改变, final 修饰引用类型,引用的地址不能改变,但所引用对象的值可以改变

所以 final 对于基本类型,不可变的是值
             对于引用类型,不可变的是引用地址





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2