1.内部类
(1) “常规”内部类在另一个类的波形括号内声明,但位于任何方法或其它代码块之外
(2) 内部类是封装类(外部类)一个完整的成员,因此,它能够使用访问修饰符标识,也能使用abstract或final修饰符标识(但二者不能同时使用,abstract一定要子类化,而final不能被子类化)
(3) 内部类实例与封装类实例共享一种特殊关系。这种关系为内部类提供对外部类所有成员的访问,包括那些标识为private的成员
(4) 为了实例化一个内部类,必须有一个对外部类实例的引用
(5) 封装类内的代码只能通过内部类名称实例化内部类:MyInner mi = new MyInner();
(6) 位于封装类的实力方法之外的代码,只能通过使用内部类名称和外部类名称,以及对外部类的引用来实例化内部类,如:MyOuter mo=new MyOuter(); MyOuter.MyInner inner = mo.new MyInner();
(7) 在内部类的代码中,关键字this拥有对该内部类实例的引用。为了引用外部this(也就是与这个内部类实例相关的外部类实例),应该在关键字this之前加上外部类名称,如:MyOuter.this;
2.局部方法内部类
(1) 局部方法内部类在封装类的方法内定义
(2) 为了使用内部类,必须它对实例化,该实例化必须发生在同一个方法内,但位于该类的定义代码之后
(3) 局部方法内部类不能使用在该方法(含参数)内声明的变量,除非变量被标识为final
(4) 能够应用于局部方法内部类的修饰符只有abstract和final(不能同时用)
3.匿名内部类
(1) 匿名内部类没有名称,它的类型必须是一个命名类型的子类,或是命名接口的实现器
(2) 匿名内部类总是作为一条语句的一部分创建的,因此不要忘记在该类定义之后用波形括号结束该语句。
(3) 由于多态性,在匿名内部类引用上能够调用的方法只有那些被定义在引用变量类/接口中的方法,即使该匿名类确实是引用变量类型的子类/实现器
(4) 匿名内部类能够扩展一个子类或实现一个接口。与非匿名类(内部类或其它类)不同,匿名内部类不能同时做这两件事。即:它不能同时扩展一个类和实现一个接口,也不能实现多个接口
(5) 变元内声明的内部类作为方法调用的一部分被声明、定义并自动实例化。重点:该类定义在方法变元内,故将用波形括号结束类定义,后跟一个用于结束方法调用的右圆括号,再跟一个用于结束语句的分号。--》});
4.静态嵌套类
(1) 静态嵌套类是用static修饰符标识的内部类
(2) 静态嵌套类不是内部类(除非用static修饰符标识),它是一个顶级嵌套类
(3) 由于嵌套类是静态的,故它不与外部类实例共享任何特殊关系
(4) 实例化静态嵌套类需要使用外部类名称和嵌套类名称,如:BigOuter.Nested n = new BigOuter.Nested();
(5) 静态嵌套类不能访问外部类的非静态成员,因为它没有对外部实例的隐含引用(即:嵌套类实例没有得到外部this引用)
分享到:
相关推荐
为了遍历 ListArray 中的所有元素,我们可以定义一个内部类,实现之前定义的 Foreach 接口,这个内部类将作为 ListArray 的迭代器。 ```java public class ListArray implements Foreach { private int capacity; ...
本章我们将深入探讨内部类的种类、用法以及其优势。 1. **成员内部类**: - 成员内部类就像普通类的成员变量一样,可以是静态或非静态的。静态内部类与普通的静态成员类似,不依赖于外部类的实例,而非静态内部类...
### Java语言基础入门教程:内部类与异常处理 #### 一、内部类概述 内部类是在另一个类的内部定义的类。它具有多种类型,并且能够访问外部类的私有成员,这使得内部类在实现特定功能时非常灵活且强大。 #### 二、...
内部控制是企业管理和运营中不可或缺的部分,旨在确保企业目标的实现,提高运营效率,保证财务报告的可靠性,保护资产安全,以及遵守相关法律法规。根据21世纪会计学系列教材,内部控制主要由五个要素构成: 1. **...
第8章 内部类和异常处理 共18页.pptx 第8章 生成对象 共18页.pptx 第9章 类的高级特性 共12页.pptx 第9章 深度了解变量和方法 共13页.pptx 第10章 理解包 共18页.pptx 第11章 继承、多态和接口 共21页.pptx 第12章 ...
第8章 内部类和异常处理 共18页.pptx 第8章 生成对象 共18页.pptx 第9章 类的高级特性 共12页.pptx 第9章 深度了解变量和方法 共13页.pptx 第10章 理解包 共18页.pptx 第11章 继承、多态和接口 共21页.pptx 第12章 ...
在本资料包“Java第八章参考资料”中,我们聚焦于Java编程语言的深入学习,特别是第八章的内容。尽管描述提到的是“accc7.0第一章到第七章部分代码”,但我们的重点将放在Java语言的核心概念以及如何在实际项目中...
Java 教程第 8 章常用的系统类及内部类 在 Java 编程语言中,有一些常用的系统类和内部类,了解这些类的使用和特点是非常重要的。本章节将对 Object 类、System 类、Math 类、基本数据类型包装类、Date 类、...
财务管理第八章内部长期投资.pptx
财务管理第八章内部会计控制.pptx
"数据结构第八章内部排序" 数据结构第八章内部排序是指在内存中对数据进行排序的算法和技术。本章主要介绍了内部排序的评价指标、稳定性、关键字相同的元素经过排序后相对顺序是否发生改变等概念,并对插入排序、...
共分16章:第1章 初识Java,第2章 初识对象和简单,第3章运算符、表达式和语句,第4章类与对象,第5章子类与继承,第6章,第7章 数组与枚举,第8章 内部类与异常,第9章 常用实用类,第10章 输入、输出流等
财务管理第8章内部长期投资.pptx
《财务管理第八章内部控制》PPT文档主要围绕企业内部控制的重要性、失败案例分析以及内控的构成要素展开。 首先,内部控制的关注源自实际案例,如郑百文和巴林银行的失败经验。郑百文曾是中国商业批发行业的领军...
【财务管理第八章内部控制及其测试与评价】主要涵盖了内部控制的基本理论及其在审计实践中的应用。内部控制是企业管理和审计工作的重要组成部分,旨在确保企业运营的有效性、财务信息的准确性以及资产的安全。 内部...
2. **内部类**:Java允许在类内部定义其他类,包括成员内部类、局部内部类、匿名内部类和静态内部类。这种设计允许更紧密的封装和更复杂的逻辑结构,例如事件监听器的实现。 3. **枚举(Enum)**:枚举是Java中的一...
Java 8引入的Lambda表达式可以看作是匿名内部类的一种简化形式,特别是在处理函数式接口时。 通过合理利用内部类,开发者可以编写出更加模块化、可读性强的代码,提高代码复用性,并且能够更有效地管理对象之间的...
【财务管理第八章内部控制制度的设计】 内部控制制度是企业管理的重要组成部分,特别是在财务管理领域,它为企业运营提供了稳定性和安全性。内部控制制度的含义不仅限于确保资产安全和会计信息的真实性,它还涉及...
《财务管理第八章 内部长期投资》主要涵盖了企业内部对固定资产和无形资产的长期投资决策。以下是本章涉及的关键知识点: 1. **固定资产投资概述**: - **定义**:固定资产是使用年限超过一年,单位价值达到规定...