[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的基础知识,确保他们能够全方位地掌握这一强大的编程工具。下面将详细阐述Java的基础知识点。 1. **Java简介** - Java是由Sun ...
java基础的知识点分类,总结,xmind的方式分享。包括集合,面向对象、多态、异常等的知识点
IBM java培训内部资料——Java 常用类讲解.pptx
Java面试题必备——Java基础知识部分汇总 本文总结了Java基础知识部分的重要知识点,涵盖了Java面试中常见的问题,包括作用域、String类、int和Integer的区别、String和StringBuffer的区别、运行时异常与一般异常的...
《KJava深入浅出——Java在PDA上的程序设计》一书主要涵盖了Java技术在掌上设备(PDA)上的应用开发,旨在帮助开发者理解和掌握KJava编程的基础知识和实战技巧。KJava是Java Micro Edition (Java ME)的一个分支,...
java毕业设计——文本编辑器.zip java毕业设计——文本编辑器.zip java毕业设计——文本编辑器.zip java毕业设计——文本编辑器.zip java毕业设计——文本编辑器.zip java毕业设计——文本编辑器.zip java毕业设计...
【Java基础实战——Bank项目详解】 Java作为一款广泛使用的编程语言,其强大的功能和灵活性使其在软件开发领域占据着重要地位。"尚硅谷Java基础实战——Bank项目"是一个旨在帮助初学者深入理解Java编程概念并实践...
《Java语言程序设计——基础篇》是Java语言的经典教材,中文版分为《Java语言程序设计基础篇》和《Java语言程序设计进阶篇》主要介绍语法结构、面向对象程序设计基础知识到面向对象程序设计、图形用户界面设计、异常...
1. **JAVA基础**:这部分包括JAVA语法的基础知识,如数据类型(基本类型与引用类型)、变量、运算符、流程控制(条件语句、循环语句)、方法的定义和调用等。此外,还会涉及类和对象的概念,这是面向对象编程的核心...
java新手超级入门——类结构篇.docx
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的动力节点系统的设计与实现(源码+数据库)....
java设计课程设计——高校选课管理系统.zipjava设计课程设计——高校选课管理系统.zipjava设计课程设计——高校选课管理系统.zipjava设计课程设计——高校选课管理系统.zipjava设计课程设计——高校选课管理系统.zip...
java毕业设计——商品供应管理系统的设计与实现(论文+答辩PPT+源代码+数据库).zip java毕业设计——商品供应管理系统的设计与实现(论文+答辩PPT+源代码+数据库).zip java毕业设计——商品供应管理系统的设计与实现...
面试题汇集,JAVA开发找工作时,尤其是实干派,明明都会做,但是面试总是不过,看java面试宝典,汇集现在java基础部分的面试题,可以高效的回顾
适合复习java进阶