Enum(枚举):
public enum Color {
RED(1),
BLUE(1),
GREEN(1),
BLACK(1);
private int a ;
private Color(int a){this.a=a}
}
1、用途:用于表示一组相同类型的常量
2、与普通 public static final 常量比较
public static final RED=1;
public static final BLUE=2;
public static final BLACK=3;
相比上面的常量,枚举就有更加直观的功能描述
一般的switch是不能用string进行比较的,但是有时候我们的参数又是string类型的,因为switch可以支持普通类型和枚举enum型的参数
所以我们可以用string的参数来建立一个enum类进行判断。
public enum A {
B("DAD"),
C("DADA"),
D("DAD"),
E("A");
private String a ;
private Color(string a){this.a=a}
}
switch(Transformation(“dada”)){
case B:
break;
case C:
break;
}
transformation方法:
public A Transformation(string value){
for(A a:EnumSet.allof(A.class)){
if(a.toString.equals(value)){
return a;
}
return null;
}
}
Final:
1、final类
作用:类不可以被继承,在设计类时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会载被扩展,那么就设计为final类。
2、final方法
作用:
1、把方法锁定,防止任何继承类修改它的意义和实现
2、高效。编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率
3、如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为final方法
3、final变量
用final修饰的成员变量表示常量,值一旦给定就无法改变!
Static:
1、static变量:
static修饰的成员变量和成员方法独立于该类的任何对象,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们,因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。
2、static代码块:
static修饰的代码块表示静态代码块,当Java虚拟机(JVM)加载类时,就会执行该代码块
3、static方法:
静态方法中不能用this和super关键字(静态方法是属于类的,静态方法加载时,对象还不一定存在,this和super代表是分别是对象的引用和对象父类的引用),static方法独立于任何实例,因此static方法必须被实现,而不能是抽象的abstract。