public class COut 
{
int member;
public COut()
{
member=1;
}
public static void main(String args[])
{
COut outinst=new COut();
CInner ininst=outinst.new CInner();
ininst.showMemberVal();
}
class CInner
{
int member;
public CInner()
{
member=3;
}
void showMemberVal()
{
System.out.println("COut.member:"+COut.this.member);
System.out.println("CInner.member:"+member);
}
}
}

解决方案 »

  1.   

    My friend, how about this,
    public class TestInnerClass
    {
    //These method are all in Outside class named TestInnerClass
    int AccessingVar = 1; void AccessingMethod()
    {
    System.out.println("It is printed by TestInnerClass()");
    } //In Outside class call the method or member variable of Inner class
    void callInnerClass()
    {
    InnerClass oInnerClass = new InnerClass();
    oInnerClass.callOutSideClass();
    oInnerClass.AccessingMethod();
    System.out.println("oInnerClass.AccessingVar :" +  oInnerClass.AccessingVar);
    } //The Inner Class
    class InnerClass
    {
    int AccessingVar = 2;
    void AccessingMethod()
    {
    System.out.println("It is printed by InnerClass()");
    }

    //In Inner class call the method or member variable of Outside class
    void callOutSideClass()
    {
    TestInnerClass oTestInnerClass = new TestInnerClass();
    System.out.println("oTestInnerClass.AccessingVar :" + oTestInnerClass.AccessingVar);
    oTestInnerClass.AccessingMethod();
    }
    } public static void main(String[] args)
    {
    TestInnerClass oTestInnerClass = new TestInnerClass();
    oTestInnerClass.callInnerClass();
    }
    }