`
kevin_wanwei
  • 浏览: 117679 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java1.5新特性枚举实现原理

 
阅读更多
package com.bp_soft.day01;
/**
 * Java1.5中新特性枚举是如何实现的
 * 下面我写一个普通类去模拟一下枚举的实现过程
 * @author kevin
 * 2010-3-8
 */
public abstract class TrafficLight {
	//在使用枚举时,定义常量实际上是当前类静态常量对象
	//(1)用普通类模拟枚举,首先该类的构造方法应该是私有的
	private int time;
	
	private TrafficLight(){};
	
	private TrafficLight(int time){
		this.time=time;
	}
	//定义RED,GREEN,YELLOW当前类的静态常量对象
	public final static TrafficLight RED=new TrafficLight(30){

		@Override
		public TrafficLight nextLight() {
			return GREEN;
		}

		@Override
		public String toString() {
			return "RED";
		}
		
	};
	
	public final static TrafficLight GREEN=new TrafficLight(45){

		@Override
		public TrafficLight nextLight() {
			return YELLOW;
		}

		@Override
		public String toString() {
			return "YELLOW";
		}
		
	};
	//这是通过匿名内部内来实现的
	public final static TrafficLight YELLOW=new TrafficLight(){

		@Override
		public TrafficLight nextLight() {
			return RED;
		}

		@Override
		public String toString() {
			return "RED";
		}
		
	};
	
	//当我们在使用这个类时, 不可能再随随便便来创建其他对象,(我们只能选择上面三个对象的其中之一),这就是枚举实现思想
	public abstract String toString();
	//父类的抽象方法有子类来实现
	public abstract TrafficLight nextLight();
	
	public static void main(String args[]){
		System.out.println(RED.nextLight());
	}
}

 

package com.bp_soft.day01;
/**
 * 下面我写的一个枚举,比较一下就会知道枚举实现原理了吧
 * @author kevin
 * 2010-3-8
 */
public enum TrafficLightEnum {
	
	RED(30){
		public  TrafficLightEnum  nextLight(){
			return GREEN;
		}
		
		public  String toString(){
			return "RED";
		}
	},GREEN(45){
		public  TrafficLightEnum  nextLight(){
			return YELLOW;
		}
		
		public  String toString(){
			return "GREEN";
		}
	},YELLOW(5){
		public  TrafficLightEnum  nextLight(){
			return YELLOW;
		}
		
		public  String toString(){
			return "YELLOW";
		}
	};
	private int time; 
	
	private TrafficLightEnum(){}//在枚举中可以定义私有的构造方法
	
	private TrafficLightEnum(int time){this.time=time;}//在枚举中可以定义多个私有构造函数
	

	
	public abstract TrafficLightEnum  nextLight();
	
	public abstract String toString();
}

 

2
1
分享到:
评论

相关推荐

    java1.5新特性

    java1.5之后的新特性: 1,枚举(enum) 作用:一般用于代表一组相同类型的常用常量。 原理:语法结构与java类的语法不一样,但是经过编译器编译之后产生的是一个class文件。该class文件经过反编译之后实际上是...

    java1.5 annotation注释源代码

    Java 1.5 引入了一种新的元编程机制——注解(Annotation),极大地增强了代码的可读性和可维护性。注解是一种在代码中添加元数据的方式,它允许程序员在源代码上添加一些信息,这些信息可以被编译器或运行时环境...

    JAVA帮助文档jdk1.5

    本Java帮助文档针对的是JDK 1.5版本,这个版本在Java的历史上具有里程碑意义,因为它引入了许多重要的新特性,增强了语言的表达力和效率。 1. **泛型(Generics)**:JDK 1.5首次引入了泛型,使得在编写代码时可以...

    java1.5源码-Druga-proba-JMBG-programa:姓氏:LazarRistic。为什么要使用这项技术:在“编程原理”期间

    在"Druga-proba-JMBG-programa"项目中,Lazar Ristic可能利用这些Java 1.5特性来实现JMBG的验证逻辑,这可能涉及到字符串处理、正则表达式、位运算等基础知识。通过这个项目,他可能学习如何组织代码、处理输入输出...

    网络程序设计java第章泛型和枚举PPT学习教案.pptx

    Java作为一种广泛使用的面向对象编程语言,提供了泛型和枚举两种强大的特性,以增强代码的灵活性、安全性和可读性。本篇将深入探讨这两者在Java中的应用和原理。 首先,我们来了解泛型。泛型是Java从1.5版本引入的...

    JDK1.5的源代码

    通过学习JDK 1.5的源代码,开发者可以深入了解这些特性的实现原理,提升编程技巧,更好地利用Java平台提供的功能。将src包导入到IDE中,逐行阅读和分析源代码,是学习和理解这些概念的绝佳途径。同时,也可以通过...

    JDK1.5源代码,有原文注释

    JDK 1.5,也被称为Java SE 5.0,是一个重要的版本,它引入了许多新特性,对Java语言产生了深远的影响。这份源代码不仅包含了完整的JDK实现,还附带了原文注释,对于深入理解Java的内部机制和学习编程实践极具价值。 ...

    jdk1.5 and tomcat5.5

    JDK 1.5(也称为Java SE 5.0)是Java编程语言的重要更新,引入了许多新特性和改进: 1. **泛型**:泛型允许在编译时检查类型安全,减少了类型转换异常,并提高了代码的可读性。 2. **自动装箱/拆箱**:允许在基本...

    随机点名系统 java eclipse

    Java 1.5,也被称为Java 5.0,是Java历史上的一个重要里程碑,引入了泛型、枚举类型、注解(Annotation)等新特性,增强了类型安全性和代码可读性。Eclipse作为一款强大的集成开发环境(IDE),提供了丰富的代码编辑...

    JDK转换器(1.5-->1.4)

    在JDK 1.5中,引入了若干重要的新特性,例如: 1. **泛型(Generics)**:泛型允许在类、接口和方法中定义类型参数,增强了类型安全,减少了强制类型转换的需要。这在JDK 1.4中是不支持的,因此1.5编译的类如果使用...

    jdk开发手册 1.6版本和1.5版本 中文

    而在1.5版本的手册中,理解泛型的工作原理和如何有效利用枚举来替换常量类是重点。 总的来说,这份《JDK开发手册》中文版1.6和1.5合集,是每一个Java开发者必备的学习资料。通过深入研究,开发者可以更好地理解和...

    Java2核心技术源码

    11. **枚举类型**:Java1.5引入的枚举类型,用于表示固定数量的常量,源码中可能包含枚举的定义和使用。 12. **注解(Annotation)**:注解是元数据的一种形式,用于提供编译器或运行时系统使用的元信息。源码中...

    jdk1.5 src.zip

    以上内容只是JDK1.5源码中的冰山一角,实际的源码包含了大量关于Java虚拟机(JVM)、类加载机制、垃圾回收算法等深奥的内容,对于理解Java工作原理具有极大的价值。通过阅读和研究这些源码,开发者可以提升对Java...

    java试题 java笔试题 java面试题

    Java 相关试题、笔试题和面试题进行总结和分析,涵盖了 XML 解析技术、Struts 框架、ArrayList 和 Vector 的区别、HashMap 和 Hashtable 的区别、JDK 1.5 和 1.6 新特性、Hibernate 工作机制、Struts 工作原理等多个...

    beginning java

    《初识Java:JDK1.5入门精典》是一本专为新手设计的Java编程教程,基于Java Development Kit(JDK...通过学习,你不仅可以掌握Java编程的基本技能,还能对JDK1.5的特性有深入的理解,为后续的Java开发打下坚实的基础。

    jdk1.5/1.6合集

    1.5版本还引入了枚举(Enums)、注解(Annotations)、自动装箱与拆箱(Autoboxing and Unboxing)、变量args(Variable Argument Lists)以及增强的for循环(Enhanced For Loop)等新特性,大大提升了Java编程的...

    JavaAPI.rar

    Java 5.0(也称为JDK 1.5)引入了许多重要的新特性,如泛型、枚举、可变参数、自动装箱/拆箱等。OAPI_CN是中国本地化的官方API文档,帮助开发者了解这些新特性的具体用法和背后的原理。 3. **JDK API**: JDK...

    java大神进阶之路.pdf

    - JDK版本特性:关注JDK1.5、JDK1.6、JDK1.7、JDK1.8等各版本的新特性和提升。 **三、数据库相关** - 理论基础:了解数据库设计原则、范式和事务的基本概念和工作原理。 - 数据库操作:学习MySQL、SQLServer、...

    SCJP 1.5 English Guide

    《SCJP 1.5 English Guide》是一本针对Java Standard Certification for Programmers 1.5版本的英文指南,旨在帮助读者深入理解Java编程语言,并准备SCJP(Sun Certified Programmer)认证考试。SCJP是Java程序员的...

Global site tag (gtag.js) - Google Analytics