7-1 内部类定义
A类中可以声明B类,这样A类就是外嵌类,B类就是内部类
①外嵌类的变量在内部类中仍然有效,内部类中的方法可以调用外嵌类的方法
②内部类不可以再声明类变量和类方法,外嵌类可以调用内部类中的变量和方法
class father {
Son son=new Son("son"); //内部类的使用
String name;
class Son{ ///内部类
Son(String s){
name=s;
}
void Speak(){
System.out.println("I am son");
}
}
}
public static void main(String[] args) {
father f=new father();
f.son.Speak(); //内部类的方法的调用
}
③内部类只能被其外嵌类调用,不能被其他类使用(这个可以用于安全)
④当内部类被static修饰以后就可以被其它类引用去创建对象了,,但是需要注意的是,此时内部类只能引用外嵌类中的static变量,详见下部代码:
class father {
Son son=new Son("son");
static String name; //实例变量
public static class Son{ //static内部类,可以被其它类使用去声明对象
Son(S