定义
一个类定义在另一个类的内部
注意
1.内部类也会生成字节码文件,但会包含外部类的名字,如Outer$Inner.class
2.内部类访问外部类的对象通过外部类类名.this
3.内部类中如果没有要找到的属性,会自动的到外部类中寻找与其属性名相同的属性
4.在外部类的方法中创建内部类的对象可以省略外部类的引用
5.Outer a1=new Outer();Outer.Inner oi=a1.new Inner();在外部创建内部类对象要写全称
6.可以有私有的内部类,其只能通过外部类的方法创建
7.把私有的内部类的类名省略了就是匿名内部类
8.很多线程通过实例内部类实现
与普通的类的不同点:
1.作用空间和作用范围只在包含它的外部类才有效
方法内部类
语法
1.在方法里头定义的类
2.作用空间只能在方法
3.对象只能在方法中创建
4.方法内部类也自动拥有外部类的引用
一个类定义在另一个类的内部
注意
1.内部类也会生成字节码文件,但会包含外部类的名字,如Outer$Inner.class
2.内部类访问外部类的对象通过外部类类名.this
3.内部类中如果没有要找到的属性,会自动的到外部类中寻找与其属性名相同的属性
4.在外部类的方法中创建内部类的对象可以省略外部类的引用
5.Outer a1=new Outer();Outer.Inner oi=a1.new Inner();在外部创建内部类对象要写全称
6.可以有私有的内部类,其只能通过外部类的方法创建
7.把私有的内部类的类名省略了就是匿名内部类
8.很多线程通过实例内部类实现
与普通的类的不同点:
1.作用空间和作用范围只在包含它的外部类才有效
方法内部类
语法
1.在方法里头定义的类
2.作用空间只能在方法
3.对象只能在方法中创建
4.方法内部类也自动拥有外部类的引用