枚举类型
引入:定义一个方法,该方法的作用是计算两个int类型数据的商,如果计算成功则该方法返回1,如果执行失败则该方法返回0程序执行成功,但是该程序会存在风险:
分析:存在什么风险?
程序中的问题能在编译阶段解决的,绝对不会放在运行期解决。所以下程序可以引入枚举类型”。
- 什么情况下使用枚举类型:
不重复且有限的元素使用枚举类型
例子:
1、一周有多少天?
7天。像这样固定不变的一组数据,如果我们的程序有需要用到这“7天”的相关信息,例如:发工资分为工作日和周末,可以考虑使用枚举类型。
2、太阳系有多少个行星?
8个。当我们需要计算每个行星的表面重力的时候,像这样我们需要用到固定不变的一组信息中的每一个元素携带了不同的信息,可以考虑使用枚举类型。
3、计算器中的基础运算符。
加减乘除。像这样我们需要用到固定不变的一组信息中的每一个元素都决定了不同的行为的时候,可以考虑使用枚举类型。
4、web请求返回的状态。
比如:error为-1,success为0,未登录为-9等可以设为枚举类型。
- 示例代码:
public class EnumTest01 {
/*
* 定义一个方法,该方法的作用是计算两个int类型数据的商,如果计算成功则该方法返回1,如果执行失败则该方法返回0程序执行成功,但是该程序会存在风险:
* 分析:存在什么风险?
* 程序中的问题能在编译阶段解决的,绝对不会放在运行期解决。所以以下程序可以引入枚举类型"。
*/
public static void main(String[] args) {
int a = 10;
int b = 0;
int result = divide(a,b);
if (result==1) {
System.out.println("程序执行成功");
}else if (result==0) {
System.out.println("程序执行失败");
}
// 分析:存在什么风险?
// 程序中的问题能在编译阶段解决的,绝对不会放在运行期解决。所以下程序可以引入枚举类型"。
}
public static int divide(int a,int b) {
try {
int result = a / b;
return 1; // 成功
}catch (Exception e) {
return 0; // 失败
}
// 以上程序如果执行成功则返回1,如果没返回则返回0
}
}
class EnumTest02 {
public static Result divide(int a,int b) {
try {
int result = a / b;
return Result.SUCCESS; // 成功
}catch (Exception e) {
return Result.FALL; // 失败
}
// 以上程序如果执行成功则返回1,如果没返回则返回0
}
public static void main(String[] args) {
int a = 10;
int b = 0;
// 注意:声名类型是枚举名称而不是枚举类型
Result result = divide(a,b);
if (result==Result.SUCCESS) {
System.out.println("程序执行成功");
}else if (result==Result.FALL) {
System.out.println("程序执行失败");
}
}
}
enum Result{
// 定义一个枚举类型;
// 规范要求:必须全部大写
SUCCESS,FALL;