Presentation is loading. Please wait.

Presentation is loading. Please wait.

Enum public enum Week {Sunday, Moday, Tuesday, Wednesday, Thursday, Friday, Saturday} Week.Sunday.ordinal()  0 Week.Sunday  “Sunday”

Similar presentations


Presentation on theme: "Enum public enum Week {Sunday, Moday, Tuesday, Wednesday, Thursday, Friday, Saturday} Week.Sunday.ordinal()  0 Week.Sunday  “Sunday”"— Presentation transcript:

1 enum public enum Week {Sunday, Moday, Tuesday, Wednesday, Thursday, Friday, Saturday} Week.Sunday.ordinal()  0 Week.Sunday  “Sunday”

2 enum 不可繼承 1. public enum Suites exten Enum{ 2. } 可實作 interface 不能放在方法中 所有成員為 static final 可以用 == 或 equals 來比較 Compiler 會自動加入 private final 於列值中

3 Enum An enum specifies a list of constant values assigned to a type. An enum is NOT a String or an int. An enum constant's type is the enum type. An enum can be declared outside or inside a class, but NOT in a method. You can NEVER invoke an enum constructor directly.

4 The enum constructor is invoked automatically, with the arguments you define after the constant value. You can define more than one argument to the constructor, and you can overload the enum constructors An enum declared outside a class must NOT be marked static, final, abstract, protected, or private. Enum

5 enum constants can send arguments to the enum constructor, using the syntax BIG(8). Compiling an enum generates a.class file whose name is derived from the enum's name. The semicolon at the end of an enum declaration is optional. These are legal: enum Foo { ONE, TWO, THREE} enum Foo { ONE, TWO, THREE}; Foo.values() returns an array of MyEnum's values. Enum

6 enum Problem { BIG, HUGE, SMALL } // this cannot be private or protected class MyClass { Problem size; } public class MainClass { public static void main(String[] args) { MyClass drink = new MyClass(); drink.size = Problem.BIG; } } Declaring Enums

7 An example of declaring an enum inside a class class MyClass2 { enum Problem {BIG, HUGE, SMALL } Problem size; } public class MainClass { public static void main(String[] args) { MyClass2 drink = new MyClass2(); drink.size = MyClass2.Problem.BIG; // enclosing class name require d } }

8 You cannot declare enums in a method enum Problem {BIG, HUGE, SMALL } class MyClass { Problem size; } public class MainClass { public static void main(String[] args) { enum Problem { BIG, HUGE, SMALL } // WRONG! MyClass drink = new MyClass(); drink.size = Problem.BIG; } Exception in thread "main" java.lang.Error: Unresolved compilation problem: The member enum Problem cannot be local at MainClass.main(MainClass.java:9)

9 enum Problem { // 8, 10 & 16 are passed to the constructor BIG(8), HUGE(10), SMALL(16); Problem(int ounces) { // constructor this.ounces = ounces; } private int ounces; public int getOunces() { return ounces; } class MyClass { Problem size; public static void main(String[] args) { MyClass drink1 = new MyClass(); drink1.size = Problem.BIG; MyClass drink2 = new MyClass(); drink2.size = Problem.SMALL; System.out.println(drink1.size.getOunces()); for(Problem cs: Problem.values()) System.out.println(cs + " " + cs.getOunces()); } 8 BIG 8 HUGE 10 SMALL 16

10 Enums may have main() methods and can be invoked as applications. enum LightState { RED, YELLOW, GREEN; public static void main(String[] argv) { System.out.println(LightState.RED.toString()); } }

11 Enums have built-in name() and toString() methods, both of which return the name of the current instance. public class MainClass { public static void main(String[] argv) { System.out.println(LightState.RED.name()); } } enum LightState { RED, YELLOW, GREEN; }

12 You can add data, methods, and constructors to an enum. enum Suit { DIAMOND(true), HEART(true), CLUB(false), SPADE(false); private boolean red; Suit(boolean b) { red = b; } public boolean isRed() { return red; } public String toString() { String s = name(); s += red ? ":red" : ":black"; return s; } }


Download ppt "Enum public enum Week {Sunday, Moday, Tuesday, Wednesday, Thursday, Friday, Saturday} Week.Sunday.ordinal()  0 Week.Sunday  “Sunday”"

Similar presentations


Ads by Google