黑马程序员_<<基础加强--1.5新特性(上)>>
--------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! --------------------
静态导入:导入的是静态的方法,这样在调用类的时候就可以不用写类名了,直接可以使用静态方法。
格式:import static 包名.类名.方法名;这是导入的是一个方法
import static 包名.类名.*;导入的是这个类中的所有静态方法。
普通的导入:导入的是类,调用其中的方法还得用类名或者是对象,格式:import 包名.类; 或者是 import 包名.*;
public enum TrafficLamp { RED(30) { public TrafficLamp nextLamp() { return GREEN; } }, GREEN(40) { public TrafficLamp nextLamp() { return YELLOW; } }, YELLOW(10) { public TrafficLamp nextLamp() { return RED; } };// 这里必须加分号:因为后面有语句,默认的调用无参构造方法 private TrafficLamp() { } private TrafficLamp(int time) { this.time = time; } private int time; public abstract TrafficLamp nextLamp();//抽象方法,在变量后使用内部类来重写 public String toString(){//重写toString()方法 return this == RED ? "RED" : (this == GREEN ? "GREEN" : "YELLOW"); }}public class Demo { public static void main(String[] args) { System.out.println(TrafficLamp.GREEN.nextLamp()); }}结果:YELLOW
注意点:
1. 在枚举成员变量列表前面不能加任何语句。
2. 枚举的构造方法必须是私有的(private),为了是枚举类不能被继承
3. 当变量后什么也没有的话,那么就是默认的调用无参的构造方法,当调用自定义的构造方法的时候格式:变量(参数)
4. 也可以定义抽象方法,那么就使用内部类,在成员变量后面重写即可.使用内部类来实现其抽象方法。
5. 假如枚举中只有一个成员的话,那么就可以看作单例模式。
6. 在类中要是有抽象方法,必须要定义成抽象方法
但是如果在枚举中有抽象方法的话,不用定义成抽象的。
--------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! --------------------