Java,面向对象,枚举类

编程入门 行业动态 更新时间:2024-10-11 23:18:07

Java,<a href=https://www.elefans.com/category/jswz/34/1769334.html style=面向对象,枚举类"/>

Java,面向对象,枚举类

枚举类型本质上也是一种类,只不过这个类的对象是有限的、固定的几个,不能让用户随意创建。 场景: 开发中,如果针对于某个类,它的实例的个数是确定的。则推荐将此类声明为枚举类。 如果枚举类的实例只有一个,则可以看作是单例的实现方式。 在jdk5.0之前,使用 自定义枚举类的方法。步骤如下: 1. 私有化类的构造器 2. 声明当前类的对象的实例变量 , 要用 final 修饰 3. 提供 get 方法 4. 创建类的实例 // 要用 psf public static final )修饰,变为全局常量 以季节的枚举为例:
//自定义枚举类
class Season{//2.声明当前类的对象的实例变量,要用final修饰private final String seasonName;//季节的名称private final String seasonDesc;//季节的描述//1.私有化类的构造器private Season(String seasonName,String seasonDesc){this.seasonName = seasonName;this.seasonDesc = seasonDesc;}//3.提供get方法public String getSeasonName(){return seasonName;}public String getSeasonDesc(){return seasonDesc;}//4.创建类的实例//要用psf(public static final)修饰,变为全局常量public static final Season Spring = new Season("春天","花开的季节");public static final Season Summer = new Season("夏天","炎热的季节");public static final Season Autumn = new Season("秋天","丰收的季节");public static final Season Winter = new Season("冬天","寒冷的季节");@Overridepublic String toString(){return "Season{" +"seasonName='" + seasonName + '\'' +", seasonDesc='" + seasonDesc + '\'' +'}';}
}

在jdk5.0时,加入使用 enum定义枚举类。步骤如下: 1. 创建对象,必须在枚举类的开头声明多个对象。对象之间使用逗号隔开。 2. 声明当前类的对象的实例变量 , 要用 final 修饰 3. 私有化类的构造器 3. 提供 get 方法 还是以季节的枚举为例:
//jdk5.0中使用enum关键字定义枚举类enum Season1{//1.创建对象,必须在枚举类的开头声明多个对象。对象之间使用逗号隔开。Spring("春天","花开的季节"),Summer("夏天","炎热的季节"),Autumn("秋天","丰收的季节"),Winter("冬天","寒冷的季节");//2.声明当前类的对象的实例变量,要用final修饰private final String seasonName;//季节的名称private final String seasonDesc;//季节的描述//3.私有化类的构造器private Season1(String seasonName,String seasonDesc){this.seasonName = seasonName;this.seasonDesc = seasonDesc;}//3.提供get方法public String getSeasonName(){return seasonName;}public String getSeasonDesc(){return seasonDesc;}}

Enum类: ①使用enum定义的枚举类,默认其父类是java.lang.Enum类。(所以不能再定义其他父类) ②Enum类中的常用方法: (如果sout输出为对象名,即默认为调用对象名.toString( )方法) String  toString( ) : 默认返回的是常量名(对象名),可以继续手动重写该方法。 String  name( ) : 默认返回当前枚举对象的名称,当toString被重写了,想获得枚举类对象的名称,即用name( ) static  枚举类型[ ] values( ) : 返回枚举类型的对象数组。该方法可以很方便的遍历所有的枚举值,为静态方法。 具体的使用如下:(结果为四个季节(即四个对象名))
Season1[] values = Season1.values();
for (int i = 0; i < values.length; i++){System.out.println(values[i]);
}
static  枚举类型[ ] valueof( String  name ) : 返回当前枚举类对象名为name的枚举对象。(如果枚举类中不存在名为name的对象,则报错。) int  ordinal( ) : 返回当前枚举常量的次序号,默认从零开始。(次序号即在枚举类中声明位置的排序) 枚举类实现接口: 情况①:枚举类实现接口,在枚举类中重写接口中的抽象方法。当通过不同的枚举类的对象调用此方法时,执行的时是一个方法。 情况②:枚举类实现接口,在枚举类的每个对象中重写接口中的方法。操作:在对象后面加上{},在{}里面重写接口中的方法,即为在对象中重写接口中的方法。 具体操作如下:
public class SeasonTest2
{}interface Info
{void show();
}
enum Season2 implements Info
{//1.创建对象,必须在枚举类的开头声明多个对象。对象之间使用逗号隔开。Spring("春天","花开的季节"){public void show(){System.out.println("春");}},Summer("夏天","炎热的季节"){public void show(){System.out.println("夏");}},Autumn("秋天","丰收的季节"){public void show(){System.out.println("秋");}},Winter("冬天","寒冷的季节"){public void show(){System.out.println("冬");}};//2.声明当前类的对象的实例变量,要用final修饰private final String seasonName;//季节的名称private final String seasonDesc;//季节的描述//3.私有化类的构造器private Season2(String seasonName,String seasonDesc){this.seasonName = seasonName;this.seasonDesc = seasonDesc;}//3.提供get方法public String getSeasonName(){return seasonName;}public String getSeasonDesc(){return seasonDesc;}@Overridepublic String toString(){return "Season2{" +"seasonName='" + seasonName + '\'' +", seasonDesc='" + seasonDesc + '\'' +'}';}
}

更多推荐

Java,面向对象,枚举类

本文发布于:2023-11-16 16:57:16,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1627970.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:面向对象   Java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!