Java基础06 内部类

内部类

在一个类的内部再定义一个类,如下:Inner是Outer的内部类。内部类可以访问外部类的所有成员变量和方法,利用这个特性我们可以实现多继承。

  public class Outer {
      public class Inner {
   
       }
  }

一、成员内部类:

跟类的成员变量和方法同级的内部类;成员内部的权限修饰词跟类的成员变量及方法的权限修饰词的作用是一致的,成员内部类 一个特殊的成员变量,可以理解为一个class类型的成员变量

二、静态内部类:

静态内部类跟成员变量类似,有静态与非静态之分;静态内部类只能访问外部类的静态数据,非静态内部类不能在类中定义静态数据;非静态内部类不能在类中定义静态变量,静态方法。

  //静态内部类:只能访问外部的静态成员变量,
public static class StaticInner{
    public void input(){
        System.out.println(staticNumber);
    }
}
public void foo(){
    System.out.println("out foo");
}
public void out(){
    System.out.println("---out");
    foo();
}

三、局部内部类:

不能用权限修饰符;定义在类的方法体内。作用:多个类协同完成某些功能,并将这些类的细节隐藏起来

四、匿名内部类:

与匿名对象类似,没有名字的类就是匿名内部类,匿名内部类相当于对类的拓展。

内部类的使用:

   //成员内部类的使用
    Outer outer1 = new Outer();
    Outer.Inner inner = outer1.new Inner();
    inner.input("hehe");

    //静态内部类的使用
    Outer.StaticInner inner1 = new Outer.StaticInner();
    inner1.input();
    System.out.println(outer.getClass());
   
   //匿名内部类
    Outer object = new Outer(){
        public void foo(){
            System.out.println("foo");
        }
    };
    object.output();
    System.out.println(object.getClass());
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 7,645评论 0 11
  • Java 内部类 分四种:成员内部类、局部内部类、静态内部类和匿名内部类。 1、成员内部类: 即作为外部类的一个成...
    ikaroskun阅读 5,060评论 0 13
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,676评论 18 399
  • Win7下如何打开DOS控制台? a:开始--所有程序--附件--命令提示符 b:开始--搜索程序和文件--cmd...
    逍遥叹6阅读 5,542评论 4 12
  • 一、继承 当两个事物之间存在一定的所属关系,即就像孩子从父母那里得到遗传基因一样,当然,java要遗传的更完美,这...
    玉圣阅读 4,699评论 0 2

友情链接更多精彩内容