首页 > 编程语言 >Java枚举的使用

Java枚举的使用

时间:2022-11-22 19:55:52浏览次数:40  
标签:Java name void System Antts 枚举 使用 println id

Java 枚举是一个特殊的类,一般内容为一组常量,或者是唯一的对象(单例对象)。

常用方法有:

    • values()     获取该枚举类中的所有常量,到一个数组中。
    • ordinal()    获取该常量的索引。
    • valueOf(String name)  通过name获取枚举常量。

 

内容为常量

表示一组常量,常量之间用,隔开。它们有默认索引,通过   ordinal()   方法获得。

public enum  Antts{
    AAA,BBB,CCC;
}
class Test{
    public static void main(String[] args) {
        System.out.println(Antts.AAA.ordinal());
        System.out.println(Antts.BBB.ordinal());
        System.out.println(Antts.CCC.ordinal());
    }
}

运行结果:

 


内容为对象

都是单例对象,对象的属性方法都在枚举类中构造。

public enum  Antts{
    AAA,BBB,CCC;//三个对象
int id; String name; public void setId(int id) { this.id = id; } public void setName(String name) { this.name = name; } } class Test{ public static void main(String[] args) { Antts.AAA.setId(21); System.out.println(Antts.AAA+" id:"+Antts.AAA.id+" name:"+Antts.AAA.name); Antts.BBB.setName("二狗子"); System.out.println(Antts.BBB+" id:"+Antts.BBB.id+" name:"+Antts.BBB.name); } }

运行结果:

属性、方法

1、构造器:默认私有,且只能私有。

2、可以有抽象方法,对象必须实现抽象方法。

示例代码:

public enum  LeaningEnum {
    //枚举里面的实例就是一个个对象,不过它们的属性都在外面。
    ONE_INSTANCE{
        @Override
        void sayHello() {
            System.out.println("ONE:Hello!");
        }
    },
    TOW_INSTANCE(2,"三蹦子"){
        @Override
        void sayHello() {
            System.out.println("TOW:Hello!");
        }
    };

    int id;
    String name;
    //构造器默认private,也只能是private。
    LeaningEnum(int id, String name) {
        this.id = id;
        this.name = name;
    }
    LeaningEnum() {
    }
    //抽象方法:类的每个实例都必须实现它。
    abstract void sayHello();
    //具体方法
    void sayLove(){
        System.out.println("love love love.");
    }

    public static void main(String[] args) {
        //返回枚举类中所有的常量(单例对象)。
        LeaningEnum[] enums=LeaningEnum.values();
        for(LeaningEnum temp:enums){
            temp.sayHello();
            temp.sayLove();
        }
        //获取指定字符串值的枚举常量。
        LeaningEnum temp = valueOf("TOW_INSTANCE");
        //获取索引。
        System.out.println(temp+"索引为:"+temp.ordinal());
    }
}

运行结果:

 

标签:Java,name,void,System,Antts,枚举,使用,println,id
From: https://www.cnblogs.com/lurenjia-bky/p/16916259.html

相关文章

  • Linux C编程 使用相对路径加载动态库-rpath和$ORIGIN
    商业程序如何加载自己的so使用LD_LIBRARY_PATH的缺点是要实现设置LD_LIBRARY_PATH。不够自动化。那么大型的商业程序是如何加载自己的so呢。这里以QtCreator为例。QtC......
  • MySQL简介、下载、密码修改及基本使用
    目录存取数据的演变史数据库软件应用史数据库的本质数据库的分类MySQL简介MySQL基本使用系统服务的制作密码相关操作SQL与NoSQL数据库重要概念基本SQL语句存取数据的演变......
  • 使用cmake构建C/C++项目和动态库
    编译C/C++文件时,很多时候都是直接使用像gccmain.c或者g++main.cpp这样的命令编译的。但是代码文件多了后,这样编译就很困难了。这时候就出现了MakeFile这个工具。......
  • C++ Builder使用FMX多平台框架(FireMonkey)开发安卓APP应用,底层是基于什么?
    【DelphiGuy】:底层是基于AndroidNDK的,JDK也可以调用。Delphi、C++Builder目前编译生成的安卓应用是基于ARM机器码的共享库.so(相当于DLL,在.APK中有一个java写的启动代码......
  • SpringAop是使用JDK代理还是使用CGLIB代理实现
    先说结论:在spring-aop的默认逻辑中,aop默认优先使用JDK代理,前提是目标对象是基于接口的实现类。源码如下:入口在AbstractAdvisingBeanPostProcessor.postProcessAfterInitia......
  • 使用推特群控能做好海外营销吗?
    Twitter群推王认为,要想使海外营销、品牌出海快速见效,推特营销对于跨境电商平台(比如东南亚电商平台来赞达)的跨境卖家是个很好的选择。推特允许用户观看所有人的推特内容,而不......
  • Java冒泡
    publicsortNode[]sort(){booleanflag=true;for(inti=0,len=arr.length-1;i<len;i++){for(intj=0;j<len-i-......
  • Jenkins服务器的部署与简单使用(第三周)
    Jenkins安装安装依赖:https://www.jenkins.io/zh/doc/book/installing/    #CPU、内存、磁盘安装Java8、在2.361.1及以上版本开始要求Java11:aptinstallopenj......
  • Mysql基本使用
    目录存取数据的演变史数据库软件应用史数据库的本质数据库的分类MySQL简介MySQL基本使用系统服务的制作密码相关操作SQL与NoSQL数据库重要概念基本SQL语句存取数据的演变......
  • (C++) atomic_flag的使用
    使用示例#include<atomic>#include<iostream>#include<thread>#include<vector>intmain(intargc,char**argv){constexprsize_tkLoopNum=10;std::......