Java之枚举

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(); //该抽象方法只是为了让实例调用该内部类中实现的方法
    
}
posted @ 2013-04-24 22:58  尼姑哪里跑  阅读(183)  评论(0编辑  收藏  举报