1:成员位置的是成员内部类
2:方法位置的是局部内部类
1:成员内部类可以直接访问外部类的成员,包括私有
2:成员外部类要访问内部类的成员,必须创建方法且在方法中创建对象使用
3:其他类要访问内部类的成员就不需要在方法中了,可以直接访问
格式为: 外部类名.内部类名 对象名=new外部类().new内部类();
当内部类用静态修饰符修饰后
格式为: 外部类名.内部类名 对象名=new外部类().内部类();
4:内部类和外部类没有继承关系
5:一般要给内部类不同的修饰符让其他人对他有不同的访问权限进行使用
class Outer {
private int num = 10;
//成员内部类,因为他在成员位置
class Inner {
public void show() {
System.out.println(num);
//成员内部类可以直接访问外部类的成员,包括私有
}
}
//成员外部类要访问内部类的成员,必须创建方法且在方法中创建对象使用
public void method(){
Inner i = new Inner();
i.show();
}
}
public class Demo {
public static void main(String [] args){
Outer.Inner oi=new Outer().new Inner();
oi.show();
}
}