1. public class Outer{ 2. public void someOuterMethod() { 3. // Line 3 4. } 5. public class Inner{} 6. public static void main( String[]argv ) { 7. Outer o = new Outer(); 8. // Line 8 9. } 10. } Which instantiates an instance of Inner? A. new Inner(); // At line 3 B. new Inner(); // At line 8 C. new o.Inner(); // At line 8 D. new Outer.Inner(); // At line 8//new Outer().new Inner()
解决方案 »
- 这个程序为什不能编译?怎样修改,怎样设置负值?
- Java小程序时钟代码,请帮忙解释下代码!谢谢!
- 谁有Java 2 SDK 1.4左右版本的CHM文件下载啊
- 高分求高手指点!!急!急!急!路由器上LS选路算法和DV选路算法的实现!高手进啊!
- 初学java 请各位高手推荐几本好书
- 如何在java中播放动画?avi格式或者flash的动画?其他格式也行!
- 关于输入的问题
- 使用jdbc-odbc连接mysql.出现java.sql.SQLException: Result set type is TYPE_FORWARD_ONLY!
- swing界面的问题
- 多线程问题,Object.wait() 和 Object.notify() 如何理解?
- JavaScript中的一个诡异问题,关于trim()方法
- java 线程问题 急~~~
line3处可填:new Inner();
line 8处或填:new Outer().new Inner()
a dA new Inner(); // At line 3 作为外部类的一个成员存在,与外部类的属性、方法并列。
内部类和外部类的实例变量可以共存。
在内部类中访问实例变量:this.属性
在内部类访问外部类的实例变量:外部类名.this.属性。
在外部类的外部访问内部类,使用out.inner.成员内部类的特点:
1.内部类作为外部类的成员,可以访问外部类的私有成员或属性。(即使将外部类声明为PRIVATE,但是对于处于其内部的内部类还是可见的。)
2.用内部类定义在外部类中不可访问的属性。这样就在外部类中实现了比外部类的private还要小的访问权限。
注意:内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。
对于一个名为outer的外部类和其内部定义的名为inner的内部类。编译完成后出现outer.class和outer$inner.class两类。
3.成员内部类不能有静态属性建立内部类对象时应注意:
D new Outer.Inner(); At line 3 在外部类的内部可以直接使用inner s=new inner();(因为外部类知道inner是哪个类,所以可以生成对象。)
D new Outer().new Inner() At line 8
而在外部类的外部,要生成(new)一个内部类对象,需要首先建立一个外部类对象(外部类可用),然后在生成一个内部类对象。Outer o=new Outer();
Outer.Inner in=o.new.Inner()。
// Line 3
new Inner();
} public static void main( String[]args) {
Outer o = new Outer();
// Line 8
o.new Inner();
} public class Inner {}
}两处都可以添加的!只是注意line8和line3 一个是静态 一个不是静态就好了!
个人意见!
解释有个写反了A new Inner(); // At line 3
在外部类的内部可以直接使用inner s=new inner();(因为外部类知道inner是哪个类,所以可以生成对象。)
D new Outer.Inner(); At line 3 作为外部类的一个成员存在,与外部类的属性、方法并列。