Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> Java Programming >> Content

    Hur typecast i Java 6

    I datorprogrammering , hänvisar Typecasting att ta ett objekt av en typ och omvandla den till ett objekt av en annan typ . I Java 6 , detta oftast , men inte alltid , innebär antingen upcasting eller downcasting , vilket innebär att kasta ett objekt uppåt eller nedåt arvshierarkin . Instruktioner
    1

    klistra in följande Java-klasser i en tom textfil . Dessa är den klass som ska användas för den läraren :

    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 till person , så detta är en gjuten upp i hierarkin . Upcasting är den enklaste typen av rösterna för att dra bort . Java vet helt enkelt vad man gör när en underklass tilldelas en av sina förfäder . Gör en mental anteckning , dock : Java kommer alltid ihåg vad ett objekt är verkligen under en upcast . Redan nu att MalePerson " Tom " har tilldelats en generisk person som objekt , minns Java att detta objekt är verkligen en MalePerson
    3

    Klistra in följande nedslagen : .

    Person p = new MalePerson ( " Tom " ) ;

    MalePerson m = ( MalePerson ) p;

    Downcasts som denna , att flytta ner i hierarkin , kräva programmeraren att ange klasstyp används för den gjutna inom parentes. Dock är downcasting mer komplex än upcasting
    4

    Försök följande nedslagen :

    Person p = new Person ( " Jane " ) ,

    MalePerson m = . ( MalePerson ) p;

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

    En nedslagen kan bara ske om en upcast har skett först , varför upcast i Steg 3 var 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 av denna metod har ingen möjlighet att veta i förväg om denna metod kommer att kallas med ett MalePerson eller en FemalePerson objekt , så han använder den generiska Person objektet . Sen använder han instanceof kommando att hämta den person ges och se om han ska nedslagen det som en manlig eller en kvinnlig person .

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur man ladda bilder i Java med hjälp NetBeans
    ·Bästa praxis för hur man Bädda Java i JSP
    ·Funktion Display i Java
    ·Hur ta reda på vilken version av Java
    ·Kan Java Ta bort sista instans av en karaktär från en…
    ·Hur man gör en Java WAR paket
    ·Hur du ansluter en jTDS drivrutin till SQL Express
    ·Hur du använder Scanner Data Träd
    ·Hur man skickar ett automatiskt e efter ett visst datum…
    ·Konvertera Double till Int i Java
    Utvalda artiklarna
    ·Hur får man Längd på en post i COBOL
    ·Hur man kan göra något Flash i Visual Basic
    ·Konvertera Latin1 till UTF8 i MySQL
    ·Hur till Redigera Setup.exe
    ·Hur man lägger bilder i Java BlueJ
    ·Hur man skapar ett histogram med C programkod
    ·Vad är en Python GIL
    ·Vad är en pekare i C
    ·Hur man spola ut i PHP
    ·Hur man flyttar Ladda upp filer i PHP
    Copyright © Dator Kunskap http://www.dator.xyz