`

JAVA枚举类型实用代码示例。

    博客分类:
  • java
阅读更多
刚学枚举类型是总觉的枚举类型似乎多此一举,一直在想枚举类型有什么意义。
看到网络上很多枚举类型的例子,觉的很适合颜色调配这个案例,感觉枚举最大的意义是可以像对象一样操作。
自己结合枚举的优点写了一个实用的例子,代码会优雅和精简了许多,供参考。

package utils;
public enum LxzColor{
	Red(255,0,0),
	Green(0,255,0),
	Blue(0,0,255),
	Black("#000000"),
	Purple("#6F00D2"),
    Yello("#F9F900"),
    White("#FFFFFF");
	
	//模式RGB色,HTML色
	enum ColorAdapter{
		All{
			public String toString(LxzColor clr) {
				return "["+"htmlcode="+clr.htmlcode+"  RGB={"+clr.r+","+clr.g+","+clr.b+","+"}"+"]";		
			   }
		},
		RGB{
			public String toString(LxzColor clr) {
				 return "["+clr.r+","+clr.g+","+clr.b+"]";
			   }
		},
		HTML{
			public String toString(LxzColor clr) {
				 return clr.htmlcode;
			   }
		};
		
		public String toString(LxzColor clr) {
			return "["+"htmlcode="+clr.htmlcode+"  RGB={"+clr.r+","+clr.g+","+clr.b+","+"}"+"]";
	   }
	}

	
	String htmlcode;
	int r;
	int g;
	int b;
	private LxzColor(String htmlcolor)
	{
		htmlcode=htmlcolor;
		r=Integer.valueOf(""+htmlcolor.charAt(1)+htmlcolor.charAt(2),16);
		g=Integer.valueOf(""+htmlcolor.charAt(3)+htmlcolor.charAt(4),16);
		b=Integer.valueOf(""+htmlcolor.charAt(5)+htmlcolor.charAt(6),16);

	}
	private LxzColor(int r,int g,int b)
	{
		this.r=r;
		this.g=g;
		this.b=b;
		String $r=String.valueOf(Integer.toHexString(r));
		$r=$r.length()==1?0+$r:$r;
		String $g=String.valueOf(Integer.toHexString(g));
		$g=$g.length()==1?0+$g:$g;
		String $b=String.valueOf(Integer.toHexString(b));
		$b=$b.length()==1?0+$b:$b;
		htmlcode=("#"+$r.toUpperCase()+$g.toUpperCase()+$b.toUpperCase());	

	}
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return super.toString();
	}
	
	public String toString(ColorAdapter type) {
		// TODO Auto-generated method stub
		return type.toString(this);
	}
}
 
package utils;

import utils.LxzColor.ColorAdapter;


public class dotest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println(LxzColor.values());
		
		//打印
		System.out.println(LxzColor.Black);
		System.out.println(LxzColor.valueOf("Red"));
		System.out.println(LxzColor.valueOf(LxzColor.Blue.toString()));
		System.out.println("----------------------");
		
		for(int i=0;i<LxzColor.values().length;i++)
		{
			System.out.println("序列数"+LxzColor.values()[i].ordinal());
			System.out.println(LxzColor.values()[i]);
			System.out.println(LxzColor.values()[i].toString(ColorAdapter.RGB));
			System.out.println(LxzColor.values()[i].toString(ColorAdapter.HTML));
			System.out.println(LxzColor.values()[i].toString());
			System.out.println("----------------------");
		}	
	}
}

 

 

输出结果

[Lutils.LxzColor;@61de33
Black
Red
Blue
----------------------
序列数0
Red
[255,0,0]
#ff0000
Red
----------------------
序列数1
Green
[0,255,0]
#00ff00
Green
----------------------
序列数2
Blue
[0,0,255]
#0000ff
Blue
----------------------
序列数3
Black
[0,0,0]
#000000
Black
----------------------
序列数4
Purple
[111,0,210]
#6F00D2
Purple
----------------------
序列数5
Yello
[249,249,0]
#F9F900
Yello
----------------------
序列数6
White
[255,255,255]
#FFFFFF
White
----------------------

 

0
7
分享到:
评论

相关推荐

    ian从其他地方的OReilly Java Cookbook中收集代码示例.zip

    《O'Reilly Java Cookbook》是一本深受程序员喜爱的书籍,它提供了大量实用的Java代码示例,帮助开发者解决日常编程中遇到的问题。这个压缩包“ian从其他地方的OReilly Java Cookbook中收集代码示例.zip”显然包含了...

    JAVA中的枚举类型2:高级特性.doc

    枚举类型是Java语言中一个非常实用且灵活的功能。通常情况下,我们将其用于表示一组固定的常量集合,如一周中的几天、颜色选项等。然而,Java中的枚举类型远不止于此。本文将深入探讨枚举类型的一些高级特性,包括...

    java枚举的一个例子

    在提供的代码示例中,定义了以下几个方法: - `getName(int index)`:根据索引返回枚举值的名称和路径。 - `toString()`:重写了默认的`toString()`方法,返回枚举值的名称、路径和索引。 - `getName()`、`set...

    Java2实用教程第5版源代码.rar

    `chapter15`的源码可能会展示如何动态获取类的信息,使用注解进行元编程,以及枚举类型的应用。 10. **第十三章和第八章**:可能涵盖其他重要主题,如泛型、枚举、IO流的高级用法或者GUI编程,具体要看书籍的安排。...

    Java2实用教程(第5版)习题解答及例子代码.zip

    这个压缩包文件“Java2实用教程(第5版)习题解答及例子代码.zip”是配套教学资源,包括了书中的习题解答和所有示例代码,旨在帮助读者更好地理解和实践所学知识。 1. **Java基础知识**:Java是一种面向对象的编程...

    java实用编程100例源代码(全集)

    "Java实用编程100例源代码(全集)"是一个集合,包含了100个用Java编写的实用示例,旨在帮助开发者深入理解和掌握Java编程技术。这个资源可能包括了各种常见问题的解决方案,涵盖了基础到高级的Java编程概念。 首先,...

    java2实用教程

    11. **枚举与注解**:学习Java枚举类型的应用,以及注解的定义和使用场景。 12. **IO流与NIO**:对比传统IO和NIO(New IO)的区别,介绍缓冲区、选择器和非阻塞I/O。 13. **网络编程**:讲解套接字(Socket)编程...

    Java大学实用教程(第2版)[耿祥义等编著][程序源代码]

    这些子文件夹代表了教材中的各个章节,每个章节可能包含了与该章教学内容相关的源代码示例。下面我们将对这些章节可能涉及的主要Java知识点进行详述: 1. **ch1** - Java简介:这一章通常会介绍Java的历史、特点、...

    常用的MIME TYPE类型枚举类Enum整理 静态方法直接检索使用

    易用性:采用枚举类型设计,避免了硬编码带来的困扰,使代码更加清晰、易于理解和维护。 高度定制:支持轻松添加自定义MIME类型,满足特定项目需求,无需担心未来格式的兼容性问题。 性能优化:由于使用了枚举而非...

    java2实用教程(第3版)耿祥义版课件及课本例子代码

    9. **枚举**:枚举类型是Java中的一种特殊类,用于表示有限的固定数量的值。 10. **JDBC**:Java数据库连接,用于在Java程序中访问和操作数据库。 课件部分,例如"Java 2实用教程课件(第3版第1章).ppt",通常...

    Java 2实用教程,第五版 。课后习题

    从提供的部分内容来看,包含了一系列的Java程序代码示例,这些示例可能用于练习Java的语法结构、面向对象概念以及算法实现。以下是对一些示例的解释: - **示例1**:演示了如何打印从'a'到'z'的字符。 - **示例2**...

    代码-Java2实用教程.7z

    这个压缩包包含了多个章节的代码示例,包括chapter1到chapter15,旨在帮助学习者通过实践来掌握Java语言的核心概念和技术。下面将详细阐述这些章节可能涉及的Java知识点。 1. **Chapter 1:基础语法** 这一章通常...

    Thinking in Java 4 源码 导入IDEA可直接运行

    除此之外,你还可以期待看到输入输出流、反射、注解、枚举、枚举类型、内省、动态代理等高级Java特性的源代码示例。这些内容将帮助你提升到更高级的Java编程水平。 总之,这份《Thinking in Java 4》的源码是一个...

    Java语言程序设计(完整版)第六版 教程示例源码

    这本书涵盖了从基础到高级的Java编程概念,通过35个章节的示例代码,帮助读者深入理解Java语言的核心特性。下面将详细阐述这些知识点。 1. **Java语言基础**:在最初的章节,你将学习Java的基本语法,包括变量声明...

    Java工作实用篇.pdf

    Java枚举 - **枚举特点**: - 枚举类型可以定义一组有限的常量值。 - 枚举类型可以有自己的方法、构造函数等。 - **实际应用**: - 用于定义状态机的状态。 - 作为配置项的枚举列表。 #### 8. 常用前端框架简介 ...

    java语言的简单入门67个常用的源代码

    "java语言的简单入门67个常用的源代码"集合提供了一个良好的学习起点,它包含了67个实用的代码示例,涵盖了Java语言的基础知识。 1. **基本语法**:Java的源代码以`.java`为扩展名。每个源文件可以包含一个公共类...

    Java程序设计实用教程(第3版)

    11. **枚举与注解**:枚举类型提供了常量集合,而注解则为编译器和JVM提供了元数据,用于代码的自解释和处理。 12. **JDBC**:Java数据库连接(JDBC)API是访问各种数据库的标准,包括SQL查询、事务处理和结果集...

    《Java程序设计实用教程(第2版)》例题

    11. **枚举与注解**: 通过例题,了解枚举类型(enum)的使用,以及自定义注解和元注解的创建与应用。 12. **泛型**: 书中例题会涵盖泛型类、泛型方法和通配符的使用,以提高代码的类型安全性和重用性。 13. **GUI...

    java编程示例,比较实用的

    9. **枚举类型**:Java 5引入的枚举,提供了一种安全的常量表示方式。 10. **Swing或JavaFX GUI**:用于创建图形用户界面,提供丰富的组件和布局管理器。 11. **网络编程**:Java的Socket类和ServerSocket类用于...

    Java2实用教程第6版代码.zip

    13. **枚举类型**:枚举类型是Java 5引入的新特性,用于定义一组预定义的常量。 14. **Lambda表达式和函数式编程**:Java 8引入了Lambda表达式,简化了函数式编程,使得编写简洁、高效的代码成为可能。 15. **模块...

Global site tag (gtag.js) - Google Analytics