JAVA内部类示例分析

内部类是非常有用的类,如果该内部类只为当前类服务,写成内部类将是非常好的选择,详细看程序中的注释:

import java.util.HashMap;
public class Test1 {
	//声明一个存储"指令"的HashMap,根据"指令"存取不同的值
	private static HashMap hashMap=new HashMap();
	//声明一个静态内部类,并在内部类声明一个抽象方法。
	private abstract static class InnerTest1{
		public abstract void print(String username);
	}
	//在静态块中对HashMap进行初使化,静态块后于静态变量初使化
	static{
		//该HaspMap存放的值是内部类,用于可以根据输入的键取到结果为InnerTest1的内部类对象
		//同时因为InnerTest1为抽象类,这里新声明的类必须继承并实现其print方法
		hashMap.put("hello", new InnerTest1(){
			public void print(String username){
				System.out.println("你好,"+username);
			}
		}
		);
		hashMap.put("bye", new InnerTest1(){
			public void print(String username){
				System.out.println("再见,"+username);
			}
		});
	}
	//根据输入的键,到HashMap中取到不同的InnerTest1内部类对象,然后就可以调用其内部的打印方法.
	public static InnerTest1 getPrinter(String param){
		Object obj=hashMap.get(param);
		if(obj!=null){
			return (InnerTest1)obj;
		}else{
			return new InnerTest1(){
				public void print(String username){
					//输入的值为非"hello"和"bye",在这里处理
				}
			};
		}
	}
	public static void main(String[] args) {
		//通过从HashMap中取得对应的InnerTest1类,再调用其内部方法
		Test1.getPrinter("hello1").print("张三");
	}
}




本文出自:冯立彬的博客



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值