内部类(Nested class)


内部类就是一个被包含在另外一个类内部(大括号里面)的类。简单定义形式如下:

内部类(Nested class)_第1张图片
内部类

什么时候使用内部类呢?
当一个类B只会被类A使用的时候
好处是:更好的封装,可以访问内部变量
内部类(Nested class)_第2张图片
内部类包上几种

如狗窝(DogHouse)类,狗鞋(DogShoes)类,和狗统计器(DogStat)等类只有在狗(Dog)类中会用到,所以可以使用内部类。
内部类(Nested class)_第3张图片
Paste_Image.png

内部类(Nested class)_第4张图片
内部类基础

内部类(Nested class)_第5张图片
Paste_Image.png

内部类还可以放在一个具体的方法里面。
如果一个类只有某个方法使用,可以在这个方法里面定义这个内部类,这个内部类出了这个方法就不能使用了。
定义方法就是类的定义写在方法的大括号里面。

内部类(Nested class)_第6张图片
方法里面的内部类

如果一个类只用一次,就为了某个特定的变量或者方法创建一个实例,这个类可以声明为匿名内部类(Anonymous inner class)。
匿名内部类不需要类名,只有类的定义并且在定义的同时创建一个实例就可以了。
第一种写法:直接在参数中定义

内部类(Nested class)_第7张图片
匿名内部类

第二种写法:在定义变量的时候定义
内部类(Nested class)_第8张图片
Paste_Image.png

静态内部类
内部类也可以是静态的类,如:

内部类(Nested class)_第9张图片
Paste_Image.png

静态内部类的实例化使用外部类的类名访问:


Paste_Image.png

你可能感兴趣的:(内部类(Nested class))