`
nathan09
  • 浏览: 155485 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

【读书笔记】TiJava——内部类

 
阅读更多

内部类

•可以在任意作用域内定义内部类
•在类作用域里定义
–引用范围由其访问属性决定
•方法内部类

-引用范围只在方法内部

•任意作用域类

-引用范围只在该作用域内部


类内部类

•内部类对象包含隐式成员指向外部类对象
•用OuterClass.this引用外部类对象
•在外部类非静态方法外创建内部类对象,不能直接new Outer.Inner().必须先创建外部类对象,然后通过外部类对象创建。创建方式如下:
–Outero = new Outer();
–Outer.Inneroi=o.newInner();

类内部类的使用

•外部public接口+内部private实现
•隐藏实现细节
•由于是private实现,在外部类非静态方法外的所有地方,都不能创建内部类对象或使用内部类名,只能由外部类的非静态方法创建内部类对象,并返回接口来使用内部类。

匿名类

•如果在匿名类里面用到了外部类定义的变量,则这个对象必须定义成final
•匿名类没有构造函数,但可以通过实例初始化块来进行匿名类的构造

嵌套类(静态内部类)

•声明为static的内部类
•嵌套类对象没有外部类对象的this引用
•不需要通过外部类对象创建嵌套类对象
•嵌套类内不能访问外部类的非静态成员
•类似于static方法
•接口中的任何类都自动是public和static的

为什么需要内部类

•可解决“多重继承”问题哦,因为每个内部类都可以继承一个类

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics