「java枚举类型比较」java中枚举类型
今天给各位分享java枚举类型比较的知识,其中也会对java中枚举类型进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、Java的枚举值能不能用==比较
- 2、怎么比较两个枚举类型是否相等
- 3、java中如何判断一个变量是否属于某个枚举类型中的元素?
- 4、JAVA的枚举类型有什么特点?
- 5、请问java中比较枚举类对象值相等是用==还是equals
- 6、java中枚举类型能不能拿来比较
Java的枚举值能不能用==比较
一般在Java代码里面,涉及到比较2个值的问题,除了是简单的一般数据类型意外,字符串除外,我们都是使用==来判断是否相等的,但是对于字符串和对象以及封装类型的数据都是使用equals方法,来判断2个值是否相等。所以,当我看到别人的代码中,枚举类型变量,直接使用==,来判断是不是相等,很是诧异。然后就有了下面的调查和测试。
先看测试代码:
[java] view plain copy
/**
* 测试枚举比较,使用equal和==
*/
private static void testEnumEqual() {
GameEnum s1 = GameEnum.BIG;
GameEnum s2 = GameEnum.BIG;
GameEnum ss1 = GameEnum.SMALL;
System.out.println("s1 == s2:" + (s1 == s2));
System.out.println("s1.equals(s2):" + (s1.equals(s2)));
System.out.println("s1 == ss1:" + (s1 == ss1));
System.out.println("s1.equals(ss1):" + (s1.equals(ss1)));
}
再看使用的枚举代码:
[java] view plain copy
/**
* Created by lxk on 2017/2/23
*/
public enum GameEnum{
BIG,
SMALL,
FATTER
}
最后是代码执行的结果图:
结果是:
可以看到,使用== 和使用equals方法的执行结果是一样的。
为什么呢?
可以看下图,因为在Enum类里面,已经重写了equals方法,而方法里面比较就是直接使用==,来比较2个对象的。所以,你在外边直接使用==也是可以的。
怎么比较两个枚举类型是否相等
如果是引用数据类型,那么就是判断两个对象在内存中的地址是否相等;如果是基本数据类型,那就是判断两个值是否相等 equals:判断两个对面的值字符串是否相等 对面枚举来说,使用equals和==是一样的。
写一个main方法来测试比较:
public class Test {
public static void main(String[] args) {
Language enumObj = Language.JAVA;
if (enumObj == Language.JAVA) {
System.out.println("Welcome Java");
} else if (enumObj == Language.NET) {
System.out.println("Welcome .Net");
} else if (enumObj == Language.NODE) {
System.out.println("Welcome Node JS");
} else if (enumObj == Language.PYTHON) {
System.out.println("Welcome Python");
} else if (enumObj == Language.RUBY) {
System.out.println("Welcome Ruby");
} else {
System.out.println("Hello World");
}
}
}
结果输出:
Welcome Java
扩展资料:
枚举类型放在窗体模块、标准模块或共用模块中的声明部分,通过enum语句来定义。
格式:[public|private] enum name
membername[=constantexpression]
membername[=constantexpression]
(maomi)
…..
End enum
public:表示该枚举类型在整个工程中都是可见的(缺省的)
private:表示枚举类型只在所声明的模块中是可见的。Name: 枚举类型的名称。必须是一个合法的VB标识符,在定义该枚举类型的变量或参数时用该名称来指定类型.
参考资料来源:百度百科-枚举类型
java中如何判断一个变量是否属于某个枚举类型中的元素?
接口 Enumeration的两个函数 boolean hasMoreElements()测试此枚举是否包含更多的元素。 nextElement()如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。 利用这两个函数,利用while循环就可以读取里面的元素,当然读取出来得元素通过强制转换,就可以和变量进行比较 。
枚举其实就是一种类型,跟int, char 这种差不多,就是定义变量时限制输入的,你只能够赋enum里面规定的值。
枚举类型是JDK5.0的新特征。Sun引进了一个全新的关键字enum来定义一个枚举类。下面就是一个典型枚举类型的定义:
Java代码:
public enum Color{
RED,BLUE,BLACK,YELLOW,GREEN
}
显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类。
而这些类都是类库中Enum类的子类(java.lang.Enum)。
它们继承了这个Enum中的许多有用的方法。
我们对代码编译之后发现,编译器将enum类型单独编译成了一个字节码文件:Color.class。
JAVA的枚举类型有什么特点?
1 特殊类型的常量值列表
2 类型是枚举
3 声明在类外和类内,不能为方法中
4 声明在类外部的,不能为static ,final,abstract,protected,private
5 可以有构造方法,普通方法,变量跟常量代码块
6 可以给构造方法传参
7 构造方法可以有参可以重载
8 构造方法不能直接引用,必须总是在初始化时被调用
9 ;在声明的结尾是可选的
全手打 望采纳
请问java中比较枚举类对象值相等是用==还是equals
用==;equals是比较两个字符串类型的数据是不是一致的。枚举类型都是用==的哈。
java中枚举类型能不能拿来比较
枚举类型直接用 == 比较即可,因为枚举本来就是单例模式的一种用法。
关于java枚举类型比较和java中枚举类型的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-07,除非注明,否则均为
原创文章,转载请注明出处。