Die Anleitung zu Java Enum
1. was ist Java Enum?
enum im Java ist ein Key wort, ein Funktion für die Vertretung einer bestimmten Zahl, z.B: Tagen in der Woche, Planet im Sonnensystem, v..v
enum im Java wird im JDK 1.5 vorgestellt und es ist eine der neuen Funktion von J2SE 5 mit dem autoboxing und unboxing, Generics, varargs und static import.
enum im Java wird im JDK 1.5 vorgestellt und es ist eine der neuen Funktion von J2SE 5 mit dem autoboxing und unboxing, Generics, varargs und static import.
Jetzt sollen wir schauen, was Java vor der Entstehung von enum im einige Fall macht
WeekDayConstants.java
package org.o7planning.tutorial.beforej5;
// This class defines the constants are the days of the week.
public class WeekDayConstants {
public static final int MONDAY = 2;
public static final int TUESDAY = 3;
public static final int WEDNESDAY = 4;
public static final int THURSDAY = 5;
public static final int FRIDAY = 6;
public static final int SATURDAY = 7;
public static final int SUNDAY = 1;
}
Ein Class mit einer Methode stellt die Arbeit mit der angemessenen Tag in Woche (wie die Zeitplan)
Timetable.java
package org.o7planning.tutorial.beforej5;
public class Timetable {
// Returns name of Job will do
public static String getJob(int dayInWeek) {
if (dayInWeek == WeekDayConstants.SATURDAY
|| dayInWeek == WeekDayConstants.SUNDAY) {
return "Nothing";
}
return "Coding";
}
}
Es ist einfach zu sehen, die Kodierung wie oben ist nicht sicher. Wie : Unglücklichweise typen Sie die Wert für Wochentag duplikate. Oder rufen Sie Timetable.getJob(int) , aber Sie geben die nicht wie vorher definierten Wert ein
- Nicht sicher: Wenn Sie es vielleicht nicht sicher finden, rufen Sie die Methode getJob(int) und geben Sie irgendwelche Int Wert ein.
- Kein Wert im Drucken: Wenn Sie die Tagen drucken möchten, werden die Zahl statt des sinvolle Wort wie MONDAY gezeigt
Hier ist die Kodierung für die Behandlung im Java5:
WeekDay.java
package org.o7planning.tutorial.javaenum;
public enum WeekDay {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;
}
Timetable.java
package org.o7planning.tutorial.javaenum;
public class Timetable {
public static String getJob(WeekDay weekDay) {
if (weekDay == WeekDay.SATURDAY || weekDay == WeekDay.SUNDAY) {
return "Nothing";
}
return "Coding";
}
}
2. Den Operator == benutzen um die Elemente vom enum zu vergleichen
Enum ist ein Referenzobjekt wie class, interface aber sie kann die Vergleich == benutzen
Sehen Sie bitte wie die Konferenzobjekt vergleichen
// To compare the reference object, generally used method equals (..)
Object obj1 = .... ;
// Comparing object with null, can use the == operator
if(obj1 == null) {
}
Object obj2 = ....;
// Not null
if (obj1 != null) {
// Comparing two objects.
if(obj1.equals(obj2)) {
}
}
Mit Enum können Sie die operator == für die Vergleich benutzen
CompareEnumDemo.java
package org.o7planning.tutorial.javaenum;
public class CompareEnumDemo {
public static void main(String[] args) {
WeekDay today = WeekDay.SUNDAY;
// Use the == operator to compare two elements of Enum
if (today == WeekDay.SUNDAY) {
System.out.println("Today is Sunday");
}
}
}
3. Enum kan wie ein Parameter in dem Befehk switch benutzt werden
Wie die primitiven Daten (int,float,..) kann Enum wie eine Parameter in der Anweisung switch benutzt werden
Sehen Sie ein Beispiel:
Sehen Sie ein Beispiel:
SwitchDemo.java
package org.o7planning.tutorial.javaenum;
public class SwitchDemo {
public static void main(String[] args) {
WeekDay day = WeekDay.THURSDAY;
switch (day) {
case MONDAY:
System.out.println("Working day");
break;
case SATURDAY:
case SUNDAY:
System.out.println("Holiday");
break;
default:
System.out.println(day);
}
}
}
4. Die Elementen vom Enum browsen
Wir können alle Elemente von Enum durch die Methode values() durchsuchen. Sehen Sie ein Beispiel
ValuesDemo.java
package org.o7planning.tutorial.javaenum;
public class ValuesDemo {
public static void main(String[] args) {
// Get all the elements of the Enum.
WeekDay[] allDays = WeekDay.values();
for (WeekDay day : allDays) {
System.out.println("Day: " + day);
}
}
}
Ergebnis des Beispiel
Day: MONDAY
Day: TUESDAY
Day: WEDNESDAY
Day: THURSDAY
Day: FRIDAY
Day: SATURDAY
Day: SUNDAY
5. Enum kann den Constructor und die Methode haben
Ein Enum kann Constructor und MEthode haben. Constructor erstellt die Instance innerhalb enum, kann nicht außer enum rufen. Sehen Sie ein Beispiel
Gender.java
package org.o7planning.tutorial.javaenum;
public enum Gender {
// Initialize the elements from Constructor.
// The element is always final, static
MALE("M", "Male"), FEMALE("F", "Female");
private String code;
private String text;
// Constructor of Enum internal use only
// Modifier of constructor is private
// If you do not declare private, java alway understand is private.
private Gender(String code, String text) {
this.code = code;
this.text = text;
}
// Static method return Gender by code.
public static Gender getGenderByCode(String code) {
for (Gender gender : Gender.values()) {
if (gender.code.equals(code)) {
return gender;
}
}
return null;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
GenderDemo.java
package org.o7planning.tutorial.javaenum;
public class GenderDemo {
public static void main(String[] args) {
Gender marryGender = Gender.FEMALE;
System.out.println("Code: " + marryGender.getCode());
System.out.println("Text: " + marryGender.getText());
// Gender[].
for (Gender gender : Gender.values()) {
System.out.println(gender.getText());
}
String code ="M";
Gender gender= Gender.getGenderByCode(code);
System.out.println("Gender by code: "+ gender);
}
}
Ergebnis des Beispiel
Code: F
Text: Female
Male
Female
Gender by code: MALE
6. Die Methode überschreiben im Enum
Sie können die method toString() - Inheritance aus dem class Object überschreiben.
Currency.java
package org.o7planning.tutorial.javaenum;
public enum Currency {
VND, USD, EURO ;
@Override
public String toString() {
if (this == VND) {
return "Dong";
} else if (this == USD) {
return "Dola";
}
return super.toString();
}
public static void main(String[] args) {
Currency money = Currency.USD;
System.out.println("Money " + money);
System.out.println("Money " + money.toString());
System.out.println("VND " + Currency.VND);
System.out.println("EURO " + Currency.EURO);
}
}
Ergebnis des Beispiel
Money Dola
Money Dola
VND Dong
EURO EURO
7. Die abstrakte Methode im Enum
Color.java
package org.o7planning.tutorial.javaenum;
public enum Color {
RED("red") {
@Override
public String getHexCode() {
return "#ff0000";
}
},
GREEN("green") {
@Override
public String getHexCode() {
return "#00ff00";
}
},
BLUE("blue") {
@Override
public String getHexCode() {
return "#0000ff";
}
};
private String name;
Color(String name) {
this.name = name;
}
public String getName() {
return name;
}
public abstract String getHexCode();
}
Java Grundlagen
- Anpassen von Java-Compiler, der Ihre Annotation verarbeitet (Annotation Processing Tool)
- Java Programmierung für Team mit Eclipse und SVN
- Die Anleitung zu Java WeakReference
- Die Anleitung zu Java PhantomReference
- Komprimierung und Dekomprimierung in Java
- Konfigurieren von Eclipse zur Verwendung des JDK anstelle von JRE
- Java-Methoden String.format() und printf()
- Syntax und neue Funktionen in Java 8
- Die Anleitung zu Java Reguläre Ausdrücke
- Die Anleitung zu Java Multithreading Programming
- JDBC Driver Bibliotheken für verschiedene Arten von Datenbank in Java
- Die Anleitung zu Java JDBC
- Holen Sie sich die automatisch erhöhenden Wert der Spalte bei dem Insert eines Rekord, der JDBC benutzt
- Die Anleitung zu Java Stream
- Die Anleitung zu Java Functional Interface
- Einführung in Raspberry Pi
- Die Anleitung zu Java Predicate
- Abstrakte Klasse und Interface in Java
- Zugriffsmodifikatoren (Access modifiers) in Java
- Die Anleitung zu Java Enum
- Die Anleitung zu Java Annotation
- Vergleichen und Sortieren in Java
- Die Anleitung zu Java String, StringBuffer und StringBuilder
- Die Anleitung zu Java Exception
- Die Anleitung zu Java Generics
- Manipulieren von Dateien und Verzeichnissen in Java
- Die Anleitung zu Java BiPredicate
- Die Anleitung zu Java Consumer
- Die Anleitung zu Java BiConsumer
- Was ist erforderlich, um mit Java zu beginnen?
- Geschichte von Java und der Unterschied zwischen Oracle JDK und OpenJDK
- Installieren Sie Java unter Windows
- Installieren Sie Java unter Ubuntu
- Installieren Sie OpenJDK unter Ubuntu
- Installieren Sie Eclipse
- Installieren Sie Eclipse unter Ubuntu
- Schnelle lernen Java für Anfänger
- Geschichte von Bits und Bytes in der Informatik
- Datentypen in Java
- Bitweise Operationen
- if else Anweisung in Java
- Switch Anweisung in Java
- Schleifen in Java
- Die Anleitung zu Java Array
- JDK Javadoc im CHM-Format
- Vererbung und Polymorphismus in Java
- Die Anleitung zu Java Function
- Die Anleitung zu Java BiFunction
- Beispiel für Java Encoding und Decoding mit Apache Base64
- Die Anleitung zu Java Reflection
- Java-Remote-Methodenaufruf - Java RMI
- Die Anleitung zu Java Socket
- Welche Plattform sollten Sie wählen für Applikationen Java Desktop entwickeln?
- Die Anleitung zu Java Commons IO
- Die Anleitung zu Java Commons Email
- Die Anleitung zu Java Commons Logging
- Java System.identityHashCode, Object.hashCode und Object.equals verstehen
- Die Anleitung zu Java SoftReference
- Die Anleitung zu Java Supplier
- Java Aspect Oriented Programming mit AspectJ (AOP)
Show More
- Anleitungen Java Servlet/JSP
- Die Anleitungen Java Collections Framework
- Java API für HTML & XML
- Die Anleitungen Java IO
- Die Anleitungen Java Date Time
- Anleitungen Spring Boot
- Anleitungen Maven
- Anleitungen Gradle
- Anleitungen Java Web Services
- Anleitungen Java SWT
- Die Anleitungen JavaFX
- Die Anleitungen Oracle Java ADF
- Die Anleitungen Struts2 Framework
- Anleitungen Spring Cloud