android 枚举字体,你不知道的枚举

为什么要使用枚举

优点

1、方法的参数使用枚举,这样可以限定参数的使用范围和值。

缺点

1、相比于静态变量,会占用更多的内存并且会产生更大的文件。

android建议是否使用枚举

android不建议使用枚举,详细的介绍请看下面的文章(绝对冲击你的思想)

枚举是什么

指将变量的值一一列出来,变量的值只限于列举出来的值的范围内。

举例:一周只有7天,一年只有12个月等。

枚举的实现方式一:class 实现的枚举

1、自定义枚举类型(关键字:静态常量 + 私有构造)

package com.example.test;

/**

* 自定义枚举

*/

public class Week {

//静态的常量

public static final Week MON = new Week();

public static final Week TUE = new Week();

public static final Week WED = new Week();

//私有构造

private Week(){

}

}

复制代码

使用方法如下

Week flag = Week.MON;

if (flag == Week.MON) {

Toast.makeText(this, "星期一", Toast.LENGTH_SHORT).show();

}

复制代码

2、自定义有参数枚举(关键字:静态常量 + 私有构造 + 参数)

package com.example.test;

/**

* 自定义枚举

*/

public class Week {

private final String name;

//静态的常量

public static final Week MON = new Week("星期一");

public static final Week TUE = new Week("星期一");

public static final Week WED = new Week("星期一");

//私有构造 + 参数

private Week(String name){

this.name = name;

}

public String getName(){

return name;

}

}

复制代码

使用方式如下:

Week flag = Week.MON;

if (flag == Week.MON) {

Toast.makeText(this, flag.getName(), Toast.LENGTH_SHORT).show();

}

复制代码

3、抽象类实现枚举类型(关键字:抽象方法+ 静态常量 + 私有构造)

package com.example.test;

import android.util.Log;

/**

* 定义枚举类型

*/

public abstract class Week {

private static final String TAG = Week.class.getSimpleName();

private final String name;

//静态的常量

public static final Week MON = new Week("星期一"){

@Override

public void show() {

Log.e(TAG,"星期一");

}

};

public static final Week TUE = new Week("星期二") {

@Override

public void show() {

Log.e(TAG,"星期二");

}

};

public static final Week WED = new Week("星期三") {

@Override

public void show() {

Log.e(TAG,"星期三");

}

};

//私有构造 + 参数

private Week(String name){

this.name = name;

}

public String getName(){

return name;

}

public abstract void show();

}

复制代码

使用方式如下:

Week flag = Week.MON;

if (flag == Week.MON) {

Toast.makeText(this, flag.getName(), Toast.LENGTH_SHORT).show();

}

复制代码

枚举的实现方式二:enum实现的枚举

1、利用enum实现枚举类

package com.example.test;

/**

* 利用enum实现枚举

*/

public enum Week {

MON,TUE,WED;

}

复制代码

使用方式如下:

Week flag = Week.MON;

if (flag == Week.MON) {

Toast.makeText(this, "星期一", Toast.LENGTH_SHORT).show();

}

复制代码

2、利用enum + 构造实现枚举

package com.example.test;

/**

* 利用enum + 构造实现枚举

*/

public enum Week {

MON("星期一"),TUE("星期二"),WED("星期三");

private final String name;

Week(String name) {

this.name = name;

}

public String getName(){

return name;

}

}

复制代码

调用方法如下:

Week flag = Week.MON;

if (flag == Week.MON) {

Toast.makeText(this, flag.getName(), Toast.LENGTH_SHORT).show();

}

复制代码

3、利用enum + 私有构造 + 抽象方法实现枚举

package com.example.test;

import android.util.Log;

/**

* 利用enum + 构造实现枚举

*/

public enum Week {

MON("星期一"){

@Override

public void show() {

Log.e(TAG,"星期一");

}

},

TUE("星期二"){

@Override

public void show() {

}

},

WED("星期三"){

@Override

public void show() {

}

};

private static final String TAG = Week.class.getSimpleName();

private final String name;

Week(String name) {

this.name = name;

}

public String getName(){

return name;

}

public abstract void show();

}

复制代码

4、枚举实现接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值