| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> Java programmering >> Content
    Sådan Löwenstein i Java 6
    I programmering af computere, refererer typeinddelinger at tage et objekt af en type og omdanne den til et objekt af en anden type . I Java 6 , dette normalt , men ikke altid, indebærer enten upcasting eller downcasting , hvilket betyder at kaste en genstand op eller ned arven hierarkiet. Instruktioner
    1

    Indsæt følgende Java-klasser i en tom tekstfil. Det er den klasse, der skal bruges til øvelserne : Hej

    public class Person {}

    public class MalePerson udvider Person {}
    2

    Indsæt følgende upCast : Hej

    person p = new MalePerson ( " Tom ")

    MalePerson klasse er en underklasse af person , så dette er en støbt op i hierarkiet . Upcasting er den nemmeste form for støbt til at trække ud . Java simpelthen ved, hvad de skal gøre, når en underklasse er tildelt til en af ​​sine forfædre. Lav en mental note , men: Java vil altid huske, hvad en genstand er virkelig under en upCast . Selv nu , at MalePerson " Tom " er blevet tildelt til en generisk person, objekt , Java husker, at dette objekt er virkelig en MalePerson
    3

    Indsæt følgende nedslået : .
    < P > person p = new MalePerson ( " Tom ")

    MalePerson m = ( MalePerson ) p ;

    Downcasts som dette, der bevæger sig ned i hierarkiet , kræve programmør til at angive klasse type den anvendes til støbt i parentes . Men downcasting er mere kompleks end upcasting
    4

    Forsøg følgende nedslået : Hej

    Person p = new Person ( " Jane ")

    MalePerson m = . ( MalePerson ) p ;

    Dette forsøg mislykkes, og det bør ikke være svært at se hvorfor. Selv om det er rimeligt at antage, at en MalePerson er en person , er det ikke rimeligt, at computeren til at antage , at alle personer er MalePersons . Et par kan være FemalePersons , og forskellen kan eller ikke kan være trivielt for computerens formål. Bare for at være sikker, at programmet kaster en fejl.

    Nedslået kan kun ske, såfremt en upCast er opstået først, hvilket er grunden til, upCast i trin 3 var gyldig, men ikke i trin 4 . Dette kan gøre upcasting lyd ubrugelig i første omgang. Det rejser spørgsmålet om, hvorfor upCast blev udført i første omgang, men hold den tanke
    5

    Overvej følgende metode: .

    Public void hilse ( Person p ) { < br >

    if ( p instanceof MalePerson ) {

    MalePerson m = ( MalePerson ) p ;

    m.doMaleThings ();

    } else if ( p instanceof FemalePerson ) {

    FemalePerson f = ( MalePerson ) p ;

    f.doFemaleThings ();

    } else smide nyt GenderConfusionException ();

    }

    forfatteren af ​​denne metode har ingen mulighed for at vide på forhånd, om denne metode vil blive kaldt med en MalePerson eller FemalePerson objekt , så han bruger den generiske person objekt. Så han bruger den instanceof kommandoen til at polle den givne Person og se, om han skulle nedslået det som en mandlig eller en kvindelig person.

    Forrige :

    næste :
      Relaterede artikler
    ·Sådan Kort Strings til en liste af strenge 
    ·Sådan oprettes en Android Emulator 
    ·Sådan center en JPanel på toppen af ​​en JFrame 
    ·Om Sun Java certificering 
    ·Sådan Load en JAR fil til en telefon 
    ·Sådan Erstat omvendte skråstreger Med Double i Java 
    ·Java Runtime Exec Tutorial 
    ·Sådan Konverter en Integer Into en String i Java 
    ·Sådan navigerer todimensionelle arrays i Java 
    ·Sådan kører PKZIP Fra Java 
      Anbefalede Artikler
    ·Sådan Slet Lineshape objekter i Visual Basic 
    ·Sådan ændres skrifttype i Echo 
    ·Sådan Beregn SHA1 efter en streng i C # 
    ·Sådan Evaluer Boolean multiplikation i C + + 
    ·Sådan importeres fra SQL i MySQL 
    ·Sådan oprettes PHP til e-mail en formular ved hjælp D…
    ·Sådan deaktiveres en Java Undtagelse 
    ·Syntaks i en funktion 
    ·Programmering i MS Access 2007 
    ·Sådan bruges Curl til Capture indholdet af en side 
    Copyright © Computer Viden http://www.computerdk.com