内部类不仅经常出现在各种面试题中,还会在 Java 源码中频频出现,因此只有搞明白了 Java 内部类,才能搞定面试和看懂各种 Java 源码。

内部类

Java 内部类,分为以下四种:

  • 成员内部类
  • 静态成员内部类
  • 局部内部类
  • 匿名内部类

下面分别来看这些内部类的使用。

成员内部类

定义

在一个类中定义了另一个类,则将定义在类中的那个类称之为成员内部类。成员内部类也是最普通的内部类。

使用

成员内部类的使用示例如下:

class Outer {public Outer() {System.out.println("Outer Class.");}class Inner {public void sayHi() {System.out.println("Hi, Inner.");}}
}

其中 Inner 类则为成员内部类。
而成员内部类的创建和使用,请参考以下完整的示例代码:

class InnerTest {public static void main(String[] args) {Outer out = new Outer();// 创建成员内部类Outer.Inner inner = out.new Inner();inner.sayHi();}
}
class Outer {public Outer() {System.out.println(

第 2-2 课:各种内部类和枚举类 + 面试题相关推荐

  1. Java查漏补缺(08)关键字:static、单例设计模式、理解main方法、类的成员之四:代码块、final关键字、抽象类、接口、内部类、枚举类、注解、包装类

    Java查漏补缺(08)关键字:static.单例设计模式.理解main方法.类的成员之四:代码块.final关键字.抽象类.接口.内部类.枚举类.注解.包装类 本章专题与脉络 1. 关键字:stat ...

  2. 静态代码,内部类,枚举类练习

    1.静态代码块练习 1.在Frock类中声明私有的静态属性currentNum[int类型],初始值为100000,作为衣服出厂的序列号起始值. 2.声明公有的静态方法getNextNum;作为生成上 ...

  3. java内部枚举类_内部类和枚举类

    内部类: 内部类的定义 : 在一个类的内部又定义了一个类,里面的这个类就是内部类. 内部类可以定义在外部类的成员位置(与成员变量的位置相同)或局部位置(意思是,把类写在外部类的方法里面). 什么时候使 ...

  4. 内部类、枚举、注解,单例模式

    内部类.枚举.注解 内部类 概述 1.什么是内部类? 将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类. 2.为什么要声明内部类呢? 当一个事物的内部,还有一个部分需要一个完 ...

  5. 第七章、 面向对象基础--下(续) 内部类、枚举、注解

    文章目录 内容 学习目标 第七章 面向对象基础--下(续) 7.7 内部类 7.7.1 概述 7.7.1 非静态成员内部类 练习1:语法练习题 练习2:简单面试题 练习题3:高难面试题 7.7.2 静 ...

  6. 【java】兴唐第十九节课(内部类)

    内部类:在类的内部定义的类叫内部类 1.有名内部类: (1)实例化时必须先实例化外部对象,格式: 外部类.内部类 对象名 = 外部类对象名.new.内部类名(): 代码实现: //student类 p ...

  7. java枚举类的使用,以及通过枚举类作为对象内部类实现线程安全

    @Getter public enum MyEnum {UP(0, "在架"),DOWN(1, "下架");private Integer code;priva ...

  8. 枚举类能继承吗?能被继承吗?

    枚举的作用:限定"数据集"中的元素的个数(将类理解为一个集合).即限定枚举类对象的个数. 如果一个类的实例是有限且确定的,那么可以使用枚举类.比如:季节类,只有春夏秋冬四个实例. ...

  9. javese 5 中的枚举类及单例模式

    为什么80%的码农都做不了架构师?>>>    首先了解一下 javap 的用法,之后用到:javap -p (private)显示所有类和成员,javap -c  对代码进行反汇编 ...

最新文章

  1. 基于visual Studio2013解决面试题之0901奇偶站队
  2. 在Python中实现SVM分类
  3. 2022年全球及中国建筑隔震系统行业设施布局与十四五应用决策建议报告
  4. iptables 防火墙
  5. python 删除n天前文件_Linux 按时间批量删除文件命令(删除N天前文件)
  6. 【2018.5.19】模拟赛之四-ssl2435 航空公司【并查集,二分】
  7. 史上最详细的IDEA优雅整合Maven+SSM框架(详细思路+附带源码)
  8. 编写第二个页面:新闻阅读列表页面
  9. java 斗地主 案例
  10. Cairo-Dock 系统关机无效
  11. 【微信小程序】自定义导航栏
  12. Quora的技术探索
  13. kirin710f是什么处理器_hisiliconkirin710是什么处理器
  14. 区块链研习 | 什么是IFO
  15. WHUT C语言计费(网吧)管理系统
  16. GD32VF103_定时器中断
  17. 【Linux】工具(3)——gcc/g++
  18. 什么是私约、助记词和密码?
  19. Map 和 ForEach 的区别
  20. 4月全球“.网址”域名总量排行榜:ZDNS份额仍超99%

热门文章

  1. PACKING【二维01背包】
  2. 优化Android应用内存的若干方法
  3. 《全球互联网金融商业模式:格局与发展》——第3章,第3节互联网保险公司...
  4. 上手Caffe(一)
  5. Nginx主配置文件nginx.conf中文详解
  6. .Net判断一个对象是否为数值类型探讨总结(高营养含量,含最终代码及跑分)...
  7. python中isinstance(3、object)_python中isinstance函数判断各种类型的小细节
  8. Linux下redmine安装插件报错
  9. Oracle表的并行度
  10. ajax 传递arraybuffer,jQuery $ .ajax或$ .load是否允许responseType arrayBuffer?