JAVA内部静态类之间的调用时,需要注意的事项。阅读代码和注释。
package myNextStep;
public class OutClassStatic {
/**
* @param args
*/
static String school = "Sheffield Hallam University";//外部类的静态变量
String major = "Information Technology";//外部类的实例
static class InnerClass1{
static String name = "第一个静态内部类字符串";//静态变量
int age = 27;//实例变量
public void SayInner1(){
System.out.println("Your school is "+school);
//静态内部类可以直接访问外部类
OutClassStatic my2 = new OutClassStatic();
System.out.println("Your major is "+my2.major);
}
}
public class InnerClass2{
InnerClass1 my1 = new OutClassStatic.InnerClass1();
/* 1.在创建静态内部类实例的时候,不需要创建外部类的实例。
* 2.如果InnerClass1不是静态类,则:OutClassStatic.InnerClass1 my1 = new OutClassStatic().new InnerClass1();
*/
int age2 = my1.age;//访问实例成员:如果访问静态内部类的实例成员,则需要通过内部静态类的实例
String name2 = OutClassStatic.InnerClass1.name;//访问静态成员:外部类的其他类需要通过完整的类名访问静态内部类中的内部成员。
}
public static void main(String[] args) {
// TODO Auto-generated method stub
OutClassStatic.InnerClass2 my3 = new OutClassStatic().new InnerClass2();
OutClassStatic.InnerClass1 my4 = new OutClassStatic.InnerClass1();
System.out.println("I am "+ my3.age2);
System.out.println("I am "+my3.name2);
my4.SayInner1();
}
}