Java内部类使用概述

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,String,Class,Access,import)