多例设计模式与枚举
package com.anby; public class mode { public enum student{ man,woman; } public enum student1{ man("男"),woman("女"); //枚举中不能直接定义成员,必须要首先定义枚举常量才能生命枚举中的成员 //也就是说,枚举相当于多例模式,只是简化了书写 //枚举常量 默认 被static finaly修饰 private String value; private student1(String str) { this.value=str; } } /** * @param args */ public static void main(String[] args) { Person man=Person.man; Person woman=Person.woman; Person woman2=Person.woman; System.out.println(man); System.out.println(woman); System.out.println(woman2); //此时打印的woman=woman2 //这里有点绕。。 //调用的是子类的方法 System.out.println(man.getAge()); System.out.println(woman.getAge()); } } abstract class Person { //私有化构造函数,通过内部成员进行初始化--传男 初始化男人,传女 初始化女人 //此时,对男女的年龄进行设置(通过内部类),在本类中提供一个抽象方法,用于外部访问该属性 //通过内部类,对年龄进行设置,外层类的抽象方法只是为了让本类型的实例进行访问 public static Person man=new Person("男"){ //这里也说明了,抽象类的内部类,可以对外部抽象类调用构造函数 public int getAge() { return 20; } }; public static Person woman=new Person("女"){ public int getAge() { return 22; } }; private String value; private Person(String value) { this.value=value; } public abstract int getAge(); //该抽象方法只是为了让实例调用该内部类中实现的方法 }