Dator > hur typecast i Java 6

  • hur typecast i Java 6


  • I datorprogrammering, hänvisar Typecasting att ta ett objekt av en typ och omvandla den till ett objekt av annan typ. I Java 6 , detta oftast , men inte alltid , innebär antingen upcasting eller downcasting , vilket innebär att kasta ett föremål uppåt eller nedåt i hierarkin arv <. br > 1 .
    Klistra in följande Java-klasser i en tom textfil . Dessa är den klass som kommer att användas för handledningen :



    public class Person { }

    public class MalePerson utökar Person { }

    2 .
    Klistra in följande upcast :



    Person p=new MalePerson ( " Tom " ) ;



    MalePerson klass är en underklass av person, så detta är ett kasta upp i hierarkin . Upcasting är den enklaste typen av rösterna för att dra bort . Java vet helt enkelt vad göra när en underklass har tilldelats ett av sina förfäder . Gör en mental anteckning dock : Java kommer alltid att minnas vad ett objekt egentligen är under en upcast . Även nu när MalePerson "Tom " har tilldelats ett generiskt person objekt , minns Java som det här objektet verkligen är en MalePerson .
    3
    Klistra in följande bedrövad .



    Person p=new MalePerson ( " Tom " ) ;

    MalePerson m=( MalePerson ) p ;



    Downcasts såhär, att flytta ner i hierarkin , kräver att programmeraren att ange klass typ som används för gjutna i parentes . Dock är downcasting mer komplext än upcasting
    4
    Försök följande bedrövad : .



    Person p=new Person ( " Jane " ) ;

    MalePerson m=( MalePerson ) p ;





    Detta försök misslyckas , och Det bör inte vara svårt att se varför . Även om det är rimligt att anta att en MalePerson är en person , är det inte rimligt för datorn att anta att alla människor är MalePersons . Några kan vara FemalePersons , och skillnaden kan eller inte vara av ringa betydelse för datorns ändamål . Bara för att vara säker , kastar programmet ett fel .



    En nedslagen bara kan uppstå om en upcast har uppstått först, vilket är anledningen till att upcast i steg 3 är giltigt , men inte i steg 4 . Detta kan göra upcasting ljud värdelös i början. Det väcker frågan om varför upcast utfördes i första hand , men håll den tanken . .
    5
    Betrakta följande metod :



    public void hälsar ( Person p ) {

    Om ( p instanceof MalePerson ) {

    MalePerson m=( MalePerson ) p ;

    m. doMaleThings () ;

    } else if ( p instanceof FemalePerson ) {

    FemalePerson f=( MalePerson ) p ;

    f. doFemaleThings () ;

    } else kasta nytt GenderConfusionException ( ) ;

    }



    Författaren till denna metod har ingen möjlighet att veta i förväg om denna metod kommer att kallas med ett MalePerson eller FemalePerson objekt , så han använder den generiska Person -objekt . Sedan använder han instanceof kommandot att hämta den person som får och se om han skulle nedslagna det som en manlig eller en kvinnlig person .


Previous:nothing Next:Hur ändrar jag namnet på en blankett från en konstruktör ?





Relaterade artiklar


  • hur man skapar spel i Visual Basic
  • hur man lär sig stenografi skriva
  • hur du skriver ut produktionen skärm C-program
  • hur man kan felsöka ett VBS skript
  • hur man byter en CPU multiplikatorn med en AMD-processor
  • hur du lägger upp filer via html och asp
  • hur man skriver datafiler i Visual Basic
  • hur man skapar ett datum manus
  • hur man byter filer med en vbs
  • Hur konvertera HTML till texten i C #