Java中的成员内部类的使用规范

成员内部类的使用规范,自己看书也没看明白啥,一头雾水,自己琢磨出来了,分享给大家,内容都在图中,有不对的及时评论,以免误导他人。
Java中的成员内部类的使用规范
总结:
内部类
* 类的内部还有一个类,类体内定义一个类。
* 内部类可以随意使用外部类的成员方法和成员变量,尽管是private。
* 内部类分为:成员内部类,局部内部类,静态内部类,匿名内部类
这个博客就讲成员内部类
* 在内部类中创建外部类对象后,可以随意使用外部类的成员
* 在外部类中创建内部类对象后,可以随意使用内部类的成员
* 在外部类非静态方法中可以直接创建内部类对象
* 在外部类体中 可以直接创建内部类对象
* 在外部类的static方法中想要创建内部类对象,必须用外部类对象来创建内部类对象,内部类对象一定要绑定在外部类对象上
语法:外部类名.内部类名 引用名 = 外部类引用.new 内部类名();
* 内部类中不能定义static方法,只能在静态类型或顶层类中才能声明静态方法。当然也不能定义main方法了。

上面的源代码我发在下面,如果想自己调试可以复制
public class OuterClass {
innerClass in = new innerClass(); //在外部类体内 可以直接创建内部类对象
private int z = 1;
public void ouf() {
in.inf();
innerClass inc = new innerClass(); //在外部类非静态方法中可以直接创建内部类对象
}
public class innerClass {//内部类开始
public void inf() {
OuterClass out = new OuterClass();
out.z =2; //内部类可以随意使用外部类的成员
}
private int y = 0;
//public static void scc() { } //报错,方法scc不能声明为“静态”;只能在静态类型或顶级类型中才能声明静态方法
//public static void main(String[] args) { } //错误,只能在静态类型或顶级类型中才能声明静态方法
}//内部类结束
public innerClass doit() {
in.y = 4;
return new innerClass();
}
public static void main(String args[]) { //OuterClass.innerClass in = out.doit();
OuterClass out = new OuterClass();
OuterClass.innerClass in2 = out.new innerClass();//外部类的static方法中必须用外部类对象来创建内部类对象
in2.y = 5; //外部类可以随意使用内部类的成员
//innerClass inner1 = new innerClass(); 报错,外部类的static方法中必须用外部类对象来创建内部类对象
}
}
class OuterClass2{
public static void main(String[] args) {
OuterClass out = new OuterClass();
OuterClass.innerClass in = out.doit(); //若把第8行改为private,这行报错 OuterClass.innerClass 不可视
OuterClass.innerClass in2 = out.new innerClass();//若把第8行改为private,这行报错 OuterClass.innerClass 不可视
//in2.y = 4; //报错,OuterClass.innerClass.y 不可视
in2.inf(); //若把第8行改为private,这行报错 OuterClass.innerClass 不可视
} }