Java 枚举和类的区别
枚举
包含一组常量合法的数据,不能创建枚举实例,也不能进行扩展。
package com.jtfr.demo;
public enum Week {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY , SUNDAY;
}
里面默认私有的构造方法,不能用 public 修饰
package com.jtfr.demo;
public enum Week {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY , SUNDAY;
Week(){
}
}
实际上“枚举”的每一个常量都是创建的自身,只是 枚举 自动简化了。
Enum如果有抽象接口,每个常量必须实现接口,这样也说明了,每个常量是创建了对象本身。
package com.jtfr.demo;
public enum Week {
MONDAY {
@Override
void getWeek() {
}
}, TUESDAY {
@Override
void getWeek() {
}
}, WEDNESDAY {
@Override
void getWeek() {
}
}, THURSDAY {
@Override
void getWeek() {
}
}, FRIDAY {
@Override
void getWeek() {
}
}, SATURDAY {
@Override
void getWeek() {
}
} , SUNDAY {
@Override
void getWeek() {
}
};
// 抽象接口必须实现。
abstract void getWeek();
}
枚举还可以实现接口
package com.jtfr.demo;
public interface IWeek {
void getWeek();
}
package com.jtfr.demo;
public enum Week implements IWeek{
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY , SUNDAY;
@Override
public void getWeek() {
System.out.println("枚举可以实现接口");
}
}
Java 枚举和类的区别的更多相关文章
- java枚举和constant使用区别
本文结合<Effective Java>第六章前半部分关于枚举的介绍和自己的理解及实践,讲解了Java枚举的知识点.文章发布于专栏Effective Java,欢迎读者订阅. 前言 你代 ...
- JAVA接口与类的区别
抽象类:一个类中有抽象方法,这个类就变成了抽象类.抽象类中class的前面必须有abstract修饰符.抽象类中可以有普通方法,也可以有抽象方法,而抽象方法的个数可以是0个,也可以是多个.子类继承父类 ...
- hadoop中Text类 与 java中String类的区别
hadoop 中 的Text类与java中的String类感觉上用法是相似的,但两者在编码格式和访问方式上还是有些差别的,要说明这个问题,首先得了解几个概念: 字符集: 是一个系统支持的所有抽象字符的 ...
- Java枚举解读
Java枚举 枚举类概念的理解与定义 一个类的对象是有限个,确定的,我们称此为枚举类. 当需要定义和维护一组常量时,强烈建议使用枚举类. 如果一个枚举类中只有一个对象,则可以作为单例模式的实现方式. ...
- java枚举类
enum关键字用于定义枚举类,若枚举只有一个成员, 则可以作为一种单例模式的实现方式. 枚举类对象的属性不应允许被改动, 所以应该使用 private final 修饰. 枚举类的使用 priva ...
- Java 枚举类详解
1. 枚举类定义 在某些情况下,一个类的对象是有限而且固定的,比如季节类,它只有4个对象,这种实例有限而且固定的类,在Java里被称为枚举类. 2. 早期实现枚举的方式 public static f ...
- Java 枚举类 详解
1.枚举是什么? Java中的枚举其实是一种语法糖,在 JDK 1.5之后出现,用来表示固定且有限个的对象.比如一个季节类有春.夏.秋.冬四个对象:一个星期有星期一到星期日七个对象.这些明显都是固定的 ...
- java枚举与.net中的枚举区别
通过一段时间的项目实践,发现java中的枚举与.net中的枚举有很大的差别,初期造成了我对java中的枚举一些错误理解及部分有缺陷的应用,其实追其原因还是因为我会习惯性的认为java的枚举在作用以及定 ...
- Java枚举类使用
用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. p ...
随机推荐
- java String练习题
package java07; /* 题目: 定义一个方法,把数组{1,2,3}按照指定格式拼接成一个字符串,格式参照如下:[word1#word2#word3] 思路: 1.首先准备一个int[]数 ...
- VMware Tool的新手简单安装
1.打开工具栏的虚拟机,点击安装VMware tool2.打开根目录的media文件夹,打开用户名命名的文件夹,复制VMxxx.tar.gz的压缩包3.粘贴到Home,4.在终端输入tar -zxvf ...
- Center os vi
vi /etc/virc set nu 设置所有文件显示行号 :1,$s/after/befer/g 全局替换 :%s/after/befer/g 全局替换 yy 复制一行 p 粘贴 yw 复制一个 ...
- 接口需要上一个接口的返回值(unittest)
import unittest,requests ''' 使用unittest框架的时候,这个接口需要上一个接口的返回值 ''' class Test_case(unittest.TestCase): ...
- spark大数据快速分析第二章
1.驱动程序通过一个SparkContext对象来访问Spark,此对象代表对计算集群的一个连接.shell已经自动创建了一个SparkContext对象.利用SparkContext对象来创建一个R ...
- 接口上传base64编码图片
package com.*.util; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io. ...
- boost timer
Boost.Timer provides clocks to measure code performance. At first, it may seem like this library com ...
- vue绑定属性、绑定class及绑定style
1.绑定属性 v-bind 或者 : 例如:<img :src="pic_src" /> <template> <div id="app& ...
- LintCode之回文数
题目描述: 我的代码: public class Solution { /* * @param num: a positive number * @return: true if it's a pal ...
- English-spoken
May i come in? 我可以进来么? May I introduce myself? 我能做个自我介绍么? I'm sorry I didn't hear that clearly. May ...