Java中的内部类的种类及其使用


江户川米兰

Java中的内部类共分为四种:


静态内部类static inner class (also called nested class)

成员内部类memberinner class

局部内部类localinner class

匿名内部类anonymous inner class

静态内部类:

只可以访问外部类的静态成员和静态方法,包括了私有的静态成员和方法

静态内部类与静态内部方法相似,只能访问外部类的static成员,不能直接访问外部类的实例变量与实例方法,只有通过对象引用才能访问。

由于static内部类不具有任何对外部类实例的引用,因此static内部类中不能使用this关键字来访问外部类中的实例成员,但是可以访问外部类中的static成员

静态内部类的对象可以直接生成:Outer.Inner in = newOuter.Inner();

成员内部类:

成员内部类就像一个实例变量。

它可以访问它的外部类的所有成员变量和方法,不管是静态的还是非静态的都可以。

在外部类内部创建成员内部类的实例:

this.new Innerclass();

在外部类之外创建内部类的实例:

(new Outerclass()).new Innerclass();

在内部类里访问外部类的成员:

Outerclass.this.member

局部内部类:

局部内部类定义在方法中,比方法的范围还小。是内部类中最少用到的一种类型。

像局部变量一样,不能被public, protected, private和static修饰。

只能访问方法中定义的final类型的局部变量。

局部内部类在方法中定义,所以只能在方法中使用,即只能在方法当中生成局部内部类的实例并且调用其方法

static方法中定义的内部类可以访问外部类定义的static成员

匿名内部类:

匿名内部类就是没有名字的局部内部类,不使用关键字class, extends, implements,没有构造方法。

匿名内部类隐式地继承了一个父类或者实现了一个接口。

匿名内部类使用得比较多,通常是作为一个方法参数。

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

推荐阅读更多精彩内容

  • Java 内部类 分四种:成员内部类、局部内部类、静态内部类和匿名内部类。 1、成员内部类: 即作为外部类的一个成...
    ikaroskun阅读 1,252评论 0 13
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • Advanced Language Features 知识点:一. static修饰符 static修饰符可以用来...
    风景凉阅读 461评论 0 0
  • #内部类的定义 Java中允许在类中定义另一个类,这个定义在其他类内部的类就是内部类(嵌套类),包含内部类的类也被...
    Enigmaaaaa阅读 571评论 0 0
  • 1.来张帅帅的照片,哈哈 2.简单认识我:中文名王国胜,江湖人称Tom老师,现居北京。东北吉林人,88年,2月22...
    Tom教练阅读 950评论 2 7