您的位置:首页 > 编程语言 > Java开发

Java之枚举

2013-04-24 22:58 225 查看
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(); //该抽象方法只是为了让实例调用该内部类中实现的方法

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: