基于网络文章的补充
地址
http://www.cnblogs.com/fskjb/archive/2009/08/03/1537917.html
public class TestEnum {
/*
* 枚举:可以理解为有限元素的集合
* 最普通的枚举,枚举相当于一个类,不可继承,定义的元素相当于实例化具体的实例
* 默认有一个private的构造器,外部不能创建实例
* red 相当于普通类中 new 一个具体的实例
* */
public enum ColorSelect {
RED, GREEN, YELLOW, BLUE;
}
/* 枚举也可以象一般的类一样添加方法和属性,你可以为它添加静态和非静态的属性或方法,这一切都象你在一般的类中做的那样. */
public enum Season {
// 枚举列表必须写在最前面,否则编译出错
winter, spring, summer, fall;
private final static String location = "Phoenix";
public static Season getBest() {
if (location.equals("Phoenix"))
return winter;
else
return summer;
}
}
/* 还可以有构造方法 */
public enum Temp {
/*
* 通过括号赋值,而且必须有带参构造器和一属性跟方法,否则编译出错 赋值必须是都赋值或都不赋值,不能一部分赋值一部分不赋值
* 如果不赋值则不能写构造器,赋值编译也出错
*/
absoluteZero(-459), freezing(32), boiling(212), paperBurns(451);
private final int value;
public int getValue() {
return value;
}
// 构造器默认也只能是private, 从而保证构造函数只能在内部使用
Temp(int value) {
this.value = value;
}
}
public static void main(String[] args) {
/*
* 枚举类型是一种类型,用于定义变量,以限制变量的赋值 赋值时通过"枚举名.值"来取得相关枚举中的值
*/
ColorSelect m = ColorSelect.BLUE;
switch (m) {
/*
* 注意:枚举重写了ToString(),说以枚举变量的值是不带前缀的 所以为blue而非ColorSelect.blue
*/
case RED:
System.out.println("color is red");
break;
case GREEN:
System.out.println("color is green");
break;
case YELLOW:
System.out.println("color is yellow");
break;
case BLUE:
System.out.println("color is blue");
break;
}
System.out.println("遍历ColorSelect中的值");
/* 通过values()获得枚举值的数组 */
for (ColorSelect c : ColorSelect.values()) {
System.out.println(c);
}
System.out.println("枚举ColorSelect中的值有:" + ColorSelect.values().length
+ "个");
/* ordinal()返回枚举值在枚举中的索引位置,从0开始 */
System.out.println(ColorSelect.RED.ordinal());// 0
System.out.println(ColorSelect.GREEN.ordinal());// 1
System.out.println(ColorSelect.YELLOW.ordinal());// 2
System.out.println(ColorSelect.BLUE.ordinal());// 3
/* 枚举默认实现了java.lang.Comparable接口 */
System.out.println(ColorSelect.RED.compareTo(ColorSelect.GREEN));
System.out.println(Season.getBest());
for (Temp t : Temp.values()) {
/* 通过getValue()取得相关枚举的值 */
System.out.println(t + "的值是" + t.getValue());
}
}
}
=================================================================================================
/**
* Java普通类实现枚举
* 该实现的枚举不能取代枚举,只是枚举原理的体现实例
* @author Administrator
*
*/
public final class ColorSelect {
/*相当于前面枚举中定的RED*/
public static final ColorSelect RED = new ColorSelect();
public static final ColorSelect GREEN = new ColorSelect();
public static final ColorSelect YELLOW = new ColorSelect();
public static final ColorSelect BLUE = new ColorSelect();
private ColorSelect(){
}
}
分享到:
相关推荐
总结来说,Java枚举提供了一种安全、可读的方式来处理一组预定义的常量。通过枚举,我们可以避免硬编码常量,减少错误,提高代码的可维护性。在实际开发中,枚举常用于定义状态、角色、类型等固定集合的场景。通过...
Java枚举类型是Java语言中一种特殊的类,用于定义固定的常量集合,它提供了一种安全、类型化的方式来表示一组有限的值。枚举在Java中被引入为一个完整的类型,不同于C++中的枚举,这使得Java枚举更加强大且易于使用...
总结来说,Java 枚举提供了一种强类型、安全且易于使用的机制,用于表示一组固定数量的值。它简化了代码,提高了程序的可读性和可维护性,同时也避免了传统的常量类或单例模式的一些潜在问题。通过深入理解和灵活...
- **枚举类型**:学习枚举的定义和使用,结合switch-case语句的应用。 - **字符串处理**:掌握String、StringBuffer和StringBuilder的使用,理解它们的区别。 - **包装类**:学习基本类型的包装类,如Integer、...
Java API 学习总结 Java 是一种广泛使用的面向对象的编程语言,它的API(Application Programming Interface)提供了大量的类和接口,使得开发者能够高效地构建各种应用程序。本文将重点关注Java的基础知识,特别是...
Java中的枚举是一种强大的工具,它允许...总结来说,这个PPT教案深入浅出地介绍了Java枚举的特性以及如何利用枚举实现设计模式,尤其是单例模式,同时也展示了枚举在增强类型安全性、简化代码以及在模式中的应用价值。
这份"Java 基础核心总结_.zip"文件显然包含了学习Java编程所必需的重要知识点,旨在帮助初学者或开发者巩固基础。让我们逐一深入探讨这些主题: 1. **Java概述**:Java是一种跨平台、面向对象的编程语言,由Sun ...
这个"java_se 学习总结项目"包含了丰富的Java学习资料,旨在帮助开发者深入理解Java编程语言,提升技能。以下是对这个项目中可能包含的知识点的详细说明: 1. **Java基础**: - **语法特性**:包括变量、数据类型...
java基础学习总结文本1,格式解释说明: switch:说明这是switch语句。 表达式:可以是byte,short,int,char JDK5以后可以是枚举 JDK7以后可以是字符串 case:后面的值就是要和表达式进行比较的值 break:表示程序...
"java基础总结资料"涵盖了Java语言的核心概念,是学习和复习Java基础知识的重要资源。以下是一些主要的知识点: 1. **Java语法基础**:包括变量声明、数据类型(基本类型和引用类型)、运算符、流程控制(如if语句...
#### 二、Java枚举的基本概念 1. **什么是Java枚举?** - 枚举(`enum`)是Java中的一种特殊类,它只能包含固定数量的实例。 - 枚举中的每个元素都是该类型的实例,它们是类的成员,并且默认是静态和final的。 - ...
这篇PDF文档,"Java学习路线总结,搬砖工逆袭Java架构师(全网最强)(csdn)",提供了全面的学习路径,旨在帮助Java初学者到进阶者逐步提升技能。 首先,JavaSE(Java标准版)是所有Java学习的基础,它涵盖了Java...
本文将基于“Java学习总结(2023/03/19)”的主题,深入探讨Java的核心概念、设计模式以及最佳实践,结合《Effective Java》的学习心得,为初学者和进阶者提供一份详尽的指南。 首先,Java语言的基础知识包括语法、...
本资源"Java最全知识总结思维导图"提供了全面的Java学习路径和关键知识点的概览,旨在帮助初学者和有经验的开发者系统地理解和掌握Java的核心概念。 1. **数据库**: Java在数据库交互方面主要依靠JDBC(Java ...
总结,Java枚举提供了比静态常量更安全、更易于管理的方式来表示固定的、有限的数据集。枚举不仅提高了代码的可读性和安全性,还为开发者提供了许多便利的功能。在实际编程中,合理利用枚举可以显著提升代码质量。
总结来说,Java的泛型和枚举都是为了提升代码的灵活性和安全性。泛型提供了一种方式来编写可复用的类型安全的代码,而枚举则提供了一种创建常量集合和实现枚举类型的策略。熟练掌握这两个特性,将有助于编写出更健壮...
### Java中枚举类型的使用详解 #### 一、引言 在软件开发过程中,经常会遇到需要定义一组固定的常量的情况,比如系统中的状态值、选项等。这些常量的定义方式直接影响到代码的可读性、可维护性和扩展性。在Java...
3. **枚举**:枚举是Java中的一种特殊类,用于定义一组固定的常量,提高了代码的可读性和安全性。 4. **注解(Annotation)**:注解提供了一种元数据,用于向编译器或JVM提供关于代码的附加信息,例如用于代码生成...