Java相关Java基础Java 专栏

Java基础知识7-内部类

2016-12-20  本文已影响36人  我相信你爱过gg
配图

什么是内部类

将一个类定义在另一个类的里面,对里面那个类就称为内部类(内置类,嵌套类)

访问特点

内部类可以直接访问外部类中的成员,包括私有成员.
而外部类要访问内部类中的成员必须要建立内部类的对象.

定义内部类

public class Outer {
    class Inner{

    }
}

Inner就是Outer的内部类

内部类编译后产生的文件
上图可以看出,编译后使用$符号进行标识.

注意:内部类的作用域被限制在包含它的类之中.

内部类与外部类互相访问

public class Outer {
    int num = 10;
    class Inner{
        public void show(){
            System.out.println("Outer Class Num:" + num);
        }
    }
    
    public void method(){
        //外部类访问内部类必须创建内部类对象
        Inner inner = new Inner();
        inner.show();
    }
}

当我们在主函数中调用的时候只需要创建Outer类的对象,并访问method方法.

Outer outer = new Outer();
outer.method();

除了上面这种方式,我们也可以直接实例化Outer类中的Inner内部类.

Outer.Inner inner = new Outer().new Inner();
inner.show();

静态内部类

public class Outer {
    static int num = 10;
    static class Inner{
        public static void show(){
            System.out.println("Outer Class Num:" + num);
        }
    }

    public void method(){
        Inner inner = new Inner();
        inner.show();
    }
}

注意:内部类为静态的,内部类的所有成员也必须为静态的.

上一篇下一篇

猜你喜欢

热点阅读