import static java.lang.System.out;
class Outer {
static class InnerStatic {
// static inner class
// cannot access outer instance
int i = 0;
}
class Inner {
// inner class
// can access outer instance
int i = Outer.this.o;
}
int o = -1;
}
class Base {
public void Hello() {
out.println("Hello, world!");
}
}
class Hello {
int h = 100;
public void hello() {
final int i = 100;
Base b = new Base() {
// Create an anonymous inner class that extends Base
public void Hello() {
out.println("Thank you!");
out.println("The value of the instance of outer Hello is: " + Hello.this.h);
out.println("The outer value is: " + i); // variable i must be final
}
};
b.Hello();
}
}
public class Test
{
public static void main(String[] args) {
Outer.InnerStatic in1 = new Outer.InnerStatic();
in1.i = 10;
out.println("The value1 is: " + in1.i);
Outer outer = new Outer();
Outer.Inner in2 = outer.new Inner();
out.println("The outer value is: " + in2.i);
in2.i = 100;
out.println("The value2 is: " + in2.i);
Outer.InnerStatic in11 = new Outer.InnerStatic();
out.println("The value11 is: " + in11.i);
Hello h = new Hello();
h.hello();
h.h = -100;
h.hello();
}
}
Java内部类使用概述
最新推荐文章于 2024-02-06 23:25:35 发布