一、嵌套类(Nested Class)分为:内部类(Inner Class)、静态嵌套类(Static Nested Class)
二、写法:
class OutClass{
static class StaticNestedClass{
...
}
class InnerClass{
...
}
}
三、为什么要用嵌套类:
1、当仅希望在某个类中使用一个类时,用嵌套类的写法,就起到封装的作用。
2、提高代码可读性,与可维护性。
四、用例:
public class DataStructure {
private final static int SIZE = 15;
private int[] arrayOfInts = new int[SIZE];
public DataStructure() {
for (int i = 0; i < SIZE; i++) {
arrayOfInts[i] = i;
}
}
public void printEven() {
InnerEvenIterator iterator = new InnerEvenIterator();//外部类中直接调用内部类
while (iterator.hasNext()) {
System.out.println(iterator.getNext() + " ");
}
}
private class InnerEvenIterator {//非静态内部类
private int next = 1;
public boolean hasNext() {
return (next <= SIZE - 1);
}
public int getNext() {
int retValue = arrayOfInts[next];//直接访问外部类变量
next += 2;
return retValue;
}
}
private void outPrivateFunction(){}
private static void staticOutPrivateFunction(){}
private static int i;
static class NestedClass//静态嵌套类
{
NestedClass(){}
int i = 8;
void access()
{
System.out.println(i);//自身变量的访问
System.out.println(DataStructure.i);//外部类变量的访问
DataStructure.staticOutPrivateFunction();//调用外部类静态方法
new DataStructure().outPrivateFunction();
}
}
interface Work //接口也可作为嵌套类,实现匿名嵌套类,参数嵌套类类似
{
public int Money();
}
public static void main(String s[]) {
DataStructure.InnerEvenIterator ie = new DataStructure().new InnerEvenIterator(); //创建非静态内部类实例
DataStructure.NestedClass dn = new DataStructure.NestedClass(); //创建静态嵌套类实例
DataStructure ds = new DataStructure();
ds.printEven();
dn.access();
new Work()
{
public int Money(){ return 2000;};
}.Money();
}
}
发表评论
-
hashtable arraylist 容量
2013-03-01 09:50 864Each ArrayList instance h ... -
报表导出参数
2013-02-27 16:49 1262JRExporterParameter. JASPER_PR ... -
report
2013-02-22 12:08 710http://blog.csdn.net/usedtolov ... -
gwt
2013-02-21 17:02 876Google Web Toolkit的缩写,有了 GWT可以使 ... -
线程安全Collections.synchronizedList
2013-01-23 22:30 46649Collections.synchronizedList引发 ... -
java 一些么曾用的领域
2013-01-23 21:48 768阻塞与非阻塞io 1、nio 1.4 + 2、aio ... -
json 包依赖
2013-01-23 18:02 890commons-beanutils.jar commons ... -
线程池
2013-01-22 22:20 01、Executors类里面提供了一些静态工厂,生成一些常用 ... -
struts2 ext fileUpload
2012-11-23 16:19 0觉得这篇还写的可以,http://www.cnblogs.co ... -
myeclipe jvm setting
2012-11-21 10:23 0原文出处: 由MyEclipse内 ... -
IP转化
2012-07-15 15:56 856IP相互转化 /* * >>>无符 ... -
weblogic下载
2012-04-22 14:07 0weblogic 10.0版本的下载路径: http://w ... -
xml处理
2012-04-07 17:48 0一、此段代码是struts2中struts.xml的解析的部分 ... -
配置文件
2012-04-07 12:32 0以前教材源码的配置文件,很久不用,免的无从下手 一、web. ... -
零碎零碎
2012-02-27 16:30 01、SimpleDateFormat 的使用: Simple ... -
synchronized使用
2011-08-03 23:38 888synchronized关键字的使用: ①是某个对 ... -
Java修饰符
2011-08-03 23:18 914①类修饰符: public 可以从其他类中访问 a ... -
JSP内置对象
2011-07-31 21:37 853以下对JSP内置对象及其方法做一概述 一、reques ... -
设计模式-单例 Singleton
2011-07-31 03:03 714一、构成单例模式要点: ①、只有一个实例 ②、私有的构造方 ... -
JDK_7 Download
2011-07-30 01:11 1357尝尝鲜 哈哈: Linux x86 - RPM Ins ...
相关推荐
主要介绍了Java嵌套类和内部类详解,本文讲解了什么是嵌套类及内部类、静态嵌套类、在外部类中定义内部类、在方法中定义内部类、匿名内部类等内容,需要的朋友可以参考下
内部类基本概述语法格式成员内部类局部内部类匿名内部类静态嵌套类静态嵌套类和非静态嵌套类的区别 内部类 基本概述 当一个类的定义放在另一个类的实体时,则该类叫做内部类,该类所在的类叫做外部类 在一个类体中...
内部类分为成员内部类、静态嵌套类、方法内部类、匿名内部类。 几种内部类的共性: A、内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类命和$符号。 B、内部类不能...
java内部类分为: 成员内部类、静态嵌套类、方法内部类、匿名内部类。这篇文章主要介绍了Java中的匿名内部类的相关资料,需要的朋友可以参考下
内部类分为: 成员内部类、局部内部类、静态嵌套类、匿名内部类 。 1.成员内部类 成员内部类是普通的内部类,它的定义为位于另一个类的内部,形如下面的形式: class Outter { private int age = 12;...
Java在嵌套类型这里提供的特性比较多,假设:Java的字节码只支持静态嵌套类,内部类、局部内部类和匿名局部内部类都是编译器提供的语法糖,这个假设目前没法验证(看不懂字节码),本文先来看一下C#是如何为我们提供...
1.2.5 匿名内部类 1.2.6 内部类使用的其它的问题 1.3 文件和流 1.3.1 什么是数据流 1.3.2 InputStream 的方法有: 1.3.3 OutputStream 的方法: 1.3.4 File 类 1.3.5 文件流的建立 1.3.6 缓冲区流 1.3.7 原始型数据流...
2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,...
2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,...
2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,...
2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,...
1.2.5 匿名内部类 49 1.2.6 内部类使用的其它的问题 50 1.3 文件和流 51 1.3.1 什么是数据流 51 1.3.2 InputStream 的方法有: 51 1.3.3 OutputStream 的方法: 51 1.3.4 File 类 51 1.3.5 文件流的建立 52 1.3.6 ...
不写时默认为friendly2、 Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类, 是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个...
•匿名内部类适合创建那种只需要一次使用的类,定义匿名内部类的语法格式如下: •new 父类构造器(实例列表) |实现接口) •{ • //匿名内部类的 类体部分 •} •匿名内部类不能是抽象类,匿名内部类不能定义...
2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,...
2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,...
15.4.2 基于接口实现的匿名内部类 335 15.4.3 匿名内部类的初始化 337 15.4.4 匿名内部类作用的体现 337 15.5 理解内部类 339 15.6 内部接口 340 15.6.1 定义在类中的内部接口 340 15.6.2 定义在接口中...
类和对象基本类型和对对象的引用使用类型和包进行编程泛型和注释接口,嵌套类,功能概念使用界面静态嵌套类内部阶级匿名内部类lambda表达式功能接口例外情况异常处理程序,控制权的转移异步异常尝试,抓住,最后阻止...
一. Java基础部分 7 1、一个".java"源文件中是否可以包括多个类(不是内部类)?...28、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 21