java 枚举 大小_Java枚举入门
枚举类(掌握)
枚举的诞生历史(了解)
在服装行业,衣服的分类根据性别可以表示为三种情况:男装、女装、中性服装。
private ? type;
public void setType(? type){
this.type = type
}
需求:定义一个变量来表示服装的分类?请问该变量的类型使用什么?
使用int和String类型,且先假设使用int类型,因为分类情况是固定的,为了防止调用者乱创建类型,可以把三种情况使用常量来表示。
public class ClothType {
public static final int MEN = 0;
public static final int WOMEN = 1;
public static final int NEUTRAL = 2;
}
注意:常量使用final修饰,并且使用大小字面组成,如果是多个单词组成,使用下划线分割。
此时调用setType方法传递的值应该是ClothType类中三个常量之一。但是此时依然存在一个问题——依然可以乱传入参数比如100,此时就不合理了。
同理如果使用String类型,还是可以乱设置数据。那么说明使用int或String是类型不安全的。那么如果使用对象来表示三种情况呢?
public class ClothType {
public static final ClothType MEN = new ClothType();
public static final ClothType WOMEN = new ClothType();
public static final ClothType NEUTRAL = new ClothType();
}
此时调用setType确实只能传入ClothType类型的对象,但是依然不安全,为什么?因为调用者可以自行创建一个ClothType对象,如:setType(new ClothType)。
此时为了防止调用者私自创建出新的对象,我们把CLothType的构造器私有化起来,外界就访问不了了,此时调用setType方法只能传入ClothType类中的三个常量。此时代码变成:
public class ClothType {
public static final ClothType MEN = new ClothType();
public static final ClothType WOMEN = new ClothType();
public static final ClothType NEUTRAL = new ClothType();
private ClothType() {}
}
高,实在是高!就是代码复杂了点,如果存在定义这种类型安全的且对象数量固定的类的语法,再简单点就更好了——有枚举类。
13.7.2.枚举类的定义和使用(掌握)
枚举是一种特殊的类,固定的一个类只能有哪些对象,定义格式:
public enum 枚举类名{
常量对象A, 常量对象B, 常量对象C ;
}
我们自定义的枚举类在底层都是直接继承了java.lang.Enum类的。
public enum ClothType {
MEN, WOMEN, NEUTRAL;
}
枚举中都是全局公共的静态常量,可以直接使用枚举类名调用。
ClothType type = ClothType.MEN;
因为java.lang.Enum类是所有枚举类的父类,所以所有的枚举对象可以调用Enum类中的方法.
String name = 枚举对象.name(); // 返回枚举对象的常量名称
int ordinal = 枚举对象.ordinal(); // 返回枚举对象的序号,从0开始
注意:枚举类不能使用创建对象
public class EnumDemo {
public static void main(String[] args) {
int ordinal = ClothType.MEN.ordinal();
String name = ClothType.MEN.name();
System.out.println(ordinal);
System.out.println(name);
new ClothType(); //语法报错
}
}
目前,会定义枚举类和基本使用就可以了,后面还会讲更高级的使用方式。
若要获得最好的学习效果,需要配合对应教学视频一起学习。需要完整教学视频,请参看https://ke.qq.com/course/272077。
java 枚举 大小_Java枚举入门相关推荐
- java枚举数字_Java枚举类型的使用,数值的二进制表示
一.Java枚举类型的使用 首先请看这段代码: packagejava上课;public classEnumTest {public static voidmain(String[] args) { ...
- java 枚举 接口_java枚举接口
java中的枚举类 枚举类(enum),与class和interface关键字地位相同. 枚举类是一个特殊的类,可以有自己的成员变量.方法.构造器,可以实现一个或多个接口.一个java源文件中只能有一 ...
- java 枚举 注解_Java枚举类和注解梳理
1. 枚举类 1. 枚举类的使用 枚举类的理解:类的对象只有有限个,确定的.我们称此类为枚举类. 当需要定义一组常量时,强烈建议使用枚举类. 如果枚举类中只有一个对象,则可以作为单例模式的实现方式. ...
- java枚举类型转换_java枚举类型enum值与整数的转换
java编程中偶尔会用到枚举,为了直观,我们通常将枚举值设置为形象的单词,方便理解和使用.枚举类型相当于数据库 中字典表,但是枚举只有字典表的值,缺少其他用来表示和值一一对应的字段,当我们在数据库中保 ...
- java枚举数字_Java 枚举 通过数字实例化枚举类型
package com.zjl.domain.enumtype; /** * 枚举类 * * @Author zjl * @Date 2018/06/27 */ public enum EnumTyp ...
- java枚举 数字_java 枚举
Java中枚举的线程安全性及序列化问题 --枚举是如何保证线程安全的 要想看源码,首先得有一个类吧,那么枚举类型到底是什么类呢?是enum吗?答案很明显不是,enum就和class一样,只是一个关键字 ...
- java枚举 赋值_java 枚举 - java 枚举构造函数赋值-java 枚举 set 赋值-嗨客网
Java枚举教程 我们已经了解了 Java枚举详解 语法 [public] enum 枚举类型名称{ 枚举对象1,枚举对象2,枚举对象3...枚举对象n; } 参数 参数 描述 [public] 可选 ...
- java输入枚举型_Java 枚举型为什么是静态的,以及是怎么实现的?
确实,枚举类型总让我们觉着怪怪的,无论是语法还是静态非静态,还是操作方法,总让人觉着它和数组.列表等格格不入.那到底是为什么呢? 我们从本质分析下java的枚举类型. 1 枚举类型初探 枚举类型,其语 ...
- ef 在此上下文中只支持基本类型或枚举类型_Java枚举不应该成为你成功路上得绊脚石,源码给你讲解清楚
现在在面试的过程中,基础得东西占的比重越来越高,尤其是对于Java底层得一些东西,比方说今天得内容---枚举,单纯说这些知识点其实并不难,甚至在日常得工作中用到的都不算多,但是,在面试的过程中会问到你 ...
最新文章
- php5.5 php5.6,php 5.5 5.6的区别有哪些
- 浅说国际根域名服务器与中国电信的镜像服务器
- python培训比较好的机构-学Python哪个机构好?老男孩Python培训班
- java16下载_java lombok下载
- SQL Server安全(8/11):数据加密(Data Encryption)
- 浮点数比较大小的时候不能直接用等号
- 阿里云张献涛:2021 弹性计算发生了哪些变化
- 【技术】jquery暂无图片替换
- 计算机子网掩码在线,IP地址计算器
- 云服务器维护包含哪些,云服务器维护内容
- 分子量(Molar Mass, ACM/ICPC Seoul 2007, UVa1586)java
- 【活动】VUCA时代下的项目管理:京东技术+系列论坛
- Pixel2Mesh-Tensorflow2
- ActivityManagerService解读之Activity启动初探
- error link1158 无法运行rc.exe
- token的使用方法
- Spark SQL: Error in query: undefined function错误的解决方法
- VELO3D宣布推出大幅面3D金属打印机Sapphire(R) XC,将生产率提高5倍,同时将成本降低75%
- 在创业的路上,关于预设的期待,一般人经常会犯什么错误?
- 点击button的样式改变