class Outer{ // 定义外部类
private String info = "helloworld" ; // 定义外部类属性
private static String info2 = "helloeclipse"; // 定义静态变量
class Inner{ // 定义内部类
public void print(){
// 内部类的好处之一:直接访问外部类属性
System.out.println(info) ; // 直接访问外部类属性
}
}
static class StaticInner{ // 通过static定义的内部类为外部类
public void print(){
System.out.println(info2);
}
}
public void fun(){
new Inner().print() ; // 通过内部类的实例化对象调用方法
}
}
/**
* @author Administrator
*
* @description 内部类以及匿名内部类学习测试类
* @history
*/
public class InnerClassDemo{
/**
*@description
*@param args
*/
public static void main(String[] args){
new Outer().fun() ; // 调用外部类的fun()方法
// 另外一种实例化方式
Outer out = new Outer();
Outer.Inner in = out.new Inner();
in.print();
// 通过外部类.内部类实例化内部类对象
//StaticInner sin = new Outer.StaticInner(); //需要导入外部类所在的包
//sin.print();
}
}