内部类

作者: jadefly | 来源:发表于2018-02-14 05:11 被阅读0次

简介

概念:可以将一个类的定义放在另一个类的内部定义,这就是内部类;

作用:1.完善多重继承(有时候程序设计中接口不能很好解决多重继承问题)

           2.高内聚(比如集合里一些node节点内部类的设计)

特性:1.内部类可以有多个实例,每个实例都有自己的状态信息,与其他外围对象的信息相互独立;

           2.在单个外部中,可以让多个内部类继承同一个类或实现同一个接口;

           3.内部类提供了更好的封装,除了外部类,其他类都不能访问;

分类:成员内部类、局部内部类、匿名内部类、静态内部类;


内部类创建与外部类引用

1.内部类是个编译时的概念,一旦编译成功后,它就与外围类属于两个完全不同的类(当然他们之间还是有联系的);

2.在编译成功后,会出现这样两个class文件:OuterClass.class和OuterClass$InnerClass.class;

内部类创建

成员内部类

简介:1.成员内部类是最普通的内部类,它是外部类的一个成员;

           2.成员内部类可以访问外部类的所有属性和方法,外部类访问内部类需通过内部类实例来访问;

           3.成员内部类中不能存在任何static的变量和方法;(非静态内部类都不能)

           4.成员内部类是依附于外部类的,所以只有先创建了外部类才能够创建内部类;

成员内部类

局部内部类

简介:1.嵌套在方法和作用域内的内部类;(if条件语句内这些都算是作用域)

           2.和成员内部类一样被编译,只是作用域发生了变化,只能在该方法或属性中被使用;

           3.一般用于解决复杂问题下需要类来辅助解决又不想该类公共可用;(即限制于局部使用)

局部内部类

匿名内部类

简介:1.没有类声明(Class+类名),直接使用new生成一个对象引用的类;

           2.匿名内部类为局部内部类,所以局部内部类的所有限制同样对匿名内部类生效;

           3.使用匿名内部类时,我们必须是继承一个类或者实现一个接口;(即使用场景)

           4.匿名内部类中无构造函数;(无类名自然无构造,若需初始化可使用构造代码块“{}”)

           5.当所在的方法的形参需要被内部类里面使用时,该形参必须为final;(编译时会创建形参的拷贝引用)

场景:在不想声明类,但又需要创建子类对象或实现类对象的时候;

优点:方便,不用起类名,使用简单;

缺陷:仅能被使用一次,如果内部类要多次使用,建议重新定义类;

(我的理解是:匿名内部类创建对象其实就是直接new出了没有类名的子类或实现类对象,而new的时候直接用父类的类名或接口名代替了子类或实现类的类名)

匿名内部类

静态内部类

简介:1.使用static修饰的内部类我们称之为静态内部类;(也叫嵌套内部类)

           2.静态内部类的创建不依赖于外部类;

           3.静态内部类不能使用外部类的非静态成员变量和方法;

注:非静态内部类在编译完成之后会隐含地保存着一个指向外部类的引用,静态内部类没有;(上述2,3的原因)

静态内部类与非静态内部类的区别

使用内部类实现多重继承

多重继承

相关文章

  • 内部类

    成员内部类 局部内部类(定义在方法内和定义在作用域内的类) 匿名内部类

  • Java 内部类

    内部类包括成员内部类、方法内部类、*静态内部类、匿名内部类*。 内部类的作用 由于内部类的实现和外部类没有关系,内...

  • Java学习——内部类

    内部类 一,成员内部类(包括静态内部类和非静态内部类) 非静态内部类可以直接访问外部类的成员,反之则不行 非静态内...

  • Java 内部类、静态内部类、方法内部类(未完待续)

    内部类 什么是内部类?内部类其实就是在一个类中创建的类。内部类有四种: 成员内部类 静态内部类 局部内部类 匿名内...

  • java 内部类

    一般有四种内部类的使用方式: 嵌套的内部类 方法内的内部类 静态内部类 匿名内部类 什么时候用内部类: 有时候明显...

  • 内部类

    内部类 1.可以访问访问其外部类所有属性和方法,无需创建外部类对象 2.必须创建内部类对象,否则无法从外部类访问内...

  • Java 中的方法内部类

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

  • java——内部类

    内部类 定义: 内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在的。内...

  • java之面向对象5

    方法内部类: 简而言之就是定义在外部类的方法内的类。 方法内部类只在该方法的内部可见,即只在该方法内可以使用。 方...

  • Java 内部类

    1. 内部类 概念:在一个类的内部再定义一个完整的类内部类分为 4 类:成员内部类、静态内部类、局部内部类、匿名内...

网友评论

      本文标题:内部类

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