[SCJP Sun Certified Programmer for Java 6 Study Guide (Exam 310-065)] chapter8
一. 内部类
1. 1个"regular"内部类是定义在另1个类里面、且又在该类的任何方法或其他代码之外的类。
2. 1个内部类是它的外部类的成员,可以用任何可以用来修饰成员的访问限定修饰符,如 abstract 或 final。
3. 1个内部类实例可以访问它所在的外部类的所有成员,包括 private 成员。
4. 实例化内部类
1) 实例化1个内部类时,必须首先持有1个它所在的外部类的实例的引用。
2) 在1个内部类所在的外部类中实例化该内部类时,只需要使用内部类的名称即可,如:
MyInner mi = new MyInner();
3) 在1个内部类所在的外部类的外部实例化该内部类时,需要同时使用外部类、内部类的名称,如:
MyOuter mo = new MyOuter();
MyOuter.MyInner inner = mo.new MyInner();
5. 在1个内部类里,this 表示内部类本身,外部类名.this 表示外部类。
二. 方法中的内部类
1. 1个method-local内部类是定义在1个方法里面的。
2. 使用method-local内部类前,必须先实例化,创建实例的代码的位置是:该方法内、该内部类定义外。
3. method-local内部类里可以使用该方法所在的类的成员,但不能使用在该方法中定义的变量,除非这些变量是 final 的。
4. method-local内部类能使用的访问限制修饰符只有 abstract 或 final。
三. 匿名内部类
1. 匿名内部类是没有名字的,type must be either a subclass of the named type 或其实现的类的名字。
2. An anonymous inner class is always created as part of a statement; don't forget to close the statement after the class definition with a curly brace. This is a rare case in Java, a curly brace followed by a semicolon.
3. Because of polymorphism, the only methods you can call on an anonymous inner class reference are those defined in the reference variable class (or interface), even though the anonymous class is really a subclass or implementer of the reference variable type.
4. 1个匿名内部类可以扩展1个类或实现1个接口,但不能同时既扩展1个类又实现1个接口,也不能同时实现1个以上的接口。
5. An argument-defined inner class is declared, defined, and automatically instantiated as part of a method invocation. The key to remember is that the class is being defined within a method argument, so the syntax will end the class definition with a curly brace, followed by a closing parenthesis to end
the method call, followed by a semicolon to end the statement: });
四. 静态内嵌类
1. 静态内嵌类是使用 static 修饰符的内部类。
2. 1个静态内嵌类不是内部类,而是1个 top-level nested class。
3. 因为是静态的,所以它不能使用它所在的外部类的实例成员,实例化1个静态内嵌类时不需要持有1个它所在的外部类的实例的引用。
4. 实例化1个静态内嵌类既需要外部类名、也需要内部类名,如:BigOuter.Nested n = new BigOuter.Nested();
5. 1个静态内嵌类不能访问它所在的外部类的非静态成员,因为它不持有它所在的外部类的实例的引用,换句话说,它不具有1个 outer this reference.
分享到:
相关推荐
JAVA基础——Java内部类.ppt
JAVA基础上机题,按照类别整理,比较适合入门学习,内容包括上机题以及源代码答案,题量适中。
IBMjava培训内部资料——Java常用类讲解.pptx
java毕业设计——文本编辑器.zip java毕业设计——文本编辑器.zip java毕业设计——文本编辑器.zip java毕业设计——文本编辑器.zip java毕业设计——文本编辑器.zip java毕业设计——文本编辑器.zip java毕业设计...
【Java基础实战——Bank项目详解】 Java作为一款广泛使用的编程语言,其强大的功能和灵活性使其在软件开发领域占据着重要地位。"尚硅谷Java基础实战——Bank项目"是一个旨在帮助初学者深入理解Java编程概念并实践...
java新手超级入门——类结构篇.docx
JAVA技术应用基础——对象 模式 虚拟机
java毕业设计——java+毕业设计+扫雷(程序).zip java毕业设计——java+毕业设计+扫雷(程序).zip java毕业设计——java+毕业设计+扫雷(程序).zip java毕业设计——java+毕业设计+扫雷(程序).zip java毕业设计——java...
根据提供的信息,“Java语言程序设计——基础篇”这本书主要针对初学者介绍了Java编程的基础知识。虽然部分内容并未给出具体章节或细节信息,但基于书名、描述及常见的Java基础教程内容,我们可以推测书中涵盖的主要...
《Java语言程序设计——基础篇》是Java语言的经典教材,中文版分为《Java语言程序设计基础篇》和《Java语言程序设计进阶篇》主要介绍语法结构、面向对象程序设计基础知识到面向对象程序设计、图形用户界面设计、异常...
java毕业设计——基于java的五子棋游戏的设计与开发(源代码+论文).zip java毕业设计——基于java的五子棋游戏的设计与开发(源代码+论文).zip java毕业设计——基于java的五子棋游戏的设计与开发(源代码+论文).zip ...
java毕业设计——java文件传输系统的设计与实现(论文+源代码).zip java毕业设计——java文件传输系统的设计与实现(论文+源代码).zip java毕业设计——java文件传输系统的设计与实现(论文+源代码).zip java毕业设计...
java毕业设计——基于java的动力节点系统的设计与实现(源码+数据库).zip java毕业设计——基于java的动力节点系统的设计与实现(源码+数据库).zip java毕业设计——基于java的动力节点系统的设计与实现(源码+数据库)....
java毕业设计——基于java的安全电子商务系统的的设计与实现.zip java毕业设计——基于java的安全电子商务系统的的设计与实现.zip java毕业设计——基于java的安全电子商务系统的的设计与实现.zip java毕业设计——...
java毕业设计——java泡泡堂网络游戏的设计与实现(源代码+论文).zip java毕业设计——java泡泡堂网络游戏的设计与实现(源代码+论文).zip java毕业设计——java泡泡堂网络游戏的设计与实现(源代码+论文).zip java毕业...
java毕业设计——基于java的远程视频会议系统的设计与实现(系统+论文).zip java毕业设计——基于java的远程视频会议系统的设计与实现(系统+论文).zip java毕业设计——基于java的远程视频会议系统的设计与实现(系统+...
java设计课程设计——高校选课管理系统.zipjava设计课程设计——高校选课管理系统.zipjava设计课程设计——高校选课管理系统.zipjava设计课程设计——高校选课管理系统.zipjava设计课程设计——高校选课管理系统.zip...
java毕业设计——商品供应管理系统的设计与实现(论文+答辩PPT+源代码+数据库).zip java毕业设计——商品供应管理系统的设计与实现(论文+答辩PPT+源代码+数据库).zip java毕业设计——商品供应管理系统的设计与实现...
java毕业设计——java银行帐目管理系统的设计与实现(源代码+论文).zip java毕业设计——java银行帐目管理系统的设计与实现(源代码+论文).zip java毕业设计——java银行帐目管理系统的设计与实现(源代码+论文).zip ...
面试题汇集,JAVA开发找工作时,尤其是实干派,明明都会做,但是面试总是不过,看java面试宝典,汇集现在java基础部分的面试题,可以高效的回顾