leochiang

BlogJava 联系 聚合 管理
  21 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks
另有: http://blog.csdn.net/ilibaba/article/details/3866537 

1.首先,把内部类作为外部类的一个特殊的成员来看待,因此它有类成员的封闭等级:private ,protected,默认(friendly),public 它有类成员的修饰符:   static,final,abstract 

2.非静态内部类nested inner class,内部类隐含有一个外部类的指针this,因此,它可以访问外部类的一切资源(当然包括private) 
  外部类访问内部类的成员,先要取得内部类的对象,并且取决于内部类成员的封装等级。 
  非静态内部类不能包含任何static成员. 

3.静态内部类:static inner class,不再包含外部类的this指针,并且在外部类装载时初始化. 
  静态内部类能包含static或非static成员. 
  静态内部类只能访问外部类static成员. 
  外部类访问静态内部类的成员,循一般类法规。对于static成员,用类名.成员即可访问,对于非static成员,只能 
    用对象.成员进行访问 

4.对于方法中的内部类或块中内部类只能访问块中或方法中的final变量。 
类成员有两种static , non-static,同样内部类也有这两种 
non-static 内部类的实例,必须在外部类的方法中创建或通过外部类的实例来创建(OuterClassInstanceName.new innerClassName(ConstructorParameter)),并且可直接访问外部类的信息,外部类对象可通过OuterClassName.this来引用 
static 内部类的实例, 直接创建即可,没有对外部类实例的引用。 
内部类不管static还是non-static都有对外部类的引用 
non-static 内部类不允许有static成员  
方法中的内部类只允许访问方法中的final局部变量和方法的final参数列表,所以说方法中的内部类和内部类没什麽区别。但方法中的内部类不能在方法以外访问,方法中不可以有static内部类 
匿名内部类如果继承自接口,必须实现指定接口的方法,且无参数 
匿名内部类如果继承自类,参数必须按父类的构造函数的参数传递
  

内部类的作用

java 中的内部类和接口加在一起,可以的解决常被 C++ 程序员抱怨 java 中存在的一个问题??没有多继承。实际上,C++ 的多继承设计起来很复杂,而 java 通过内部类加上接口,可以很好的实现多继承的效果。  

内部类:一个内部类的定义是定义在另一个内部的类。 
原因是: 
1.一个内部类的对象能够访问创建它的对象的实现,包括私有数据。 
2.对于同一个包中的其他类来说,内部类能够隐藏起来。 
3.匿名内部类可以很方便的定义回调。 
4.使用内部类可以非常方便的编写事件驱动程序。 
posted on 2012-08-10 08:02 leoChiang 阅读(201) 评论(0)  编辑  收藏 所属分类: 技术文档

只有注册用户登录后才能发表评论。


网站导航: