package inner_class;
public class Innerclass {
private int value=3;
public void method1()
{
System.out.println("外部类"+value);
System.out.println("number:"+new Aa().number); //外部类访问内部类时必须先建立内部类的对象,通过对象访问
}
class Aa
{
private int number=23;
private int value=12;
public void function() //而内部类可直接访问外部的成员变量及成员函数
{
int value=30;
System.out.println("内部类"+number);
System.out.println("value:"+value);
System.out.println("this.value:"+this.value);
System.out.println("Innerclass.this.value:"+Innerclass.this.value);
}
}
static class Bb //静态内部类
{
public void mm()
{
System.out.println("非静态方法mm");
}
static void nn()
{
System.out.println("静态方法nn");
}
}
public static void fund()
{
System.out.println("通过外部类中的静态方法fund调用静态内部类的非静态成员mm:");
new Bb().mm();
}
}
//以下是对内部类进行测试
package inner_class;
public class Inner_test {
public static void main(String[] args)
{
Innerclass inclass=new Innerclass();
inclass.method1();
Innerclass.Aa inaa=new Innerclass().new Aa(); //调用内部类的格式
inaa.function();
new Innerclass.Bb().mm(); //调用静态内部类的非静态成员方法
Innerclass.Bb.nn(); //调用静态内部类的静态成员
Innerclass.fund();
}
}