您的位置:首页 > 职场人生

java面试题(9月17日)

2016-09-17 09:24 148 查看
82、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;}

和上面的很相似,都是关于final的问题,这有错吗?

正确。在addOne method中,参数o被修饰成final。如果在addOne method里我们修改了o的reference,(比如: o = new Other();),那么如同上例这题也是错的。但这里修改的是o的member vairable(成员变量),而o的reference并没有改变。

87、 interface A{ int x = 0;}

class B{ int x =1;}

class C extends B implements A {

public void pX(){ System.out.println(x); }

public static void main(String[] args) { new C().pX(); }

}

错误。在编译时会发生错误(错误描述不同的JVM有不同的信息,意思就是未明确的x调用,两个x都匹配(就象在同时import java.util和java.sql两个包时直接声明Date一样)。对于父类的变量,可以用super.x来明确,而接口的属性默认隐含为 public static final.所以可以通过A.x来明确。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java