java基础41 枚举(类)
1、概述
枚举:一些方法在运行时,它需要数据不能是任意的,而必须是一定范围内的值,可以使用枚举解决
2、枚举的格式
enum 类名{
枚举值
}
例子
package com.dhb.enumeration; /**
* @author DSHORE / 2018-6-21
*
*/
enum Sex{//枚举类
//相当于:public static final Sex man=new Sex("男");
man("男") {
@Override
public void run() {
System.out.println("男人正在跑步");
}
//相当于:public static final Sex woman=new Sex("女");
},woman("女") {
@Override
public void run() {
System.out.println("女人正在游泳");
}
};
String value;
private Sex(String value){
this.value=value;
}
//成员函数
public void getValue(){
System.out.println("Value:"+value);
}
public abstract void run();
} public class Demo2 {
public static void main(String[] args) {
Sex sex=Sex.man;//获取枚举类对象
sex.value="男";
sex.getValue(); //返回值:男
sex.run(); //返回值:男人正在跑步
}
}
3、枚举要注意的细节(上面例子的总结)
1.枚举类也是一个特殊的类.
2.枚举值默认的修饰符是public static final
3.枚举值就是枚举值所属的类的类型,枚举值指向的是本类的对象
4.枚举类构造方法默认修饰符private
5.枚举类可以定义自己的成员变量与成员函数
6.枚举类可以定义自己的构造函数,单是构造函数修饰符必须是private
7.枚举类可以存在抽象的方法,但是枚举值必须去实现抽象方法
8.枚举值必须要位于枚举类的第一个语句
4、实例
需求:定义一个用户的性别不能随意更改/实例化
方式1:(不用枚举)
package com.dhb.enumeration; /**
* @author DSHORE / 2018-6-21
*
*/
class Gender{ //自定义一个性别类
String value;
public static final Gender man=new Gender("男");
public static final Gender woman=new Gender("女"); private Gender(String value){
this.value=value;
}
} class Person{//人员类
private String name;
private Gender sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Gender getSex() {
return sex;
}
public void setSex(Gender sex) {
this.sex=sex;
}
} public class Demo1 {
public static void main(String[] args) {
Person p=new Person();
p.setName("张三");
p.setSex(Gender.woman);
System.out.println("姓名:"+p.getName()+"\t,"+p.getSex().value);//返回值:姓名:张三 ,女
}
}
方式2:(用了枚举)
package com.dhb.enumeration; /**
* @author DSHORE / 2018-6-21
*
*/
enum Gender{ //枚举类
man("男"),woman("女");
String value;
private Gender(String value){
this.value=value;
}
} class Person{//人员类
private String name;
private Gender sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Gender getSex() {
return sex;
}
public void setSex(Gender sex) {
this.sex=sex;
}
} public class Demo1 {
public static void main(String[] args) {
Person p=new Person();
p.setName("张三");
p.setSex(Gender.woman);
System.out.println("姓名:"+p.getName()+"\t,"+p.getSex().value);//返回值:姓名:张三 ,女
}
}
附:
package com.dhb.enumeration; /**
* @author DSHORE / 2018-6-21
*
*/
/*
* switch适用的数据类型:byte\short\int\char\String\枚举类型
*
* 注意:
* case后面跟的是枚举值,只需要单写枚举值即可,不需要在声明该枚举值是属于哪个枚举类的.
* */
enum Season{
spring("春季"),summer("夏季"),autumn("秋季"),winter("冬季季"); String value;
private Season(String value) {
this.value = value;
}
} enum Persons{
student("张三"),worker("劳动者"); String values;
private Persons(String values) {
this.values = values;
}
} public class Demo3 {
public static void main(String[] args) {
Season season = Season.summer;
Persons person = Persons.student;
Persons persons = Persons.worker;
switch (season) {
case spring:
System.out.println(season.value+",春暖花开..."+person.values+"是个"+persons.values);
break;
case summer:
System.out.println(season.value+",荷塘月色..."+person.values+"是个"+persons.values);
break;
case autumn:
System.out.println(season.value+",果实累累..."+person.values+"是个"+persons.values);
break;
case winter:
System.out.println(season.value+",银装素裹....."+person.values+"是个"+persons.values);
break;
}
}
}
运行结果图

|
原创作者:DSHORE 作者主页:http://www.cnblogs.com/dshore123/ 原文出自:https://www.cnblogs.com/dshore123/p/9210345.html 欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!) |
java基础41 枚举(类)的更多相关文章
- Java 基础 enum枚举类 的创建/使用/接口继承 ,以及手动创建枚举类的对象为:public static final
笔记: import java.lang.*; /**一:枚举类 : enum Season implements info { s1(),s2(),s3(),s4() }; //s1--s4 放在S ...
- 【Java基础】枚举类与注解
枚举类与注解 枚举类的使用 当需要定义一组常量时,强烈建议使用枚举类. 枚举类的理解:类的对象只有有限个,确定的. 若枚举只有一个对象, 则可以作为一种单例模式的实现方式. 枚举类的属性: 枚举类对象 ...
- 【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错
原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-impor ...
- 黑马程序员:Java基础总结----枚举
黑马程序员:Java基础总结 枚举 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 枚举 为什么要有枚举 问题:要定义星期几或性别的变量,该怎么定义?假设用1-7分别 ...
- Java基础之枚举
Java基础之枚举 作为1.5才增加的特性,枚举的使用并不是很多. 枚举其实就是一个比较特殊的类,就如同注解其实也是个特殊的接口一样(注解反编译之后没有了@符号).枚举使用enum关键字声明,通过反编 ...
- JAVA中的枚举类
某些情况下一个类的对象是有限而且固定的,例如性别就只有两个类(考虑大众情况).因此这种实例有限而且固定的类,java里面叫枚举类.枚举类的关键字是enum,一些基本的命名规则和文件命名等细节和一般的类 ...
- Java基础-DButils工具类(QueryRunner)详解
Java基础-DButils工具类(QueryRunner)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC ...
- Java基础之File类的使用
Java基础之File类的使用 1.File类的构造方法和常用方法 2.对File中listFile(FileNameFilter name)学习 3.与File文件类相关的实现 File类的构造方法 ...
- Java基础之枚举类型Enum的使用
Java基础之枚举类型Enum的使用 定义 public enum AccruedCleanEnum { SPREAD("1","发票"),OTHER(&quo ...
随机推荐
- HDU.2147 kiki's game (博弈论 PN分析)
HDU.2147 kiki's game (博弈论 PN分析) 题意分析 简单的PN分析 博弈论快速入门 代码总览 #include <bits/stdc++.h> using names ...
- oracle的学习笔记
Oracle的介绍 1. Oracle的创始人----拉里•埃里森 2. oracle的安装 [连接Oracle步骤](](https://img2018.cnblogs.com/blog/12245 ...
- 小议主子表INT自增主键插入记录的方法SQL server]教程
http://www.chinesejy.com/jishu/508/519/2006061781665.html 主子表最常见的大概就是用在进销存.MRP.ERP里面,比如一张销售订单,订单Orde ...
- webservice的接口协议(HTTPClient 、RestTemplate HttpURLConnection)
HTTP协议时Internet上使用的很多也很重要的一个协议,越来越多的java应用程序需要通过HTTP协议来访问网络资源. HTTPClient提供的主要功能: 1.实现了所有HTTP的方法(GET ...
- 不知道怎么改的尴尬R语言的ARIMA模型预测
数据还有很多没弄好,程序还没弄完全好. > read.xlsx("H:/ProjectPaper/论文/1.xlsx","Sheet1") > it ...
- linux tmux命令小结
http://note.youdao.com/noteshare?id=f1be507b4be27e53684b46a1424746b5
- Understanding the Bias-Variance Tradeoff
Understanding the Bias-Variance Tradeoff When we discuss prediction models, prediction errors can be ...
- 同一条sql语句,只是改变了搜索的条件,就很慢?
重建索引: ) 显示索引信息: dbcc showcontig('表名’) 具体参考:http://www.cnblogs.com/bluedy1229/p/3227167.html
- 浅谈iOS与社交化网络
CHENYILONG Blog 社交化网络 技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong ...
- 【leetcode 简单】 第五十六题 快乐数
编写一个算法来判断一个数是不是“快乐数”. 一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1.如 ...