什么是内部类?

1.内部类也是一个类;

2.内部类位于其他类声明内部。

内部类的常见类型

1.成员内部类

2.局部内部类

3.匿名内部类

4.静态内部类

简单示例

/*** 外部类* */
public class OuterClass {private String s = "private String from OuterClass";private String fs = "final String from OuterClass";/*** 成员内部类,字面上理解就是外部类的一部分。类似外部类的属性或方法* 外部类的属性和方法对于内部类都是可以访问的,包括private属性方法* 调用方法 外部类名。this。属性或方法*/class PartnerClass{public void print(){System.out.println("this comes from PartnerClass and can get "+OuterClass.this.s);OuterClass.this.print();}}private void print(){System.out.println("private method form OuterClass");/*** 局部内部类只可以在一定范围内被访问*/class Part{void print(){System.out.println("this comes from part class and can get "+ OuterClass.this.s);}}new Part().print();}interface Anonymous{void print();}/*** 匿名内部类多为已经定义好的接口或抽象类,在需要使用的地方采取进行具体实现* 同成员内部类类似*/Anonymous anyms = new Anonymous() {@Overridepublic void print() {System.out.println("this comes from a anonymous class and can get "+OuterClass.this.fs);OuterClass.this.print();}};/*** 静态内部类只能访问外部类的静态属性和方法* 静态内部类可以通过new OuterClass。StaticClass()的方式创建静态内部类对象*/private static class StaticClass implements Anonymous{@Overridepublic void print() {System.out.println("this comes from static inner class");}}public static void main(String[] args) {OuterClass outer = new OuterClass();/*** 外部类可以创建获取内部类对象* 创建方法为  new 外部类().new 内部类()*/outer.new PartnerClass().print();outer.anyms.print();StaticClass sc = new OuterClass.StaticClass();sc.print();}}

内部类有什么用处?

1.隐藏类名和具体实现细节

2.内部类可以访问外部类的属性和方法

3.内部类可以用来实现闭包和回调

4.内部类可以用来实现多重继承

5.封装数据进行传值

个人内部类使用经验不多,以后有用到会补充进来

转载于:https://www.cnblogs.com/ssp2110/p/3797681.html

java基础 内部类详解相关推荐

  1. Java基础---内部类详解

    内部类 概念:定义在类内部的类,可以在类中方法外,也可以在类中方法中根据定义位置的不同,分为成员内部类和局部内部类成员内部类又划分为: 普通的成员内部类 静态的成员内部类 私有的成员内部类另外还有匿名 ...

  2. java基础(十三)-----详解内部类——Java高级开发必须懂的

    java基础(十三)-----详解内部类--Java高级开发必须懂的 目录 为什么要使用内部类 内部类基础 静态内部类 成员内部类 成员内部类的对象创建 继承成员内部类 局部内部类 推荐博客 匿名内部 ...

  3. Java基础——匿名内部类详解及举例

    Java基础--匿名内部类详解及举例 说明:定义在外部类的局部位置,比如方法中,并且没有类名 匿名内部类的使用 匿名内部类的基本语法 new 类或接口(参数列表){类体 }; 用途:有些时候为了简化开 ...

  4. Java修炼——内部类详解

    内部类详解 定义:将一个类定义在另一个类的内部,该类就称为内部类 类中定义的内部类特点: 内部类作为外部类的成员,可以直接访问外部类的成员 (包括 private 成员),反之则不行. 内部类做为外部 ...

  5. Java基础:详解static关键字与类加载顺序

    1. 前言 前文中说到了static关键字,在Java中这是一个很重要的关键字,它有很多的用法,并且在某些特定的情况下使用可以优化程序的性能.本文学习static关键字的应用场景.在这之前了解变量的类 ...

  6. JAVA基础——异常详解

    阅读目录 一.异常简介 二.try-catch-finally语句 三.throw和throws关键字 四.java中的异常链 五.结束语 JAVA异常与异常处理详解 回到顶部 一.异常简介 什么是异 ...

  7. Java基础知识详解

    一.基础 1.Java都有哪些数据类型?基本数据类型有哪些?分别占多少字节?多少位?引用数据类型又有哪些? Java的数据类型:基本数据类型和引用数据类型 基本数据类型:byte(1),short(2 ...

  8. Java的内部类详解(成员内部类、静态内部类、局部内部类、匿名内部类)

    Java知识点总结:想看的可以从这里进入 目录 2.2.4. 内部类 1.成员内部类 2.静态内部类 3.局部内部类 4.匿名内部类 2.2.4. 内部类 一个类定义在另一个类内,那么这个类就是一个内 ...

  9. Java基础--awt详解以及简单应用

    GUI 图形用户界面 CLI 命令行用户接口 Java为GUI提供的对象存在java.Awt和Javax.Swing两个包中. Java当中如何完成图形化界面的制作呢? AWT:abstract Wi ...

  10. Java基础——IO详解

    文章目录 前言 一.IO概述 1.IO体系图 2.IO概念及基本操作 二.IO--字节流 InputStream(字节输入流) 1.FileInputStream 2.BuffedInputStrea ...

最新文章

  1. JVM结构、GC工作机制详解
  2. Codeforces 1336E Chiori and Doll Picking (子集和变换、线性基、阈值算法、状压 DP、组合计数)...
  3. ajax长链接--拉实现
  4. 雷军:互联网思维本质上就是群众路线
  5. vs设计窗口不见了_龙猫腕表评测:VS沛纳海320V2版本
  6. 1、数列求值 - 2019年第十届蓝桥杯大赛软件类省赛
  7. 使用AD14创建异形PCB板
  8. 目前比较流行的网站开发框架有哪些?
  9. 软考信息系统项目管理师考试心得-备考
  10. 主机访问虚拟机Web服务器
  11. linux 安装mantis,在Ubuntu 18.04系统上安装Mantis Bug Tracker[MantisBT]
  12. HTTP和HTTPS、GET和POST
  13. 安卓手机软件开发_这款安卓神器,让你下片更轻松!千万别滥用
  14. 非常详细的FastDFS整合springBoot教程-带文件下载地址
  15. 点菜系统中的命令模式
  16. python摄像头动作捕捉_新版的IphoneX是一台动作捕捉设备,你知道怎么玩吗
  17. 使用老毛桃U盘给联想G400装系统
  18. 项目管理工程师岗位职责
  19. Excel怎么转换为Word文档?分享一种快速转换方法
  20. 【spine】快速入门

热门文章

  1. 基于Pre-trained模型加速模型学习的6点建议
  2. 分类问题的评估指标一览
  3. bert性能优化之——用另一种方式整合多头注意力
  4. nlp项目:搭建一个简单的问答系统
  5. numpy - np.asarray
  6. pandas - AttributeError: Series object has no attribute reshape
  7. Linux查看、处理文件方法
  8. C/C++中存储区域
  9. python之django中models学习总结
  10. Want VS Needs,产品经理基于场景的需求挖掘