定义:在类的内部定义的类
优点:方便的使用外部类的属性
缺点:破坏类的基本结构,建议慎用
使用场合:提供更好的封装,只为了服务外部类
作用:
1.为外部类提供方便
2.内部类可直接访问外部类的私有属性,但外部类不能直接访问内部类的属性
分类:
(1)成员内部类
成员内部类又分为静态内部类(static修饰)和普通内部类
静态内部类使用时可以不经过外部类,但只能调用外部类的静态属性
普通内部类使用时必须经过外部类
调用内部类局部属性:属性
调用内部类成员属性:this.属性
调用外部类成员属性:外部类.this.属性
(2)匿名内部类
没有名字的内部类,适用于只需要使用一次的类,如键盘监听…
(3)成员内部类,定义在方法中的类,基本用不上
//外部类Outer
public class Outer {
private int a=1;
//内部类Inner
class Inner{
public void show() {
System.out.println(a);//可以方便的使用外部类的私有属性
}
}
public void show() {
Inner inner=new Inner();
inner.show();
}
public static void main(String[] args) {
Outer outer=new Outer();
outer.show();
}
}
上述代码中,外部类间接的使用了内部类里的方法
下面写一个直接使用内部类里的方法的实例
//外部类Outer
public class Outer {
private int a=1;
//内部类Inner
class Inner{
public void show() {
System.out.println(a);//可以方便的使用外部类的私有属性
}
}
public static void main(String[] args) {
Outer.Inner inner=new Outer().new Inner();
inner.show();
}
}