Java 基础知识-内部类

内部类作用:

1.实现数据的隐藏,实现了封装,类可以定义为private或者protected, 外部不能访问。

2.如果两个类之间的耦合性特别强,可以使用内部类,增强类之间的使用关系

3.内部类可以使用外部类的成员变量和成员方法等所有元素,包括私有的

4.内部类创建方法 ObjectA A = new ObjectA(); ObjectB B = A.new ObjectB();

5. 内部类实现了代码的简洁性

6.可以实现多重继承,弥补了JAVA语言多继承缺点,这个特点非常重要,个人认为它是内部类存在的最大理由之一。正是由于他的存在使得Java的继承机制更加完善。大家都知道Java只能继承一个类,它的多重继承在我们没有学习内部类之前是用接口来实现的。但使用接口有时候有很多不方便的地方。比如我们实现一个接口就必须实现它里面的所有方法。而有了内部类就不一样了。它可以使我们的类继承多个具体类或抽象类。大家看下面的例子。

7 避免修改接口而实现同一个类中两种同名方法的调用。

8.内部类是延时加载的,只有内部类被调用时候才会加载;

静态内部类与内部类区别

1. 静态内部类不持有外部类的引用,不能访问外部类的元素

2.创建方法不同 ObjectB B = new ObjectA.ObjectB();

3.另外因为静态嵌套类是依附于外部类而非外部类对象的,所以不同的外部类对象共享一个静态嵌套类,这一点与内部类不同,可以用来包装方法,实现工厂模式。

4.生成一个静态内部类不需要外部类成员:这是静态内部类和成员内部类的区别。静态内部类的对象可以直接生成:Outer.Inner in = new Outer.Inner();而不需要通过生成外部类对象来生成。这样实际上使静态内部类成为了一个顶级类(正常情况下,你不能在接口内部放置任何代码,但嵌套类可以作为接口的一部分,因为它是static 的。只是将嵌套类置于接口的命名空间内,这并不违反接口的规则)

public interface Outer {public static final class inner{        void dosth() {System.out.println("I'm a inner class in interface");}}}

5.静态内部类,也是延时加载的只有静态方法被调用时候才会加载此类;

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

推荐阅读更多精彩内容

  • Java 内部类 分四种:成员内部类、局部内部类、静态内部类和匿名内部类。 1、成员内部类: 即作为外部类的一个成...
    ikaroskun阅读 1,261评论 0 13
  • 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?答:可以有多个类,但只能有一个publ...
    岳小川阅读 973评论 0 2
  • 注意注意!!!前排提示!!!本篇文章过长,最好收藏下来慢慢看,如果你之前对内部类不是很熟悉,一次性看完,大概你会懵...
    Sharember阅读 858评论 0 10
  • 一:java概述: 1,JDK:Java Development Kit,java的开发和运行环境,java的开发...
    慕容小伟阅读 1,851评论 0 10
  • 模块化:将各种负责处理不同功能的代码封装在不同的类型中,将各种相似功能的类型封装在py模块中,通过模块和模块之间的...
    依旧丶森阅读 721评论 0 0