A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

内部类定义在局部
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

4 个回复

倒序浏览
在调用局部类内部类是先要给类初始化,才能调用,否则怎么调用呢,不知道是否还有不同的意见呢???
回复 使用道具 举报
466273082 发表于 2015-5-22 20:14
在调用局部类内部类是先要给类初始化,才能调用,否则怎么调用呢,不知道是否还有不同的意见呢??? ...

不懂,还请详细说明一下,(但是不可以访问它所在的局部中的变量,只能访问被final修饰的局部变量)我看java基础里面,,有这个程序,一模一样,我的可以运行,老师的不能运行,不知道是不是版本的问题,我用的是最新版本。
回复 使用道具 举报
感觉很厉害的样子 不懂  
回复 使用道具 举报
好高深啊,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马