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
    Hvordan Typecast i Java 6
    I dataprogrammering, refererer typecasting å ta et objekt av en type og konvertere den til et objekt av en annen type. I Java 6 , dette vanligvis , men ikke alltid, innebærer enten upcasting eller downcasting , som betyr å kaste en gjenstand opp eller ned arvehierarkiet . Instruksjoner
    en

    Lim følgende Java-klasser i en tom tekstfil . Dette er klassen som skal brukes for opplæringen : en

    public class Person { }

    public class MalePerson strekker Person { }
    2

    Lim inn følgende upcast : en

    person p = new MalePerson ( " Tom ");

    MalePerson klassen er en underklasse av person , så dette er en støpt opp i hierarkiet. Upcasting er den enkleste type cast å trekke seg. Java vet rett og slett hva de skal gjøre når en underklasse er tildelt en av sine forfedre. Gjør et mentalt notat , men: Java vil alltid huske hva et objekt er virkelig under en upcast . Selv nå som MalePerson " Tom " har blitt tildelt en generisk person objekt, husker Java at dette objektet er virkelig en MalePerson
    3

    Lim inn følgende nedslått : .
    < P > person p = new MalePerson ( " Tom ");

    MalePerson m = ( MalePerson ) p;

    Downcasts som dette, som beveger seg nedover i hierarkiet , kreve programmerer å angi klassetype brukes for støpt i parentes . Imidlertid er downcasting mer kompleks enn upcasting
    4

    Forsøk følgende nedslått : en

    Person p = new Person ( " Jane ");

    MalePerson m = . ( MalePerson ) p;

    Dette forsøket mislykkes, og det bør ikke være vanskelig å se hvorfor . Mens det er rimelig å anta at en MalePerson er en person , er det ikke rimelig for datamaskinen å anta at alle personer er MalePersons . Noen kan være FemalePersons , og forskjellen kan eller ikke kan være trivielt for datamaskinens formål. Bare for å være sikker, kaster programmet en feil .

    En nedslått kan bare skje hvis en upcast har skjedd først, noe som er grunnen til at upcast i Trinn 3 var gyldig , men ikke i trinn 4 . Dette kan gjøre upcasting lyd ubrukelig først. Det reiser spørsmålet om hvorfor upcast ble utført i første omgang , men hold den tanken
    5

    Tenk på følgende måte : .

    Public void hilse ( Person p) {

    if ( p instanceof MalePerson ) {

    MalePerson m = ( MalePerson ) p;

    m.doMaleThings () ;

    } else if ( p instanceof FemalePerson ) {

    FemalePerson f = ( MalePerson ) p;

    f.doFemaleThings ();

    } else throw new GenderConfusionException ();

    }

    forfatteren av denne metoden har ingen måte å vite på forhånd om denne metoden vil bli kalt med en MalePerson eller en FemalePerson objekt, så han bruker den generiske person objekt. Deretter bruker han instanceof kommandoen for å hente den person som er gitt , og se om han skulle nedslått det som en mannlig eller en kvinnelig person .

    früher :

     Weiter:
      Relatert Artike
    ·Hvordan Inkluder JAR -filer i prosjektet Bygg Sti i Ecl…
    ·Hvordan lese fra en fil med JAVA 
    ·Hvordan få tilgang til NetBeans Resource Directory 
    ·Kommenterte metoder i Java 
    ·Grunner for en Java Lang Inkompatibel Klasseendring Fei…
    ·Hvordan returnere en puls i Java 
    ·Hvordan bli kvitt Error.Jsp 
    ·Hvordan kan jeg tjene en Hibernate List Ikke Har Null E…
    ·Hvordan multiplisere to Multi -sifret heltall i Java 
    ·Hvordan legge bilder på en Android -emulator 
      Anbefalte artikler
    ·Hvordan vise en streng Backwards i C 
    ·Hvordan returnere en boolsk verdi i Java 
    ·Hvordan endre navn på kolonner i MySQL 
    ·Hvordan ta ut Alpha Tegn Men Leave numeriske tegn i SQL…
    ·Hvordan legge til rader DataView 
    ·Hvordan du redigerer en Registry Med Austrumi 
    ·Slik konverterer Visual C Prosjekter til BCB 
    ·Hvordan bruke PDB i Python 
    ·Rolle og funksjon av Metadata 
    ·Hvordan sjekke Access 2007 Hvis Query Exists 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/