Java面向对象-枚举的定义和特点以及底层分析
2018-01-31 16:55
351 查看
转载:http://blog.csdn.net/github_26672553/article/details/53198917
枚举是从Java5开始提供的一种新的数据类型,是一个特殊的类,就是固定的多个常量对象
定义格式:
2
3
4
我们自定义的枚举类型,在编译后(底层),都是直接继承于java.lang.Enum类的。
1、枚举的直接父类是java.lang.Enum,但是不能显示的继承Enum
2、枚举就相当于一个类,可以定义构造方法、成员变量、普通方法和抽象方法
3、默认私有的构造方法,即使不写访问权限也是
4、每个实例分别用于一个全局常量表示,枚举类型的对象是固定的,实例个数有限,不能使用new关键字。
5、枚举实例必须位于枚举中最开始部分,枚举实例列表的后面要有分号月其他成员相分隔
6、枚举实例后有花括号时,该实例是枚举的匿名内部类对象
1、创建一个性别的枚举
package one;
public enum Gender {
male,female;
}
2、创建一个Person类
package one;
public class Person {
String name;
int age;
Gender xb;
void info(){
System.out.println("我的名字叫"+name+",年龄:"+age+" 岁, 姓别为"+xb);
}
}
3、调用
package one;
public class TestPerson {
public static void main(String[] args) {
Person luo=new Person();
luo.name="小明";
luo.age=20;
luo.xb=Gender.female;
luo.info();
}
}
枚举是从Java5开始提供的一种新的数据类型,是一个特殊的类,就是固定的多个常量对象
定义格式:
[修饰符] enum 枚举类名 { 常量A,常量B,常量C; }1
2
3
4
我们自定义的枚举类型,在编译后(底层),都是直接继承于java.lang.Enum类的。
枚举类的特点
1、枚举的直接父类是java.lang.Enum,但是不能显示的继承Enum 2、枚举就相当于一个类,可以定义构造方法、成员变量、普通方法和抽象方法
3、默认私有的构造方法,即使不写访问权限也是
private。(假构造器,底层没有无参数的构造器)
4、每个实例分别用于一个全局常量表示,枚举类型的对象是固定的,实例个数有限,不能使用new关键字。
5、枚举实例必须位于枚举中最开始部分,枚举实例列表的后面要有分号月其他成员相分隔
6、枚举实例后有花括号时,该实例是枚举的匿名内部类对象
1、创建一个性别的枚举
package one;
public enum Gender {
male,female;
}
2、创建一个Person类
package one;
public class Person {
String name;
int age;
Gender xb;
void info(){
System.out.println("我的名字叫"+name+",年龄:"+age+" 岁, 姓别为"+xb);
}
}
3、调用
package one;
public class TestPerson {
public static void main(String[] args) {
Person luo=new Person();
luo.name="小明";
luo.age=20;
luo.xb=Gender.female;
luo.info();
}
}
相关文章推荐
- Java面向对象-枚举的定义和特点以及底层分析
- 面向对象特点以及java的表现形式
- 浅谈Java中的数据类型以及面向对象
- Java面向对象高级--实例分析—宠物商店
- 黑马程序员--03.Java面向对象--05.【继承】【子父类中成员的特点】【子父类中构造函数的特点】
- java面向对象-子父类中构造函数的特点-子类实例化过程super
- 【面向对象课程项目:纸牌】Java实例学习(一):优秀源码的分析
- java面向对象-多态中成员函数成员变量的特点
- JAVA面向对象与内存分析
- php面向对象中的单例与静态方法的对比,以及关于class自动加载的分析
- 黑马程序员——Java基础---面向对象及其一些代码内部结构分析
- Java学习系列(二十二)Java面向对象之枚举详解
- Java面向对象设计最佳实践 - 枚举设计
- Java中的逃逸分析和TLAB以及Java对象分配
- java面向对象-内部类定义在局部时
- JVM概念中的Java对象的大小,以及三种引用类型的定义与区分
- 黑马程序员--03.Java面向对象--08.【多态中成员的特点】
- 乱侃:Java、Swing以及面向对象思想
- 浅谈Java中的数据类型以及面向对象
- java面向对象特点总结