「javaenum赋值」java 赋值
今天给各位分享javaenum赋值的知识,其中也会对java 赋值进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、Java中枚举类型怎么赋值?
- 2、java枚举类可以给其中的一个变量赋值吗
- 3、java 对象里面enum对象怎么赋值
- 4、java中如何将枚举值用循环输出?
- 5、java枚举问题
- 6、Java枚举中的方法调用问题
Java中枚举类型怎么赋值?
public enum Path {
PATH1("/home/acer/logs1"),
PATH2("/home/acer/logs2"),
PATH3("/home/acer/logs3"),
PATH4("/home/acer/logs4");
private String path;
Path(String path) {
this.path = path;
}
public String getPath() {
return path;
}
//测试方法
public static void main(String[] args) {
System.out.println(Path.PATH1.getPath());
System.out.println(Path.PATH2.getPath());
System.out.println(Path.PATH3.getPath());
System.out.println(Path.PATH4.getPath());
}
}
java枚举类可以给其中的一个变量赋值吗
枚举是 jdk1.4 的特性
给其中的一个赋值 需要点技巧
我直接上代码
java 对象里面enum对象怎么赋值
public enum Color {
RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
// 成员变量
private String name;
private 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;
}
// get set 方法
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;
}
}
java中如何将枚举值用循环输出?
java中可以私用enummap来保存枚举值,示例如下:
private static void testEnumMap() {
// 1. 演示定义 EnumMap 对象, EnumMap 对象的构造函数需要参数传入 , 默认是key 的类的类型
EnumMapLight, String currEnumMap = new EnumMapLight, String(
Light. class );
currEnumMap.put(Light. RED , " 红灯 " );
currEnumMap.put(Light. GREEN , " 绿灯 " );
currEnumMap.put(Light. YELLOW , " 黄灯 " );
// 2. 遍历对象
for (Light aLight : Light.values ()) {
System. out .println( "[key=" + aLight.name() + ",value="
+ currEnumMap.get(aLight) + "]" );
}
}
java枚举问题
package com.ljq.test;
/**
* 枚举用法详解
*
* @author jiqinlin
*
*/
public class TestEnum {
/**
* 普通枚举
*
* @author jiqinlin
*
*/
public enum ColorEnum {
red, green, yellow, blue;
}
/**
* 枚举像普通的类一样可以添加属性和方法,可以为它添加静态和非静态的属性或方法
*
* @author jiqinlin
*
*/
public enum SeasonEnum {
//注:枚举写在最前面,否则编译出错
spring, summer, autumn, winter;
private final static String position = "test";
public static SeasonEnum getSeason() {
if ("test".equals(position))
return spring;
else
return winter;
}
}
/**
* 性别
*
* 实现带有构造器的枚举
*
* @author jiqinlin
*
*/
public enum Gender{
//通过括号赋值,而且必须带有一个参构造器和一个属性跟方法,否则编译出错
//赋值必须都赋值或都不赋值,不能一部分赋值一部分不赋值;如果不赋值则不能写构造器,赋值编译也出错
MAN("MAN"), WOMEN("WOMEN");
private final String value;
//构造器默认也只能是private, 从而保证构造函数只能在内部使用
Gender(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
/**
* 订单状态
*
* 实现带有抽象方法的枚举
*
* @author jiqinlin
*
*/
public enum OrderState {
/** 已取消 */
CANCEL {public String getName(){return "已取消";}},
/** 待审核 */
WAITCONFIRM {public String getName(){return "待审核";}},
/** 等待付款 */
WAITPAYMENT {public String getName(){return "等待付款";}},
/** 正在配货 */
ADMEASUREPRODUCT {public String getName(){return "正在配货";}},
/** 等待发货 */
WAITDELIVER {public String getName(){return "等待发货";}},
/** 已发货 */
DELIVERED {public String getName(){return "已发货";}},
/** 已收货 */
RECEIVED {public String getName(){return "已收货";}};
public abstract String getName();
}
public static void main(String[] args) {
//枚举是一种类型,用于定义变量,以限制变量的赋值;赋值时通过“枚举名.值”取得枚举中的值
ColorEnum colorEnum = ColorEnum.blue;
switch (colorEnum) {
case red:
System.out.println("color is red");
break;
case green:
System.out.println("color is green");
break;
case yellow:
System.out.println("color is yellow");
break;
case blue:
System.out.println("color is blue");
break;
}
//遍历枚举
System.out.println("遍历ColorEnum枚举中的值");
for(ColorEnum color : ColorEnum.values()){
System.out.println(color);
}
//获取枚举的个数
System.out.println("ColorEnum枚举中的值有"+ColorEnum.values().length+"个");
//获取枚举的索引位置,默认从0开始
System.out.println(ColorEnum.red.ordinal());//0
System.out.println(ColorEnum.green.ordinal());//1
System.out.println(ColorEnum.yellow.ordinal());//2
System.out.println(ColorEnum.blue.ordinal());//3
//枚举默认实现了java.lang.Comparable接口
System.out.println(ColorEnum.red.compareTo(ColorEnum.green));//-1
//--------------------------
System.out.println("===========");
System.err.println("季节为" + SeasonEnum.getSeason());
//--------------
System.out.println("===========");
for(Gender gender : Gender.values()){
System.out.println(gender.value);
}
//--------------
System.out.println("===========");
for(OrderState order : OrderState.values()){
System.out.println(order.getName());
}
}
}
Java枚举中的方法调用问题
定义一个简单的枚举代码
public enum WorkDay{ Monday,Tuesday,Wednesday,Thurday,Friday;//定义时,枚举值间有逗号隔开,最后用分号结束 }
废话不多说,直接上main 方法,拿去玩玩吧:
Java代码
public static void main(String []args) { /** * 枚举类型是一种类型,既然是类型,就是跟int,char他们 一样的, * 拿来定义变量,限制你对变量的赋值,就像 int a,你不能够给a一个 string的值 * 同理,一个枚举用来定义一个变量时,你只能够赋枚举值,其方式为 * "枚举名.值" */ WorkDay myworkday=WorkDay.Wednesday; /** 补充点switch的基础知识,switch语句括号中支持byte \short \char \int类型, * jdk 1.5以后支持枚举,所以,这里可以直接使用枚举变量myworkday。 * 呵呵,在jdk1.7后将switch将支持string */ switch (myworkday) { /*枚举重写了toString()方法,所以枚举变量的值不带前缀 * myworkday 里面的值应该是枚举括号里面的那几个 */ case Monday: System.out.println("you work day is Monday !"); break; case Tuesday: System.out.println("you work day is Tuesday!"); break; case Wednesday: System.out.println("you work day is Wednesday !"); break; case Thurday: System.out.println("you work day is Thurday !"); break; case Friday: System.out.println("you work day is Friday !"); break; } System.out.println("--------遍历所有值----------"); //----使用values()方法返回一个数组 for(WorkDay day:WorkDay.values()) { System.out.println(day); } //-----既然是数组,就可以统计大小 System.out.println("WorkDay 里面有 "+WorkDay.values().length+" 个元素"); //--------------------调用 ordinal()方法,返回枚举值在枚举中的索引,数组索引嘛,当然从0开始 System.out.println(WorkDay.Monday.ordinal()); System.out.println(WorkDay.Friday.ordinal()); //---默认实现java.lang.Comparable接口 ,测试测试 System.out.println(WorkDay.Monday.compareTo(WorkDay.Thurday));//结果应该是 -3 //---Monday的索引为0,Thurday为 3,0-3=-3, System.out.println(WorkDay.Friday.compareTo(WorkDay.Tuesday));//同理,结果应该为4-1=3, }
简单吧,来点狠的,前面说了,枚举有点像类,只是把class换成了enum,那么它跟一般的类一样可以添加属性或方法。
带方法与属性的enum代码
public enum WeAreJavaer{ chinese,java, spring, DB2, AIX; // 枚举列表,必须写在最前面,否则编译出错 private final static String location = "javaeye"; //定义一个属性 public static WeAreJavaer getInfomation() { WeAreJavaer flag=null; if (location.equals("javaeye")) { flag=java; } else { flag= chinese; } return flag; } }
老规矩,直接上main()方法测试:
写道
public static void main(String []ags) { System.out.println("---------------------测试调用枚举中写的方法-------------------------------"); System.out.println("直接调用枚举里面的方法: "+ WeAreJavaer.getInfomation()); }
3、来点更狠的。
你可以通过括号来给enum赋值,这样的话,你必须有带参的构造方法,还需要有一属性与方法,否则编译时会出错。
另外,你如果给enum里面的元素赋值的话,要么都赋,要么都不赋,不要东赋一个,西赋一个。
如果不赋值则不能写构造方法,如果你赋值了,而没有构造方法,编译还是通不过,废话不多少,来,看:
可赋值的enum代码
public enum People { xiaowang(20), xiaozhang(32),xiaoli(50), xiaogou(21); private final int age; People(int value) { //构造器只能是默认或者private, 从而保证构造函数只能在内部使用 this.age = value; } public int getAge() { return age; } }
好吧,啥也不说了,接下来的事,你懂地:
测试带值enum代码
public static void main(String[] args) {
for(People people:People.values()){
/*通过getValue()取得相关枚举的值*/
System.out.println(people+" 的年龄 :"+people.getAge());
}
}
javaenum赋值的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 赋值、javaenum赋值的信息别忘了在本站进行查找喔。