日期:2014-05-20  浏览次数:20935 次

初学者关于内部类的问题??
问两个问题,一个是外部类的方法可不可以访问内部类的方法和变量?第二个就是静态内部类,成员类,匿名类它们各适用于什么场合?求高手帮忙!!!

------解决方案--------------------
如果内部类有访问其变量的方法,外部类可以通过方法new一个内部类对象访问到内部类的方法和变量
至于第二个问题楼主可以自己体会
个人观点,坐等大侠指点
------解决方案--------------------
在外部类中你的先new 这个内部类才能使用
public static void main(String[] args)
{

new Client().test();
}

//当你创建一对象的时候他是不会给这个类的方法分配内存空间的,方法是一个孤立的,
//当调用这个方法的时候他才会把你的方法中的变量存储到占内存空间中,当这个方法结束之后这些 内存也就会被释放,
//这也就是说为什么可以在这个方法中new Client()了
public void test()
{
Inner in = new Inner();
in.a = 5;
in.innerTest();
in.show();

StaticInner inner = new StaticInner();
inner.b = 5;
inner.show();
inner.innerTest();

Client client = new Client();
client.show();
Inner in1 = client.new Inner();
in1.innerTest();

StaticInner inner1 = new Client.StaticInner();
inner1.innerTest();
}

public void show()
{
System.out.println( "client ");
}

private final class Inner
{
private int a;

public void innerTest()
{
System.out.println( "innerTest ");
}

public void show()
{
System.out.println(a);
}
}

private final static class StaticInner
{
private int b;

public void innerTest()
{
System.out.println( "staticInner ");
}

public void show()
{
System.out.println(b);
}
}
不知道这段代码对你有帮助吗?
------解决方案--------------------
这些个类得通过代码才能慢慢理解什么时候该用什么类,建议楼主以后看到多多总结,实践出真知,用多了自然就理解了
------解决方案--------------------
参考一下这个:

http://blog.csdn.net/driverking/article/details/6553877