黑马程序员技术交流社区

标题: 请看一下,局部内部类这样能运行是怎么回事? [打印本页]

作者: jinsedeyuzhou    时间: 2015-5-22 18:10
标题: 请看一下,局部内部类这样能运行是怎么回事?
内部类定义在局部
1、不可以被成员修饰符修饰
2、可以直接访问外部类中的成员,因为还持有外部类中的引用。
    但是不可以访问它所在的局部中的变量,只能访问被final修饰的局部变量。
class Outer
{
    int x=3;
    void method()
    {
        int y=4;

        //new Inner().function(); 不可以
        class Inner
        {
            void function()
            {
                System.out.println(y);
                System.out.println("hello!"+y);
            }
            
        }
        new Inner().function();
    }
}
class  InnerDemo
{
    public static void main(String[] args)
    {
        new Outer().method();
    }
}
运行结果
4
hello!4


作者: 466273082    时间: 2015-5-22 20:14
在调用局部类内部类是先要给类初始化,才能调用,否则怎么调用呢,不知道是否还有不同的意见呢???
作者: jinsedeyuzhou    时间: 2015-5-22 22:26
466273082 发表于 2015-5-22 20:14
在调用局部类内部类是先要给类初始化,才能调用,否则怎么调用呢,不知道是否还有不同的意见呢??? ...

不懂,还请详细说明一下,(但是不可以访问它所在的局部中的变量,只能访问被final修饰的局部变量)我看java基础里面,,有这个程序,一模一样,我的可以运行,老师的不能运行,不知道是不是版本的问题,我用的是最新版本。
作者: shuadianqian8    时间: 2015-5-22 22:27
感觉很厉害的样子 不懂  
作者: zhangjnia    时间: 2015-5-22 22:28
好高深啊,学习了




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