Enum、Static、Final

来源:互联网 发布:纽约 攻略 知乎 编辑:程序博客网 时间:2024/06/06 07:21

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。

 


0 0
原创粉丝点击