Java基础编程4
作者:互联网
枚举类型相当于特殊的类,经过编译之后同样产生一个class文件。枚举类型中可以定义方法(包括构造
方法)、属性、静态的方法和属性、继承接口、重载覆盖等,类似于class。
枚举类型的定义:
public enum ColorSelect {
RED,BLUE,BLACK YELLOW,GREEN;
}
枚举类型使用enum来声明类型,枚举类型的每一个枚举值(枚举属性)都是枚举类型的实例,且都是
public static final类型的实例。
枚举类型的继承:
1.所有的枚举类型都隐含的继承自java.lang.Enum类,又因为Java是单继承的,所以一个枚举类型不能继承任何其他的类。
2.枚举类型因为继承了java.lang.Enum类,又因为java.lang.Enum实现了java.lang.Comparable和java.io.Serializable接口,所以枚举类型也默认实现了这两个接口。
枚举类型的构造方法:
1.必须是private访问权限,不能使public权限。这样就可以保证在枚举类型定义的外部无法使用new 来创建枚举值。
2.使用构造方法(当然是带参数的构造方法)赋值,则必须给所有的枚举值赋值;如果写了构造方法,却没有使用其用于赋值,则会报错。
继承自父类(java.lang.Enum)的方法:
1. ordinal()方法: 返回枚举值在枚举类种的顺序。这个顺序根据枚举值声明的顺序而定。
Color.RED.ordinal(); //返回结果:0
Color.BLUE.ordinal(); //返回结果:1
2. compareTo()方法: Enum实现了java.lang.Comparable接口,因此可以比较象与指定对象的顺序。Enum中的compareTo返回的是两个枚举值的顺序之差。当然,前提是两个枚举值必须属于同一个 枚举类,否则会抛出ClassCastException()异常。
Color.RED.compareTo(Color.BLUE); //返回结果 -1
3.values()方法: 静态方法,返回一个包含全部枚举值的数组。
Color[] colors=Color.values();
for(Color c:colors){
System.out.print(c+",");
}//返回结果:RED,BLUE,BLACK YELLOW,GREEN,
4.toString()方法: 返回枚举常量的名称
Color c=Color.RED;
System.out.println(c);//返回结果: RED
5. valueOf()方法: 这个方法和toString方法是相对应的,返回带指定名称的指定枚举类型的枚举常量。
Color.valueOf("BLUE"); //返回结果: Color.BLUE
6.equals()方法: 比较两个枚举类对象的引用。
Color.valueOf("BLUE"); //返回结果: Color.BLUE
枚举类型可以用于switch语句。
二. 修饰符总结
1.四个访问控制符:
.private访问范围在同一个类中
.friendly(默认,不写) ,访问范围同一个包中或者同一个类中
.protected访问范围子类
.pubic 访问全局范围内
注意:在不写访问控制符的情况下,就是friendly(默认)修饰符
2.类修饰符:
.public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是
公共类。
.friendly,默认的修饰符,只有在相同包中的对象才能使用这样的类。
.abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现。
.final,将一个类声明为最终(即非继承类),表示他不能被其他类继承。
3.成员变量修饰符:
.public(公共访问控制符),指定该变量为公共的,他可以被任何对象的方法访问。
.private(私有访问控制符)指定该变量只允许自己的类的方法访问,其他任何类(包括子类)中的
方法均不能访问。
.protected(保护访问控制符)指定该变量可以别被自己的类和子类访问。在子类中可以覆盖此变
量。
.friendly ,在同一个包中的类可以访问,其他包中的类不能访问。
.final,最终修饰符,指定此变量的值不能变。
.static(静态修饰符)指定变量被所有对象共享,即所有实例都可以使用该变量。变量属于这个
类。
4.方法修饰符:
.public(公共控制符),指定该方法可以从所有类访问
.private(私有控制符)指定此方法只能有自己类等方法访问,其他的类不能访问(包括子类)
.protected(保护访问控制符)指定该方法可以被它的类和子类进行访问。
.final,指定该方法不能被重载。
.static,指定不需要实例化就可以激活的一个方法。
.synchronize,同步修饰符,在多个线程中,该修饰符用于在运行前,对他所属的方法加锁,以防
止其他线程的访问,运行结束后解锁。
.native,本地修饰符。指定此方法的方法体是用其他语言在程序外部编写的。
5.初始化块:
.static(可选),使用static修饰的初始化块被称为静态代码块
标签:修饰符,Java,Color,控制符,编程,基础,访问,枚举,方法 来源: https://blog.csdn.net/yxm12138/article/details/119180186