黑马程序员技术交流社区

标题: 方法中的内部类 [打印本页]

作者: wuhyoung    时间: 2014-6-5 21:17
标题: 方法中的内部类
方法中含有内部类,能否在方法外访问次内部类呢?
  1. class Outer{
  2.         int x = 3;
  3.        
  4.         public void method(){
  5.                 final int y = 4;
  6.                 class Inner{
  7.                         void function(){
  8.                                 System.out.println(x);
  9.                                 System.out.println(y);
  10.                         }
  11.                 }
  12.         }
  13. }
复制代码

如上代码,能否在方法外访问内部类Inner呢?

作者: 饥渴ing    时间: 2014-6-5 21:42
这个能创建嘛?来学习学习.
作者: xp8812    时间: 2014-6-5 21:58
你把代码测试一下,看看效果不就知道了
作者: xp8812    时间: 2014-6-5 22:00
本帖最后由 xp8812 于 2014-6-5 22:02 编辑

1.在外部类的一般方法中创建:直接使用Inner in = new Inner();
2.在外部类的静态方法中创建:以为静态方法无法访问非静态对象,所以Inner in = new Outer().new Inner();这样创建,即创建一个外部类的对象再用外部类对象去创建内部类对象。
3.在别的类中,使用Outer.Inner in = new Outer().new Inner();创建

作者: 饥渴ing    时间: 2014-6-5 22:07
xp8812 发表于 2014-6-5 22:00
1.在外部类的一般方法中创建:直接使用Inner in = new Inner();
2.在外部类的静态方法中创建:以为静态方法 ...

他的内部类在方法中啊.这怎么可能创建啊.
作者: 何堂红    时间: 2014-6-5 22:34
内部类是个难理解的知识点啊,我也经常晕晕乎乎的

作者: wuhyoung    时间: 2014-6-6 07:30
xp8812 发表于 2014-6-5 22:00
1.在外部类的一般方法中创建:直接使用Inner in = new Inner();
2.在外部类的静态方法中创建:以为静态方法 ...

在方法外的创建方法中的内部类
作者: wuhyoung    时间: 2014-6-6 07:31
xp8812 发表于 2014-6-5 21:58
你把代码测试一下,看看效果不就知道了

我是想问一下在方法外如何实例化方法中的内部类,
作者: 塔罗    时间: 2014-6-6 10:13
局部位置的内部类,在其他的类中应该不能调用把? 要想调用function()方法只能在本类中创建一个对象调用,在其他类中调用method()的方法把。
作者: KevinSmart    时间: 2014-6-6 16:25
其他方法应该是不能调用的,如果想让其他方法调用就不要定义到方法里了,定义内部类到类里面,这样内部类可以作为类成员来使用
作者: Wokno    时间: 2014-6-6 19:04
你这个应该叫局部类,其作用范围和局部变量一样。
作者: 艮昕辶    时间: 2014-6-7 10:56
  1. class Outer{
  2.        
  3.         class Inner{
  4.                 void show(){
  5.                         System.out.println("class Inner void show(){}");
  6.                 }
  7.         }
  8. }
  9. public class Demo
  10. {
  11.         public static void main(String[] args)
  12.         {
  13.                         Outer.Inner o_i=new Outer().new Inner();
  14.                         o_i.show();
  15.         }
  16. }
复制代码

作者: 笑脸迷人    时间: 2014-8-28 22:56
内部类作为局部成员的时候,在局部范围外是不能被访问的!




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