枚举应用五

复杂枚举结构和简单枚举结构混合应用

混合枚举

 1 package com.yeepay.sxf.euma;
 2 /**
 3  * 简单的数据结构和复杂的数据结构枚举
 4  * @author sxf
 5  *
 6  */
 7 public enum Category {
 8     /**
 9      * 简单的枚举
10      */
11     Memey("记忆大脑",WorkName.ONECLASS),
12
13     /**
14      * 复杂的枚举
15      */
16     DORYS{
17         @Override
18         public String findName() {
19             return "我是对的";
20         }
21     };
22
23     //变量名
24     private String name;
25     private WorkName workName;
26
27     //简单枚举的构造函数
28     private Category(String name,WorkName workName){
29         this.name=name;
30         this.workName=workName;
31     }
32
33     //构造函数(复杂枚举结构构造函数)
34     private Category() {
35
36     }
37
38
39     //普通方法(复杂枚举结构方法可重写)
40     public String findName(){
41         return "";
42     }
43
44     public String getName() {
45         return name;
46     }
47     public void setName(String name) {
48         this.name = name;
49     }
50     public WorkName getWorkName() {
51         return workName;
52     }
53     public void setWorkName(WorkName workName) {
54         this.workName = workName;
55     }
56
57
58
59 }

其他枚举(其中看到的枚举,参考上一篇枚举博客)

 1 package com.yeepay.sxf.euma;
 2 /**
 3  * 枚举间的结合使用
 4  * @author sxf
 5  */
 6 public enum WorkName {
 7     /**
 8      * 一班
 9      */
10     ONECLASS{
11
12         @Override
13         public String[] getWorkNameAres() {
14             return new String[]{
15                     WorkNameAres.KONGTONGPAIYIBAN.getClassname(),
16                     WorkNameAres.WUDANGPAIYIBAN.getClassname()
17             };
18         }
19
20         @Override
21         public String getDesc() {
22             return "一班" ;
23
24         }
25
26         @Override
27         public WorkType getType() {
28             return WorkType.YIBAN;
29         }
30
31     },
32
33     /**
34      * 二班
35      */
36     TWOCLASS{
37
38         @Override
39         public String[] getWorkNameAres() {
40
41             return new String[]{
42                     WorkNameAres.EMEIPAIHUOJIAN.getClassname(),
43                     WorkNameAres.SHAOLEIPAIHUOJIAN.getClassname()
44             };
45         }
46
47         @Override
48         public String getDesc() {
49             return "二班";
50         }
51
52         @Override
53         public WorkType getType() {
54             return WorkType.HUOJIAN;
55         }
56
57
58     }
59     ;
60
61     /**
62      * 获取班级的具体名字
63      * @return
64      */
65     public abstract String[]  getWorkNameAres();
66     /**
67      * 获取详细名字
68      * @return
69      */
70     public abstract String getDesc();
71     /**
72      * 获取班级类型
73      * @return
74      */
75     public abstract WorkType getType();
76
77
78 }

测试类

 1 package com.yeepay.sxf.euma;
 2
 3
 4 public class Test {
 5     public static void main(String[] args) {
 6         test5();
 7     }
 8
 9
10     public static void test5(){
11         //获取枚举中的一个值
12         String name=Category.Memey.getName();
13         System.out.println("Test.test5(获取枚举对象中的一个值=>)"+name);
14         //获取枚举中的枚举
15         WorkName workName=Category.Memey.getWorkName();
16         //获取枚举的名字
17         String descname=workName.getDesc();
18         System.out.println("Test.test5(获取枚举的名字=>)"+descname);
19         //使用枚举中的方法
20         String abnameString=Category.DORYS.findName();
21         System.out.println("Test.test5(使用结构枚举值==>)"+Category.DORYS.name());
22         System.out.println("Test.test5(使用枚举中的方法==>)"+abnameString);
23     }
24 }

测试结果

Test.test5(获取枚举对象中的一个值=>)记忆大脑
Test.test5(获取枚举的名字=>)一班
Test.test5(使用结构枚举值==>)DORYS
Test.test5(使用枚举中的方法==>)我是对的

时间: 2024-10-30 01:57:25

枚举应用五的相关文章

C#:USB设备枚举 --转自CSDN作者:Splash

(一)DeviceIoControl的PInvoke /* ---------------------------------------------------------- 文件名称:DeviceIoControl.cs 作者:秦建辉 MSN:[email protected] QQ:36748897 博客:http://blog.csdn.net/jhqin 开发环境: Visual Studio V2010 .NET Framework 4 Client Profile 版本历史: V1

POJ--1062--昂贵的聘礼【dijkstra_heap+枚举】最短路

链接:http://poj.org/problem?id=1062 题意不说了,中文的 "但是如果他和某个地位较低的人进行了交易,地位较高的的人不会再和他交易,他们认为这样等于是间接接触,反过来也一样." 这句话一开始没懂,看discuss里说的之后才明白,实际上你能交易的等级范围为 l[i]~l[i]+m,或者l[i]-m~l[i],其中l[i]是第i个人的等级,m是等级差距限制. 这道题建图,如果对于第 i 个人来说,j 可以通过物品 + t 来交易第 i 个人的物品,则在他们之间

ZZNU - OJ - 2080 : A+B or A-B【暴力枚举】

2080 : A+B or A-B(点击左侧标题进入zznu原题页面) 时间限制:1 Sec 内存限制:0 MiB提交:8 答案正确:3 提交 状态 讨论区 题目描述 Give you three strings s1, s2 and s3. These strings contain only capital letters A,B,C,D,E. The letters that appear in the string represent a number from 0 to 9.Each

ATS回环检测

ATS的回环检测是通过判断本机ip是否出现在请求头中的Via头来实现. Machine::Machine(char const* the_hostname, sockaddr const* addr):函数初始化了本机的入口ip. 如果没有配置proxy.local.incoming_ip_to_bind,这个函数第二个参数是地址存的值是一个空的sockaddr结构体.函数调用了getifaddrs,这个api可以获取系统所有的网络接口信息,存到一个ifaddrs结构体中,这个机构体是一个链表结

【编程之美】24点游戏

一,概述 二十四点是一种益智游戏,它能在游戏中锻炼人们的心算,它往往要求人们将四个数字进行加减乘除(允许使用括号)求得二十四.然后将四个数字的计算公式表示出来. 二,中缀表达式求解 最直接的方法就是采用穷举法,游戏中可用的运算符只有四种,四个数字每个只能使用一次. 1)不考虑括号情况 4个数全排列:4!=24种 需要三个运算符,且运算符可以重复:4*4*4=64 总计:1536 2)考虑括号(是个难点) 自己想的加括号:四个数有五种加括号方式:  (AB)CD  . AB(CD). A(BC)D

面向对象的一些方法

原型函数中有些方法和属性我们也一定要知道,有时候我们需要他们来判断一些东西,以下是我们常用到一些方法: 1:toString(); 2:hasOwnProperty 3:isPrototypeOf 4:propertyIsEnumerable 5:instanceof 6:Object.defineProperty 第一种(toString):它一般是用来检测内置对象的类型,它不能用来检测构造函数和对象字面两,他们检测出来的结果都是”[object  Object]”,它的用法是,它一般不会单独

C语言基础(转载自大海笔记)

# C语言基础2015年03月26日10:04:411.    语言排行榜C——java——objective-C2.    进制:进制:进位机制.用普通的话讲,应该为人为的定义一种度量来标识一样东西.计算机常用的进制有:十进制.二进制.八进制和十六进制.?    十进制:0-9(十个指头)(进制表示基数:10)?    二进制:0,1(基数为2)?    八进制:0-7(基数为8)?    十六进制:0-9,A-F(基数为16)    可以有很多进制,比如分钟为60进制等等.3.    位权为

19-typedef

本文目录 一.typedef作用简介 二.typedef与指针 三.typedef与结构体 三.typedef与指向结构体的指针 四.typedef与枚举类型 五.typedef与指向函数的指针 六.typedef与#define 一.typedef作用简介 * 我们可以使用typedef关键字为各种数据类型定义一个新名字(别名). 1 #include <stdio.h> 2 3 typedef int Integer; 4 typedef unsigned int UInterger; 5

poj2586Y2K Accounting Bug

背景:再做这道题的时候,我严重怀疑我的英语能力,o(︶︿︶)o 唉,翻译了一个多小时. 思路:由于本题情况比较少,所以可以直接枚举出所有的情况,首先要找出五个月中最少亏损月份,然后就开始枚举出五种情况,最后输出即可. #include <stdio.h> void print(int n) { if(n<0) printf("Deficit\n"); else printf("%d\n",n); } void YinKui(int m,int s,