一:类中类:
public class Outer {
private String info="Hello World";
public class Inner{
public void print(){
System.out.println("可直接访问外部类的变量:"+info);
}
}
public static void main(String[] args) {
Outer o=new Outer();//实例化外部类
Outer.Inner in=o.new Inner();//实例化内部类
in.print();//打印结果:可直接访问外部类的变量:Hello World
}
}
private String info="Hello World";
public class Inner{
public void print(){
System.out.println("可直接访问外部类的变量:"+info);
}
}
public static void main(String[] args) {
Outer o=new Outer();//实例化外部类
Outer.Inner in=o.new Inner();//实例化内部类
in.print();//打印结果:可直接访问外部类的变量:Hello World
}
}
二:方法中类
public class Hello {
private String info="Hello World";
public void print(final int a){
class Inner{
public void test(){
System.out.println("访问外部类中的参数不用final修饰:"+info);
System.out.println("访问外部类中方法中的内部类,要访问方法中的参数,一定要加final:"+a);
}
};
new Inner().test();//在方法中实例化内部类,用调用内部类中的test()方法;
}
public static void main(String[] args) {
Hello h=new Hello();
h.print(33);
//运行结果:
// 访问外部类中的参数不用final修饰:Hello World
// 访问外部类中方法中的内部类,要访问方法中的参数,一定要加final ,如果不加final也可以用外部类.this.变量名即可
}
}