非静态内部类的使用示例(展示内部类与外部类,内部类与内部类之间的访问形式)**
public class Outer {
private int size;
public class Inner{
private int counter=10;
public void doStuff(){
size++;
Outer.this.size++;
}
}
public class Inner2{
public void doStuff(){
Inner t = new Inner();
System.out.println(t.counter);
}
}
public static class Inner3{
int num=5;
public void doStuff(){
Outer outer = new Outer();
Inner inner = outer.new Inner();
System.out.println(inner.counter);
}
}
public static void main(String[] args) {
Outer outer = new Outer();
Inner inner = outer.new Inner();
inner.doStuff();
System.out.println(outer.size);
System.out.println(inner.counter);
Inner2 inner2 = outer.new Inner2();
inner2.doStuff();
}
}
class TT{
public static void main(String[] args) {
Outer out = new Outer();
Outer.Inner outerInner = out.new Inner();
outerInner.doStuff();
}
}
--------------------------------------------------------
class Outer2 {
private static int size;
static class Inner{
public void doStuff(){
size++;
System.out.println("size="+size);
}
}
}
class TestOuter2{
public static void main(String[] args) {
Outer2.Inner inner = new Outer2.Inner();
inner.doStuff();
}
}