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();
}
分享到:
相关推荐
java1.5之后的新特性: 1,枚举(enum) 作用:一般用于代表一组相同类型的常用常量。 原理:语法结构与java类的语法不一样,但是经过编译器编译之后产生的是一个class文件。该class文件经过反编译之后实际上是...
Java 1.5 引入了一种新的元编程机制——注解(Annotation),极大地增强了代码的可读性和可维护性。注解是一种在代码中添加元数据的方式,它允许程序员在源代码上添加一些信息,这些信息可以被编译器或运行时环境...
本Java帮助文档针对的是JDK 1.5版本,这个版本在Java的历史上具有里程碑意义,因为它引入了许多重要的新特性,增强了语言的表达力和效率。 1. **泛型(Generics)**:JDK 1.5首次引入了泛型,使得在编写代码时可以...
在"Druga-proba-JMBG-programa"项目中,Lazar Ristic可能利用这些Java 1.5特性来实现JMBG的验证逻辑,这可能涉及到字符串处理、正则表达式、位运算等基础知识。通过这个项目,他可能学习如何组织代码、处理输入输出...
Java作为一种广泛使用的面向对象编程语言,提供了泛型和枚举两种强大的特性,以增强代码的灵活性、安全性和可读性。本篇将深入探讨这两者在Java中的应用和原理。 首先,我们来了解泛型。泛型是Java从1.5版本引入的...
通过学习JDK 1.5的源代码,开发者可以深入了解这些特性的实现原理,提升编程技巧,更好地利用Java平台提供的功能。将src包导入到IDE中,逐行阅读和分析源代码,是学习和理解这些概念的绝佳途径。同时,也可以通过...
JDK 1.5,也被称为Java SE 5.0,是一个重要的版本,它引入了许多新特性,对Java语言产生了深远的影响。这份源代码不仅包含了完整的JDK实现,还附带了原文注释,对于深入理解Java的内部机制和学习编程实践极具价值。 ...
JDK 1.5(也称为Java SE 5.0)是Java编程语言的重要更新,引入了许多新特性和改进: 1. **泛型**:泛型允许在编译时检查类型安全,减少了类型转换异常,并提高了代码的可读性。 2. **自动装箱/拆箱**:允许在基本...
Java 1.5,也被称为Java 5.0,是Java历史上的一个重要里程碑,引入了泛型、枚举类型、注解(Annotation)等新特性,增强了类型安全性和代码可读性。Eclipse作为一款强大的集成开发环境(IDE),提供了丰富的代码编辑...
在JDK 1.5中,引入了若干重要的新特性,例如: 1. **泛型(Generics)**:泛型允许在类、接口和方法中定义类型参数,增强了类型安全,减少了强制类型转换的需要。这在JDK 1.4中是不支持的,因此1.5编译的类如果使用...
而在1.5版本的手册中,理解泛型的工作原理和如何有效利用枚举来替换常量类是重点。 总的来说,这份《JDK开发手册》中文版1.6和1.5合集,是每一个Java开发者必备的学习资料。通过深入研究,开发者可以更好地理解和...
11. **枚举类型**:Java1.5引入的枚举类型,用于表示固定数量的常量,源码中可能包含枚举的定义和使用。 12. **注解(Annotation)**:注解是元数据的一种形式,用于提供编译器或运行时系统使用的元信息。源码中...
以上内容只是JDK1.5源码中的冰山一角,实际的源码包含了大量关于Java虚拟机(JVM)、类加载机制、垃圾回收算法等深奥的内容,对于理解Java工作原理具有极大的价值。通过阅读和研究这些源码,开发者可以提升对Java...
Java 相关试题、笔试题和面试题进行总结和分析,涵盖了 XML 解析技术、Struts 框架、ArrayList 和 Vector 的区别、HashMap 和 Hashtable 的区别、JDK 1.5 和 1.6 新特性、Hibernate 工作机制、Struts 工作原理等多个...
《初识Java:JDK1.5入门精典》是一本专为新手设计的Java编程教程,基于Java Development Kit(JDK...通过学习,你不仅可以掌握Java编程的基本技能,还能对JDK1.5的特性有深入的理解,为后续的Java开发打下坚实的基础。
1.5版本还引入了枚举(Enums)、注解(Annotations)、自动装箱与拆箱(Autoboxing and Unboxing)、变量args(Variable Argument Lists)以及增强的for循环(Enhanced For Loop)等新特性,大大提升了Java编程的...
Java 5.0(也称为JDK 1.5)引入了许多重要的新特性,如泛型、枚举、可变参数、自动装箱/拆箱等。OAPI_CN是中国本地化的官方API文档,帮助开发者了解这些新特性的具体用法和背后的原理。 3. **JDK API**: JDK...
- JDK版本特性:关注JDK1.5、JDK1.6、JDK1.7、JDK1.8等各版本的新特性和提升。 **三、数据库相关** - 理论基础:了解数据库设计原则、范式和事务的基本概念和工作原理。 - 数据库操作:学习MySQL、SQLServer、...
《SCJP 1.5 English Guide》是一本针对Java Standard Certification for Programmers 1.5版本的英文指南,旨在帮助读者深入理解Java编程语言,并准备SCJP(Sun Certified Programmer)认证考试。SCJP是Java程序员的...