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);
}
}
}
{
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);
}
}
}
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();
}
}