标签:方法 package 修饰符 java blank 注意 格式 作者 构造
枚举:一些方法在运行时,它需要数据不能是任意的,而必须是一定范围内的值,可以使用枚举解决
enum 类名{ 枚举值 }
例子
1 package com.dhb.enumeration; 2 3 /** 4 * @author DSHORE / 2018-6-21 5 * 6 */ 7 enum Sex{//枚举类 8 //相当于:public static final Sex man=new Sex("男"); 9 man("男") { 10 @Override 11 public void run() { 12 System.out.println("男人正在跑步"); 13 } 14 //相当于:public static final Sex woman=new Sex("女"); 15 },woman("女") { 16 @Override 17 public void run() { 18 System.out.println("女人正在游泳"); 19 } 20 }; 21 String value; 22 private Sex(String value){ 23 this.value=value; 24 } 25 //成员函数 26 public void getValue(){ 27 System.out.println("Value:"+value); 28 } 29 public abstract void run(); 30 } 31 32 public class Demo2 { 33 public static void main(String[] args) { 34 Sex sex=Sex.man;//获取枚举类对象 35 sex.value="男"; 36 sex.getValue(); //返回值:男 37 sex.run(); //返回值:男人正在跑步 38 } 39 }
1.枚举类也是一个特殊的类.
2.枚举值默认的修饰符是public static final
3.枚举值就是枚举值所属的类的类型,枚举值指向的是本类的对象
4.枚举类构造方法默认修饰符private
5.枚举类可以定义自己的成员变量与成员函数
6.枚举类可以定义自己的构造函数,单是构造函数修饰符必须是private
7.枚举类可以存在抽象的方法,但是枚举值必须去实现抽象方法
8.枚举值必须要位于枚举类的第一个语句
需求:定义一个用户的性别不能随意更改/实例化
方式1:(不用枚举)
1 package com.dhb.enumeration; 2 3 /** 4 * @author DSHORE / 2018-6-21 5 * 6 */ 7 class Gender{ //自定义一个性别类 8 String value; 9 public static final Gender man=new Gender("男"); 10 public static final Gender woman=new Gender("女"); 11 12 private Gender(String value){ 13 this.value=value; 14 } 15 } 16 17 class Person{//人员类 18 private String name; 19 private Gender sex; 20 public String getName() { 21 return name; 22 } 23 public void setName(String name) { 24 this.name = name; 25 } 26 public Gender getSex() { 27 return sex; 28 } 29 public void setSex(Gender sex) { 30 this.sex=sex; 31 } 32 } 33 34 public class Demo1 { 35 public static void main(String[] args) { 36 Person p=new Person(); 37 p.setName("张三"); 38 p.setSex(Gender.woman); 39 System.out.println("姓名:"+p.getName()+"\t,"+p.getSex().value);//返回值:姓名:张三 ,女 40 } 41 }
方式2:(用了枚举)
1 package com.dhb.enumeration; 2 3 /** 4 * @author DSHORE / 2018-6-21 5 * 6 */ 7 enum Gender{ //枚举类 8 man("男"),woman("女"); 9 String value; 10 private Gender(String value){ 11 this.value=value; 12 } 13 } 14 15 class Person{//人员类 16 private String name; 17 private Gender sex; 18 public String getName() { 19 return name; 20 } 21 public void setName(String name) { 22 this.name = name; 23 } 24 public Gender getSex() { 25 return sex; 26 } 27 public void setSex(Gender sex) { 28 this.sex=sex; 29 } 30 } 31 32 public class Demo1 { 33 public static void main(String[] args) { 34 Person p=new Person(); 35 p.setName("张三"); 36 p.setSex(Gender.woman); 37 System.out.println("姓名:"+p.getName()+"\t,"+p.getSex().value);//返回值:姓名:张三 ,女 38 } 39 }
原创作者:DSHORE 作者主页:http://www.cnblogs.com/dshore123/ 原文出自:https://www.cnblogs.com/dshore123/p/9210345.html 欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!) |
标签:方法 package 修饰符 java blank 注意 格式 作者 构造
原文地址:https://www.cnblogs.com/dshore123/p/9210345.html