Java入门笔记 07-枚举类
介绍:在某些情况下,一个类的对象是有限且固定的,比如季节类,只有四个对象:春夏秋冬。这种实例有限而且固定的类,被称为枚举类。在JDK 5.0及以后,可以使用enum关键字定义枚举类,并且默认继承于java.lang.Enum类。
一、使用enum关键字定义枚举类:
1. 枚举类入门:最简单的枚举类可以仅仅定义枚举值,若需要使用该枚举类的某个实例,可以直接通过 枚举类名.枚举值 来调用。如下:
enum Season{
SPRING,SUMMER,AUTUMN,WINTER;
}
Season s = Season.SPRING;
System.out.println(s.toString());//SPRING
2. 枚举类进阶:枚举类是一种特殊的类,因此也可以定义成员变量、方法和构造器。
- 提供当前枚举类的对象,多个对象之间采用逗号隔开,使用分号结束;
- 声明Season对象的属性,使用private final修饰;
- 私有化构造器,并为对象属性赋值;
- 其他诉求:获取枚举类对象的属性。
在枚举类中列出枚举值时,实际上就是调用构造器创建枚举类对象,只是这里无须使用new关键字,也无须显式调用构造器。前面列出枚举值时无须传入参数,甚至无须使用括号,仅仅是因为前面的枚举类中包含无参数的构造器。
enum Season{
SPRING("春天","这是春天"),
SUMMER("夏天","这是夏天"),
AUTUMN("秋天","这是秋天"),
WINTER("冬天","这是冬天");
private final String seasonName;
private final String seasonDesc;
private Season(String seasonName,String seasonDesc){
this.seasonName = seasonName;
this.seasonDesc = seasonDesc;
}
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
}
3. 实现接口的枚举类:
interface Info{
void show();
}
enum Season implements Info{
SPRING("春天","这是春天"),
SUMMER("夏天","这是夏天"),
AUTUMN("秋天","这是秋天"),
WINTER("冬天","这是冬天");
private final String seasonName;
private final String seasonDesc;
private Season(String seasonName,String seasonDesc){
this.seasonName = seasonName;
this.seasonDesc = seasonDesc;
}
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
@Override
public void show() {
System.out.println("这是一个季节");
}
}
Season s = Season.SPRING;
System.out.println(s.toString());
s.show();
输出:
SPRING
这是一个季节
也可以将接口中的抽象方法放在枚举值中来实现,如下:
interface Info{
void show();
}
enum Season implements Info{
SPRING("春天","这是春天"){
public void show() {
System.out.println("这是春天");
}
},
SUMMER("夏天","这是夏天"){
public void show() {
System.out.println("这是夏天");
}
},
AUTUMN("秋天","这是秋天"){
public void show() {
System.out.println("这是秋天");
}
},
WINTER("冬天","这是冬天"){
public void show() {
System.out.println("这是冬天");
}
};
private final String seasonName;
private final String seasonDesc;
private Season(String seasonName,String seasonDesc){
this.seasonName = seasonName;
this.seasonDesc = seasonDesc;
}
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
}
Season s = Season.SPRING;
System.out.println(s.toString());
s.show();
输出:
SPRING
这是春天
Java入门笔记 07-枚举类的更多相关文章
- 0029 Java学习笔记-面向对象-枚举类
可以创建几个对象? n多个:大部分的类,都可以随意创建对象,只要内存不爆掉 1个:比如单例类 有限的几个:采用单例类的设计思路,可以只允许创建少数的几个特定的对象:还有就是枚举类. 创建少数几个对象, ...
- Java学习笔记之——枚举类
枚举可以限定类的值只是有限个,例如:星期,只有星期一到星期天 语法案例:
- Java入门笔记 06-常用类
介绍:本章将介绍Java的一些常用类,内容不完整,会在后续使用过程中逐步完善. 一. 字符串相关类: 1. String类介绍: |--- String类声明为final的,不能被继承: |--- 实 ...
- Java入门笔记 00-前言&目录
前言:这本笔记记录的是Java基础部分的学习内容,大部分内容总结性的,包括: ---01 Java基础语法 ---02 数组 ---03 面向对象 ---04 异常处理 ---05 多线程 ---06 ...
- [Java入门笔记] 面向对象编程基础(二):方法详解
什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...
- JAVA自学笔记07
JAVA自学笔记07 1.构造方法 1) 例如:Student s = new Student();//构造方法 System.out.println(s);// Student@e5bbd6 2)功 ...
- java面向对象程序设计(下)-枚举类
在某些情况下,一个类的对象是有限而且固定的,比如季节类,它只有4个对象;再比如行星类,目前只有8个对象,这些实例有限而且固定的类,在Java中被称为枚举类 JDK1.5新增了一个enum关键字,(它与 ...
- Java笔记:枚举类
1.一个类的实例是有限且固定的,这个类称为枚举类.比如季节类,只有四个对象(春.夏.秋.冬) 2.手动实现一个枚举类(1)通过private将构造器隐藏起来(2)把这个类的所有可能实例都使用priva ...
- java双重检测或枚举类实现线程安全单例(懒汉模式)
双重检测实现 /** * 懒汉模式->双重同步锁单例模式 */ public class SingletonExample5 { private SingletonExample5() { } ...
随机推荐
- lnmp1.5一键安装包安装lnmpa后,添加站点
lnmp1.5一键安装包安装lnmpa后,添加站点 (1)添加站点 (2)配置apache配置文件 在/usr/local/apache/conf/vhost文件夹下,修改webApp站点配置文件ap ...
- PLSQL官网下载地址
记录一下 https://www.allroundautomations.com/registered/plsqldev.html
- 【HTML】三种方法使HTML单页面输入密码才能访问
方法一 <script type="text/javascript"> function password() { var testV = 1; var pass1 = ...
- linux 扩展内存
一.逻辑卷创建使用 https://www.cnblogs.com/xiaoluo501395377/archive/2013/05/24/3096087.html fdisk -l pvcreate ...
- python3练习100题——016
今天的题目比较容易了,旨在让人掌握datetime模块下的一些用法. 链接:http://www.runoob.com/python/python-exercise-example16.html 题目 ...
- matplotlib 做图通过弹出窗口展示 spyder
tools =>preferences=>Ipython console=>Graphics Graphics backend 中Backend 由Inline改为 Automati ...
- python使用libnum,gmpy2快速解RSA
直接贴出Pcat师傅的解题脚本 # -*- coding:utf8 -*- __author__='pcat@chamd5.org' import libnum import gmpy2 n=7306 ...
- MySql -- unique唯一约束
3.UNIQUE 约束 约束唯一标识数据库表中的每条记录. 创建一张测试表 CREATE TABLE `test`.`info`( `id` ) UNSIGNED NOT NULL AUTO_INCR ...
- xampp 软件端口占用
参考链接: https://jingyan.baidu.com/album/48b558e3ede7747f39c09a55.html?picindex=1 查看端口占用情况 参考资料: https: ...
- Strange Bank(找零问题)
题目描述 为了使取钱变得困难,某家银行在一次操作中只允许其客户提取下列金额之一: 1日元(日本的货币) 6日元,62(=36)日元,63(=216)日元,… 9日元,92(=81)日元,93(=729 ...