Java基础知识7-内部类

配图

什么是内部类

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

访问特点

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

定义内部类

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();
    }
}

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java 内部类 分四种:成员内部类、局部内部类、静态内部类和匿名内部类。 1、成员内部类: 即作为外部类的一个成...
    ikaroskun阅读 1,246评论 0 13
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,686评论 0 11
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?答:可以有多个类,但只能有一个publ...
    岳小川阅读 958评论 0 2
  • 这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱。只要能够搞明白这个系列的绝大多数题目,在面试...
    独念白阅读 350评论 0 3