黑马程序员技术交流社区

标题: 内部类问题 [打印本页]

作者: kenhe    时间: 2014-12-8 12:11
标题: 内部类问题
毕老师视频中讲到的是:内部类不可以访问它所在局部中的变量,只能访问被final修饰的局部变量。
但是我的这个程序可以运行啊。
class Outer//定义外部类
{
        //int x=3;
        void method()
        {
                int x=6;//局部变量
                class Inner //定义内部类
                {
                        //int x=5;
                        void function()
                        {
                                //int x=4;
                                System.out.println(x);
                        }
                }
                Inner in=new Inner();
                in.function();
        }
}
class OuterInner
{
        public static void main(String[] args)
        {
                Outer out=new Outer();
                out.method();
        }
}
//上面程序有打印结果 6  啊
作者: kenhe    时间: 2014-12-8 12:12
速求各位大侠指点
作者: FlyFish    时间: 2014-12-8 14:42
JDK1.8新特性
作者: wtjohn    时间: 2014-12-8 14:54
你确定可以??
作者: l763631191    时间: 2014-12-8 15:18
你在main方法里建立的对象只是建立一个外部类的对象,压根就没有用到内部类,,你叼用方法当然输出的就是method()方法里的6了!  真正用到内部类建立对象的格式是Outer.Inner out=new Outer().newInner;所以骚年 ,你的内部类对象定义的格式就错了,还是应该回去看看熟悉一下!
作者: lidinghai    时间: 2014-12-8 15:53
楼上正解:Outer.Inner out=new Outer().newInner;这才用到了内部类。
作者: kenhe    时间: 2014-12-8 16:00
本帖最后由 kenhe 于 2014-12-8 16:02 编辑

file:///C:/Users/Administrator/Desktop 那我只能这样给你们看了  
并不是我没有使用到内部类

PHP8GO2}ZT~5YVQ4OA%GS$L.jpg (104.45 KB, 下载次数: 26)

PHP8GO2}ZT~5YVQ4OA%GS$L.jpg

作者: l763631191    时间: 2014-12-8 16:12
kenhe 发表于 2014-12-8 16:00
那我只能这样给你们看了  
并不是我没有使用到内部类

这不就OK了,不是已经提示你哪里错误了!
作者: kenhe    时间: 2014-12-8 16:14
这是从老师视频中剪辑的错误啊   我自己上面的代码没报错  可以运行




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