难度级别: 困难
程序
程序一
1) 以下程序的输出是什么?
public class Outer { public static int temp1 = 1; private static int temp2 = 2; public int temp3 = 3; private int temp4 = 4; public static class Inner { private static int temp5 = 5; private static int getSum() { return (temp1 + temp2 + temp3 + temp4 + temp5); } } public static void main(String[] args) { Outer.Inner obj = new Outer.Inner(); System.out.println(obj.getSum()); } }
a) 15
b) 9
c) 5
d) 编译错误
程序二
2) 以下程序的输出是什么?
public class Outer { private static int data = 10; private static int LocalClass() { class Inner { public int data = 20; private int getData() { return data; } }; Inner inner = new Inner(); return inner.getData(); } public static void main(String[] args) { System.out.println(data * LocalClass()); } }
a) 编译错误
b) 运行时错误
c) 200
d) 以上都不是
点此跳转到答案
程序三
3) 以下程序的输出是什么?
interface Anonymous { public int getValue(); } public class Outer { private int data = 15; public static void main(String[] args) { Anonymous inner = new Anonymous() { int data = 5; public int getValue() { return data; } public int getData() { return data; } }; Outer outer = new Outer(); System.out.println(inner.getValue() + inner.getData() + outer.data); } }
a) 25
b) 编译错误
c) 20
d) 运行时错误
点此跳转到答案
程序四
4) 以下程序的输出是什么?
public class Outer { private int data = 10; class Inner { private int data = 20; private int getData() { return data; } public void main(String[] args) { Inner inner = new Inner(); System.out.println(inner.getData()); } } private int getData() { return data; } public static void main(String[] args) { Outer outer = new Outer(); Outer.Inner inner = outer.new Inner(); System.out.printf("%d", outer.getData()); inner.main(args); } }
a) 2010
b) 1020
c) 编译错误
d) 这些都不是
点此跳转到答案
程序五
5) 以下程序的输出是什么?
interface OuterInterface { public void InnerMethod(); public interface InnerInterface { public void InnerMethod(); } } public class Outer implements OuterInterface.InnerInterface, OuterInterface { public void InnerMethod() { System.out.println(100); } public static void main(String[] args) { Outer obj = new Outer(); obj.InnerMethod(); } }
a) 100
b) 编译错误
c) 运行时错误
d) 以上都不是
点此跳转到答案
文章后半部分是程序的输出及解析
输出及解析
程序一输出
答案:
(d)
说明:
静态内部类不能访问外部类的非静态字段。
程序二输出
答案:
(C)
说明:
LocalClass() 方法定义了一个局部内部类。此方法创建类 Inner 的对象并返回驻留在其中的变量数据的值。
程序三输出
答案:
(b)
说明:
方法 getData() 在 Anonymous 类中未定义,导致编译错误。
程序四答案
回答 :
(b)
说明:
上面定义的内部类虽然可以访问外部类的私有变量数据,但是在内部类中声明变量数据使其特定于内部类,在变量声明方面没有冲突。
程序五答案
回答 :
(a)
说明:
嵌套接口是在java中定义的。由于两个接口都有 InnerMethod() 的声明,因此实现它一次对 InnerInterface 和 OuterInterface 都有效。
以上就是本篇文章的所有内容了