Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> Java Programming >> Content
    Java 1.5 Enum Tutorial
    The enum typen er en ny funksjon i Java 1.5.0 språk, utviklet for å løse svakheter i måten opplistede verdiene ble håndtert i tidligere Java- versjoner . På sitt mest grunnleggende, vedtar det en struktur som ligner på enum typen i C - baserte språk , men det er en god del kraftigere. Den Enum Object

    Før du går videre til enumeratorer seg selv , er det best å illustrere problemet at den nye enum typen ble opprettet for å løse . Tenk på følgende klasse :

    public class Kalender {
    int dayOfWeek
    GO

    public static final int mandag = 0
    GO
    public static final int tirsdag = 1
    GO
    public static final int onsdag = 2
    GO
    ....

    ugyldig setDayOfWeek ( int dato) { ... }
    }

    Denne klassen lagrer den dagen i uken ved hjelp av et sett med opplistede konstanter med heltallige verdier av 0-7 , som svarer til en annen dag , og det antas at andre utviklere som bruker denne klassen vil bruke disse konstantene når du bruker klassen . Men håndhever ingenting dette. Andre klasser kan ignorere konstanter , bruke sine egne konstanter (som starter med søndag , kanskje) ved en feiltakelse , eller til og med , som et resultat av en bug, passere i \\ " 8 \\ " som en dag i uken , noe som muliggjør en bug å forplante seg videre enn det burde. Det er også spesielt uninformative i debugging , som verdien av \\ " dayOfWeek \\" vil bli skrevet til konsollen eller til en debugger rett og slett som et heltall som har å bli sett opp i kildekoden . Enumeratorer er designet for å håndtere alle disse problemene. Følgende er i samme klasse , ved hjelp av enum typen i stedet for et sett med nummererte konstanter :

    public class Kalender {
    offentlige enum Day { mandag , tirsdag , onsdag , torsdag , fredag ​​, lørdag , søndag
    }
    dag dayOfWeek

    void setDayOfWeek (Dag d ) { ... }
    }

    Ovennevnte koden , foruten å være renere og mer lesbar, tar for seg alle problemene nevnt ovenfor med opplistede konstanter . Kundene blir nå tvunget til å bruke kun de opplistede verdiene i seg selv , og debuggers vil vise nummerert verdien navn og ikke et heltall. I tillegg enumeratorer har en rekke andre fordeler . For eksempel kan de brukes sammen med de nye for - hver sløyfe funksjon som ble tilsatt i Java 1.5.0 . Kalenderen klasse kan omfatte metode som dette :

    void printDays () {
    for (Dag d: Day.values ​​( ) ) {
    System.out.println ( "I dag er " + d )
    GO
    }
    }

    Denne metoden vil reagere gjennom alle dager og skrive ut navnene deres .

    enumeratorer er klasser i sin egen rett , som betyr at de kan ha sine egne metoder og konstruktører . Tenk på følgende enum , som lagrer karakterene i en lek , slik at med en kort beskrivelse av det tegnet :

    offentlige enum Character {
    MYSTERIOUS_MAN ( "Tall , dark og kjekk . ") ,
    MYSTERIOUS_WOMAN ( " Iført en rød kjole. ") ,
    hovedpersonen ( " Dashing og heroisk . ") ,
    ANTAGONIST ( " Oser onde . ");

    String beskrivelse
    GO

    Character ( String beskrivelse) {
    this.description = beskrivelse
    GO
    }
    }

    früher :

     Weiter:
      Relatert Artike
    ·Hvordan lage JNLP 
    ·Hvordan lese tekst fra SWF i Java 
    ·Hvordan endre Applet Viewer i Eclipse 
    ·Slik konverterer Java String til Dato 
    ·Hvordan Sorter tre heltall i Java 
    ·Hvordan Ring en CFC Fra Javascript 
    ·Hvordan Tegn trekanter i Java 
    ·Slik utfører du en Bit Shift i Java 
    ·Slik formaterer desimaler i Java 
    ·Slik kjører du et skript fil i Java for å sende ut en…
      Anbefalte artikler
    ·Java avvikshåndtering Tutorials 
    ·Funksjoner I VB.NET 
    ·Hva er Direct3D og OpenGL 
    ·Hvordan lage Mod filer i Fortran 
    ·Hvordan identifisere klasser for Air Traffic Control Sy…
    ·Hvordan Design en 2D spill hjelp Lua Player 
    ·Hvordan finne den Frekvens av støy i MATLAB 
    ·Hvor å konvertere Exe til Au3 
    ·Hvordan å feilsøke Ruby 
    ·Kommenterte metoder i Java 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/