一、内部类

  内部类(Inner Class)就是定义在一个类里面的类。与之对应,包含内部类的类被称为外部类。内部类可以用private修饰。

1、为什么要定义内部类?或者内部类的作用是什么?

  • 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类。
  • 内部类的方法可以直接访问外部类的所有数据,包括私有的数据。
  • 内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便。

2、内部类可分为几种?

成员内部类;静态内部类;方法内部类;匿名内部类。

3、成员内部类

  内部类中最常见的就是成员内部类,也称为普通内部类。我们来看如下代码:

 1 // 外部类Outer
2 public class Outer {
3 // 外部类的私有属性
4 private int a = 99;
5 private int b = 666;
6
7 // 内部类Inner
8 public class Inner {
9 // 内部类的成员属性
10 private int a = 199;
11
12 public void test() {
13 int a = 299;
14 System.out.println("访问方法的局部变量a:" + a);
15 System.out.println("访问内部类中的a:" + this.a);
16 System.out.println("访问外部类中的a:" + Outer.this.a);
17 System.out.println("不重名的变量b:" + b);
18 }
19 }
20
21 // 测试成员内部类
22 public static void main(String[] args) {
23 Outer o = new Outer();
24 Inner i = o.new Inner();
25 i.test();
26 }
27 }
28
29 // 结果
30 访问方法的局部变量a:299
31 访问内部类中的a:199
32 访问外部类中的a:99
33 不重名的变量b:666

4、静态内部类

  静态内部类是static修饰的内部类。我们来看如下代码:

5、方法内部类

  方法内部类就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内可以使用。

方法内部类 

6、匿名内部类

  匿名内部类就是一个实现了某个接口的类。而该类没有名字,在使用时直接 new 接口名。

https://www.cnblogs.com/acelin/p/15029994.html

匿名内部类

Java基础(二)——内部类的更多相关文章

  1. Java面试题总结之Java基础(二)

    Java面试题总结之Java基础(二) 1.写clone()方法时,通常都有一行代码,是什么? 答:super.clone(),他负责产生正确大小的空间,并逐位复制. 2.GC 是什么? 为什么要有G ...

  2. Java入土--Java基础(二)

    Java基础(二) 接上一讲,我们接着来聊聊Java的一些基础知识,下一讲就会进行流程的控制. 类型转换 首先呢,是类型的转换,接上一个内容的数据类型,类型转换就是数据类型更进一步的应用. 由于Jav ...

  3. [ 转载 ] Java基础二

    前言 关于赢在面试的Java题系列基本收集整理完成了,所有题目都是经过精心挑选的,很基础又考验求职者的基本功,应该说被面试到的几率很大.这里整理挑选出来供大家面试前拿来看一看,所有题目整理自网络,有一 ...

  4. java基础之 内部类

    Java中的内部类共分为四种: 静态内部类static inner class (also called nested class) 成员内部类member inner class 局部内部类loca ...

  5. Java基础(53):内部类(转)

    java中的内部类总结 内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类 如同一个人是由大脑.肢体.器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行 ...

  6. java基础(二)-----java的三大特性之继承

    在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...

  7. Java基础(五)--内部类

    内部类简单来说就是把一个类的定义放到另一个类的定义内部 内部类分为:成员内部类.局部内部类.匿名内部类.静态内部类 成员内部类:最常见的内部类 public class Outter { privat ...

  8. Java基础(二) 基本类型数据类型、包装类及自动拆装箱

    我们知道基本数据类型包括byte, short, int, long, float, double, char, boolean,对应的包装类分别是Byte, Short, Integer, Long ...

  9. java基础之 内部类 & 嵌套类

    参考文档: 内部类的应用场景 http://blog.csdn.net/hivon/article/details/606312 http://wwty.iteye.com/blog/338628 定 ...

  10. java基础(二):java内部类

    内部类像寄生虫一样生存在其他类[外部类]的内部.定义在类的内部的类叫内部类,它缩小了可见性.根据内部类定义结构的不同,可以把内部类分为 成员内部类和局部内部类.成员内部类定义的地方和外部类的成员变量和 ...

随机推荐

  1. empty(), is_null(), isset()真值表(区别)

  2. 大数据学习(10)—— Hive进阶

    前面提到了Hive的知识点非常零散,我不知道该怎么把这些知识点分类,跟SQL关系没那么大的就放在这一篇吧. Hive Serde 参考Hive Serde Serde是啥 Serde是序列化和反序列化 ...

  3. Ghost ,博客系统代名词

    Ghost 博客系统是前 WordPress 的一些优秀员工的创业项目.项目仍然采用 100% 开源,加上官方的收费托管的商业模式,目前已经发展成为一个非常的博客系统. 为了更好的方便读者理解 Gho ...

  4. D. 旅游景点 Tourist Attractions 状压DP

    题目描述 FGD想从成都去上海旅游.在旅途中他希望经过一些城市并在那里欣赏风景,品尝风味小吃或者做其他的有趣的事情.经过这些城市的顺序不是完全随意的,比如说FGD 不希望在刚吃过一顿大餐之后立刻去下一 ...

  5. skywalking简介

    监控的分类 Logging,Metrics和Tracing Logging用于记录离散的事件例如,应用程序的调试信息或错误信息,Logging是我们诊断问题的依据. Metrics用于记录可聚合的数据 ...

  6. 浙大二院姚克团队发现新的NLRP3炎症小体抑制剂,有望用于治疗炎症疾病

    期刊:Clinical and Translational Medicine 发表时间:2021年7月19日 影响因子:11.492 角膜炎是一种眼科常见疾病,也是我国主要致盲眼病之一,其特征是炎性细 ...

  7. 如何让win10开机默认开启小键盘?

    如何让win10开机默认开启小键盘? windows10默认是关闭小键盘的.每次输入开机密码的时候都需要按一下小键盘开启键(numlock),才能按数字键 一.运行注册表编辑器,修改InitialKe ...

  8. Linux线程简单介绍

    1.进程与线程 2.使用线程的理由 3.有关线程操作的函数 4.线程之间的互斥 5.线程之间的同步 6.试题最终代码 1.进程与线程 进程是程序执行时的一个实例,即它是程序已经执行到何种程度的数据结构 ...

  9. 《微服务架构设计模式》读书笔记 | 第4章 使用Saga管理事务

    目录 前言 1. 微服务架构下的事务管理 1.1 分布式事务的挑战 1.2 一个Saga的示例 1.3 Saga使用补偿事务来回滚所作出的改变 2. Saga的协调模式 2.1 两种Saga协调模式 ...

  10. Shell-11-read命令

    read read命令从标准输入读取,并且把输入的内容赋值给变量 参数 示例 1 2 3 while 4 分别赋值变量