[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 Web开发内幕——核心基础 深入体验Java Web开发内幕——核心基础
可以系统复习java基础知识,全方位了解并掌握java基础
《Java Web开发基础——从Servlet到JSP》源代码v1.0
JAVA基础上机题,按照类别整理,比较适合入门学习,内容包括上机题以及源代码答案,题量适中。
IBM java培训内部资料——Java 常用类讲解.pptx
java基础的知识点分类,总结,xmind的方式分享。包括集合,面向对象、多态、异常等的知识点
IBMjava培训内部资料——Java常用类讲解.pptx
Java面试题必备——Java基础知识部分汇总,面试者必备的哦
第五章.常用类.java.API概述——Date类,Calendar类,SimpleDateFormat类,Big
动力节点老杜Java基础入门学习教程分享——常用类
——————————————————————————————————————————————
java毕业设计——文本编辑器.zip java毕业设计——文本编辑器.zip java毕业设计——文本编辑器.zip java毕业设计——文本编辑器.zip java毕业设计——文本编辑器.zip java毕业设计——文本编辑器.zip java毕业设计...
Java ME实用详解——用Eclipse进行移动开发 给喜欢移动开发的朋友分享
java初学者适用——java实例大全 java初学者适用——java实例大全 java初学者适用——java实例大全
java基础软件开发,管家记账,实现了与MYSQL数据库的增删改查。
《Java语言程序设计——基础篇》是Java语言的经典教材,中文版分为《Java语言程序设计基础篇》和《Java语言程序设计进阶篇》主要介绍语法结构、面向对象程序设计基础知识到面向对象程序设计、图形用户界面设计、异常...
java新手超级入门——类结构篇.docx
JAVA技术应用基础——对象 模式 虚拟机