美文网首页
Java基础06 内部类

Java基础06 内部类

作者: 小心陨石 | 来源:发表于2017-03-06 11:02 被阅读0次

内部类

在一个类的内部再定义一个类,如下: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());

相关文章

  • 回归Java基础,详解 Java 内部类

    回归Java基础,详解 Java 内部类

  • Java基础06 内部类

    内部类 在一个类的内部再定义一个类,如下:Inner是Outer的内部类。内部类可以访问外部类的所有成员变量和方法...

  • 在Alibaba广受喜爱的“Java突击宝典”简直太牛了

    0-1年:夯实基础 1.Java基础(Java异常分类及处理+Java反射+Java注解+Java内部类+Java...

  • Java 中的方法内部类

    Java 中的方法内部类 方法内部类就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内...

  • PHP转JAVA的记录

    Java 数组 内部类 内部类的创建:内部类可以对包内其他类隐藏想实现一个接口时, 不想新建类文件 内部类可以访问...

  • 2018-12-15

    Day08、java基础补充 内部类,代码块,静态导包1.内部类 1.1.内部类最大好处在于:能直接访问外部类的私...

  • java内部匿名类

    前言:java基础的编写类的时候,会觉得很匿名内部类很神秘.普通的java文件会被编译成class,那内部类和匿名...

  • 软帝学院:80道java基础部分面试题(一)

    11道java基础部分面试题 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相...

  • Java内部类

    Java内部类,简单来说就是将一个类定义在另一个类或者方法里面,主要分为成员内部类,局部内部类,匿名内部类和静态内...

  • [Java基础] 外部类, 内部类

    外部类 我们在创建类的时候,创建的 .java 文件(源文件)的文件名必须和我们要创建的类的名字一样。而这个我们创...

网友评论

      本文标题:Java基础06 内部类

      本文链接:https://www.haomeiwen.com/subject/grpdgttx.html