笔记:

import java.lang.*;
/**一:枚举类 : enum Season implements info { s1(),s2(),s3(),s4() }; //s1--s4 放在Season类的最上面!
* 1.1.values() 返回一个包含整体的数组!
* 2.valueof(String name),返回对应name的类, 必须是枚举类对象的名字,否则报错!
* 3.实现接口,重写抽象方法 ,不同的枚举类可以有不同的方法
*/

枚举类代码:

interface info{
void show();
}
enum Season implements info{
Spring ("spring","春暖花开"){
@Override
public void show() {
//super.show();
System.out.println("春天在哪里!");
}
},
Summer("spring","夏日炎炎"){
public void show(){
System.out.println("夏荷才露尖尖角!");
}
},
Autumn("spring","秋高气爽"){
@Override
public void show() {
// super.show();
System.out.println("秋天像个傻子");
}
},
Winter("spring","白雪皑皑"){
@Override
public void show() {
super.show();
System.out.println("冬天来了,年来了!");
}
};
//1.提供类的属性,声明为private finall
private final String seasonName;
private final String seasonDesc;
//2.声明为final属性,在构造器中初始化
Season(String seasonName, String seasonDesc) {
this.seasonName = seasonName;
this.seasonDesc = seasonDesc;
}
//3.创建枚举类
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
//4.创建枚举类的对象为:public static final ,全局的常量 @Override
public String toString() {
return "Season{" +
"seasonName='" + seasonName + '\'' +
", seasonDesc='" + seasonDesc + '\'' +
'}';
} @Override
public void show() {
System.out.println("这是一个季节!");
}
}
public class Test_enum {
public static void main(String[] args) {
//1.values()
Season[] seasons= Season.values();
for(int i=0;i<seasons.length;i++)
System.out.println(seasons[i]);
//2.valueof(String name),必须是枚举类对象的名字,否则报错!
String str="Winter";
Season s1=Season.valueOf(str);
System.out.println("\n"+s1);
//2.1枚举Thread 的几个方法
System.out.println("\n"+"Thread枚举类的所有方法: ");
Thread.State[] states = Thread.State.values();
for(int i=0;i<states.length;i++)
System.out.print(states[i]+"\t");
System.out.println();
//3.实现接口,重写抽象方法 }
}

输出:

Season{seasonName='spring', seasonDesc='春暖花开'}
Season{seasonName='spring', seasonDesc='夏日炎炎'}
Season{seasonName='spring', seasonDesc='秋高气爽'}
Season{seasonName='spring', seasonDesc='白雪皑皑'} Season{seasonName='spring', seasonDesc='白雪皑皑'} Thread枚举类的所有方法:
NEW RUNNABLE BLOCKED WAITING TIMED_WAITING TERMINATED

手动创建等价的枚举类:

  //  手动创建'枚举类',
class Season{
//1.提供类的属性,声明为private finall
private final String seasonName;
private final String seasonDesc;
//2.声明为final属性,在构造器中初始化
public Season(String seasonName, String seasonDesc) {
this.seasonName = seasonName;
this.seasonDesc = seasonDesc;
}
//3.创建枚举类
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
//4.创建枚举类的对象为:public static final ,全局的常量
public static final Season Spring = new Season("spring","春暖花开");
public static final Season Summer = new Season("spring","夏日炎炎");
public static final Season Autumn = new Season("spring","秋高气爽");
public static final Season winter = new Season("spring","白雪皑皑");
@Override
public String toString() {
return "Season{" +
"seasonName='" + seasonName + '\'' +
", seasonDesc='" + seasonDesc + '\'' +
'}';
}
}

Java 基础 enum枚举类 的创建/使用/接口继承 ,以及手动创建枚举类的对象为:public static final的更多相关文章

  1. JAVA基础复习与总结<四> 抽象类与接口

    抽象类(Abstract Class) 是一种模版模式.抽象类为所有子类提供了一个通用模版,子类可以在这个模版基础上进行扩展.通过抽象类,可以避免子类设计的随意性.通过抽象类,我们就可以做到严格限制子 ...

  2. Java基础知识笔记第六章:接口

    接口 /* 使用关键字interface来定义一个接口.接口的定义和类的定义很相似,分为接口声明和接口体 */ interface Printable{ final int max=100; void ...

  3. Java基础知识强化18:抽象类、接口的区别 和 选择性实现接口方法

    1.抽象类和接口的区别 抽象类里面可以有非抽象的方法(可以没有抽象方法),接口里只能有抽象方法. 抽象类中的抽象方法声明时不能有大括号,而接口中的所有方法都没有大括号.  抽象类(abstract c ...

  4. java基础知识(6)---抽象类与接口

    抽象类: abstract抽象:不具体,看不明白.抽象类表象体现.在不断抽取过程中,将共性内容中的方法声明抽取,但是方法不一样,没有抽取,这时抽取到的方法,并不具体,需要被指定关键字abstract所 ...

  5. JAVA基础部分复习(四、抽象类与接口)

    抽象类与接口的定义: package cn.review.day02; /** * 抽象类 * 定义: * 1.抽象类使用关键字abstract修饰 * 2.抽象方法必须定义在抽象类中,抽象方法没有方 ...

  6. 【Java关键字-Interface】为什么Interface中的变量只能是 public static final

    三个关键字在接口中的存在原因:public:接口可以被其他接口继承,也可以被类实现,类与接口.接口与接口可能会形成多层级关系,采用public可以满足变量的访问范围: static:如果变量不是sta ...

  7. Java接口中的成员变量为什么必须声明为public static final?

    我想对于每个Java程序员来说,接口都不陌生,接口中的方法也经常使用.而接口中的成员变量,就显得用得少一点,而对于成员变量为什么必须声明为public static final,可能就更不清楚了,而且 ...

  8. 为什么java的接口的方法是public abstract修饰?为什么属性是public static final 修饰?

     为什么java的接口的方法是public abstract修饰? 1.首先要明白接口的定义和作用是什么: 接口定义:接口是一个全部由抽象方法组成的集合,里面都是抽象方法和常量,用interface修 ...

  9. 在JAVA中利用public static final的组合方式对常量进行标识

    在JAVA中利用public static final的组合方式对常量进行标识(固定格式). 对于在构造方法中利用final进行赋值的时候,此时在构造之前系统设置的默认值相对于构造方法失效. 常量(这 ...

随机推荐

  1. JWT(JSON Web Tokens)操作帮助类

    载荷实体: /// <summary> /// JWT载荷实体 /// </summary> public sealed class JWTPlayloadInfo { /// ...

  2. python3.7 完美安装

    在安装python3.7的过程中,我发现如果不加注意,pip3是无法被安装的.而这就不能算是完整安装python3了. 所以,我总结一下,如何完美安装python3.7.   依赖 yum insta ...

  3. APP 和小程序中通过日期格式获取时间戳的一个bug

    介绍一下背景:业务逻辑就不多说了,就说关键出问题的一步,需要将 2019-10-10 这个格式转换为时间戳.在不同平台不同场景下问题还很怪异 app上:ios 安卓线上的都有问题  ios模拟器没问题 ...

  4. JS 通过注册表调用启动本地软件

    (关键点:所有软件安装的注册表路径是不会变化的,这个注册表路径需沟通软件商家获取或者通过自己安装在注册表中查找得到) // 调用 注册表编辑类 方法 function run_jxpgj(){//进项 ...

  5. WUSTOJ 1279: Wallace and His Pet(Java)

    1279: Wallace and His Pet 题目   给出一句话(英文),单词总数不超过1000,每个单词不超过10个字符,一句话只有一个唯一的字符"."(句点).将这句话 ...

  6. go 通过赋值给 _ 来忽略序号和值

    go 语言中 只要想忽略的值都需要用 下划线 _ 来代替 package main import "fmt" func main() {     pow := make([]int ...

  7. css 样式合集

    td换行: style="word-wrap:break-word;word-break:break-all;" 超长省略号: table { table-layout: fixe ...

  8. c++学习---const 和 string

    当在两个文件定义了同名的const变量时,相对于定义了两个独立的变量 想要在一个文件中定义一个const变量并在其他文件中使用他:不管时声明还是定义,都加上extern关键字 因为const对象一经初 ...

  9. Destination高级特性

    一.组合队列 Composite Destinations 组合队列允许用一个虚拟的destination代表多个destinations.这样就可以通过composite destinations在 ...

  10. THUPC2019/CTS2019/APIO2019游记

    Day -? 居然还能报上thupc,我在队里唯一的作用大约是cfrating稍微高点方便过审.另外两位是lz和xyy. Day -2 我夫人生日! Day -1 lz和xyy的家长都来了带我飞.住在 ...