重走java--Step 3

java基础(三)之枚举用法
用法一:常量

public enum Color {
    RED,GREEN,RED,YELLOW;
}
用法二:枚举中自定义方法
/**
 * 枚举中自定义方法
 */
public enum Color {
    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLOW("黄色", 4);
    //成员变量
    public String name;
    public int index;

//构造函数
    private Color(String name, int index) {
        this.name = name;
        this.index = index;
    }

//普通方法
    public static String getName(int index) {
        for (Color c : Color.values()) {
            if (c.getIndex() == index) {
                return c.name;
            }

}
        return null;
    }

public String getName() {
        return name;
    }

public void setName(String name) {
        this.name = name;
    }

public int getIndex() {

return index;
    }

public void setIndex(int index) {
        this.index = index;
    }
}
用法三:switch
public class TrafficLight {
    Color signal = Color.RED;

public void change() {
        switch (signal) {
            case RED:
                signal = Color.GREEN;
                break;
            case GREEN:
                signal = Color.YELLOW;
                break;
            case YELLOW:
                signal = Color.RED;
                break;
        }
    }
}
用法四:枚举实现接口
枚举继承了java.lang.Enum.java不支持多继承,但枚举可以实现接口。

用法五:枚举集合
枚举集合有EnumMap与EnumSet两种,EnumMap集合中的key值是枚举,value可以是任何类型,numSet保证集合中的元素不重复。
实例用法:
public static void testEnumMap() {
        EnumMap<Light, String> currLight = new EnumMap<Light, String>(Light.class);
        currLight.put(Light.GREEN, "绿灯");
        currLight.put(Light.RED, "红灯");
        currLight.put(Light.YELLOW, "黄灯");
        for (Light aLight : Light.values()) {

System.out.println("[key=" + aLight.name() + ",value="

+ currLight.get(aLight) + "]");

}
}

时间: 2024-11-04 20:42:05

重走java--Step 3的相关文章

Android基础学习【历史流程重走】 ---- Android入门基础(一)

一.历史回顾 随科技的迅速发展,当前已经全线进入4G时代,5G时代也即将开启.Android版本迭代迅速,如今已是6.0的版本.时不时可以看到,手机危害了当前人群的生活,如熬夜看手机会深度伤害眼睛,上班族路上低头党,聚会吃饭外只剩手机党等.确实存在一些情形,但是却无不在强调在当今社会手机在人的生活中,占有越来越重的地位.手机通讯,到手机娱乐.办公,以至于到手机管理自身财富.甚至于将来,手机将管理我们的车.房.技术的潮流不可阻挡,最好是做一个弄潮儿,次之可以"随波逐流".聊了很多题外话,

重学Java(一):与《Java编程思想》的不解之缘

说起来非常惭愧,我在 2008 年的时候就接触了 Java,但一直到现在(2018 年 10 月 10 日),基础知识依然非常薄弱.用一句话自嘲就是:十年 IT 老兵,Java 菜鸡一枚. 于是,我想,不如静下心来,重新读一遍那些经典的 Java 技术书,并且没读完一章就输出一篇原创技术文章.从哪一本开始呢?想了一想,还是从<Java 编程思想>开始吧!毕竟这本书赢得了全球程序员的广泛赞誉,从 Java 的基础语法到最高级特性,都能指导我们 Java 程序员轻松掌握. 记得刚上大学那会,就买了

走错了,就得重走

STST 这个想法认同吗? QX 我觉得很认同 YF 赞成,但考虑重新设计要成本,特别是机会成本 QX 另外我觉得很多设计有历史局限性,当时够用,但是随着业务发展,就会不够用 STST 快速编码的诱惑很大,一刻不提醒自己严格按照TDD的原则来行事,就导致复杂难以理解的设计 QX 就是自然感受,觉得该重构了就重构,这是迭代的过程 WB 设计与实现一样,也需要不断重构,去除腐臭,持续演进. STST 恩,确实是的,设计错了,就得在设计层面重构QX 设计还是基于需求和成本的,需求复杂了,自然设计就不够

重走丝绸之路:海尔如何探索全球生活智慧?

10月23日,海尔家电在上海召开"智爱扬帆,启迪灵感-海尔重走海上丝绸之路"发布会,正式宣布与著名航海家郭川一道,展开以"探索全球生活智慧"为主题的航行活动.据了解,本次重走丝绸之路活动将先后探索青岛.上海.广州.孟买.摩纳哥等航线沿岸城市独特的生活智慧,以激发用户生活灵感,带给用户更好地享受智爱生活的感受.根据媒体报道消息来看,此次海尔与郭川合作重走丝绸之路的另一个意义,还在于让中西文化在现代文明时代发生再一次的深度碰撞与交流. 作为倡导智爱生活的海尔家电而言,此

为什么我会选择走 Java 这条路?

阅读本文大概需要 2.8 分钟.   作者:黄小斜 文章来源:微信公众号[程序员江湖] 最近有一些小伙伴问我,为什么当初选择走Java这条路,为什么不做C++.前端之类的方向呢,另外还有一些声音:研究生不是应该去做算法方向么,本科生不就可以做开发了吗,为什么还要读研呢.其实吧,这个问题搁在不同人身上,回答可能也是完全不一样的.我可能还是主要以我的角度出发,结合一些读者的问题,来说一说为什么要选择Java这条路. 谈谈我的技术方向选择 我最早接触的语言应该是c,再后来又接触了前端.php.C#等语

重学Java(3):抽象类与接口

一.抽象类 1.抽象类不能被实例化,实例化要交给子类完成,它只需要一个子类就可以完成 2.抽象方法必须由子类来进行重写 3.如果一个类包含一个抽象方法,则该类必须定义成抽象类 4.抽象类中可以包含具体方法,也可以不包含 5.子类中的抽象方法不能与父类重名 6.abstract 不能与 final 同时修饰一个类 7.abstract 不能与 private.static.final 或者 native 并列修饰同一个方法 二.接口 接口是一种比抽象类更加抽象的“类”,接口本身并不是类.它不能直接

重学JAVA基础(八):锁的基本知识

1.线程状态 如上图,当我们新建一个线程,并start后,其实不一定会马上执行,因为只有操作系统调度了我们的线程,才能真正进行执行,而操作系统也随时可以运行其他线程,这时线程又回到可运行状态.这个过程是操作系统控制的,不是我们能控制的.我们能控制的是将线程变为blocked,并从blocked变为runable状态. 在以前实验的wait和notify中,我当时并没有注意到notify后会进行锁阶段,以为notify后直接进入runable状态,等待操作系统调度.  从上面的图中可以看到,我们n

重拾java系列一java基础(3)

这一章主要复习下以前所接触的算法, (1)选择排序法:在要排序的一组数中,选出最小的一个数与第一个位置的数交换:然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止. 1 /** 2 * 选择排序算法 在未排序序列中找到最小元素,存放到排序序列的起始位置 3 * 再从剩余未排序元素中继续寻找最小元素,然后放到前面已排序序列末尾. 4 * 以此类推,直到所有元素均排序完毕. 5 * 6 * @param numbers 7 */ 8 public stati

重拾Java回忆录(一):Java01基本数据类型和基本语句

编写java程序的基本的要求 1.编写java类其实就是编写java文件(默认的情况下类名和文件名要求一致) 2.类在编写的时候,应该放在一个包(package) 包的含义:一个文件夹的显示(文件的层次关系的反映) 包中的层次依靠 . 进行层进,用于区分不同的java文件 包之间的应用 1.创建类  package 包名(指明类的位置) 2.使用类  import 包名.类名(可以使用*代表全部) 基本数据类型: 1.标识符 命名的规则: 1.字母,下划线,数字,$,组成,但是数字不能作为开始