1.垃圾数据冗余,我们要求输错了就要给提示,而不是默认!
class Person{ private String name; private String sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { if ("man".equalsIgnoreCase(sex) || "woman".equalsIgnoreCase(sex)) { this.sex = sex; }else{ this.sex = "man"; } } } public class EnumTest { public static void main(String[] args) { Person p = new Person(); p.setName("张三"); p.setSex("人妖"); System.out.println(p.getName()+"的性别是:"+p.getSex());//张三的性别是:man } }
2.优化 抛出异常,但是是运行时异常,我们想要的是在编译的时候就给我们提示,所以还是要继续优化...
public void setSex(String sex) { if ("man".equalsIgnoreCase(sex) || "woman".equalsIgnoreCase(sex)) { this.sex = sex; }else{ throw new RuntimeException("性别不能乱输呀"); } }
3.继续优化: Enum的雏形到来了
class Person{ private String name; private Gender sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public Gender getSex() { return sex; } public void setSex(Gender sex) {//接收Gender类型 this.sex = sex ; } } class Gender{//Enum的爷爷 String gender ; private Gender(String gender){this.gender = gender;}//构造器私有化,防止别人new 对象,随意改变数据! public static final Gender MAN = new Gender("man"); public static final Gender WOMAN = new Gender("wowan"); } public class EnumTest { public static void main(String[] args) { Person p = new Person(); p.setName("张三"); p.setSex(Gender.WOMAN); System.out.println(p.getName()+"的性别是:"+p.getSex().gender);//张三的性别是:wowan } }
4.Enum到来了!春天来了...
enum Gender{ MAN("man"),WOWAN("woman"); //枚举值必须放置第一行 String gender; private Gender(String gender){this.gender = gender;} } public class EnumTest { public static void main(String[] args) { Person p = new Person(); p.setName("张三"); p.setSex(Gender.MAN); System.out.println(p.getName()+"的性别是:"+p.getSex().gender);//张三的性别是:man } }
5.enum注意事项:
时间: 2024-10-16 11:41:54