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();
	}
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值