Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> Java Programming >> .

Come typecast in Java 6

Nella programmazione di computer , fusione di caratteri si riferisce a prendere un oggetto di un tipo e la sua conversione in un oggetto di un altro tipo . In Java 6 , questo di solito , ma non sempre , coinvolge sia upcasting o downcasting , che significa lanciare un oggetto verso l'alto o verso il basso la gerarchia di ereditarietà . Istruzioni
1

incollare le seguenti classi Java in un file di testo vuoto . Questi sono la classe che verrà utilizzata per il tutorial :

class Person { }

MalePerson public class public Persona { }
2

Incollare il seguente upcast :

persona p = new MalePerson ( " Tom " ) ;

la classe MalePerson è una sottoclasse di persona, quindi questo è un cast in alto nella gerarchia . Upcasting è il più semplice tipo di cast per tirare fuori . Java sa semplicemente cosa fare quando una sottoclasse è assegnato a uno dei suoi antenati . Fare una nota mentale , però : Java sarà sempre ricordare ciò che un oggetto è realmente nel corso di una upcast . Anche ora che la MalePerson " Tom" è stato assegnato a un oggetto persona generico , Java ricorda che questo oggetto è davvero un MalePerson
3

Incollare il seguente abbattuto : .

persona p = new MalePerson ( " Tom " ) ;

MalePerson m = ( MalePerson ) p ;

downcast come questo , che si muovono verso il basso della gerarchia, richiede al programmatore di specificare il tipo di classe utilizzato per il cast in parentesi . Tuttavia, downcasting è più complessa di upcasting
4

Tentativo seguente abbattuto :

Persona p = new Persona ( " Jane " ) ;

MalePerson m = . ( MalePerson ) p ;

Questo tentativo non riesce , e non dovrebbe essere difficile capire perché . Mentre è ragionevole supporre che un MalePerson è una persona, non è ragionevole per il computer per scontato che tutte le persone sono MalePersons . Alcuni possono essere FemalePersons , e la differenza può o non può essere banale per scopi del computer . Giusto per essere sicuri, il programma genera un errore .

Abbattuto può avvenire solo se un upcast è verificato prima , motivo per cui il upcast al punto 3 era valido , ma non al punto 4. Questo può rendere il suono upcasting inutile in un primo momento . Si pone la questione del perché la upcast è stata eseguita in primo luogo , ma sostengono che il pensiero
5

consideri il seguente metodo : .

Public void saluta (Persona p ) {

se ( p instanceof MalePerson ) {

MalePerson m = ( MalePerson ) p ;

m.doMaleThings () ;

} else if ( p instanceof FemalePerson ) {

FemalePerson f = ( MalePerson ) p ;

f.doFemaleThings ();

} else throw new GenderConfusionException ( ) ;

}

l'autore di questo metodo non ha alcun modo di sapere in anticipo se questo metodo viene chiamato con un MalePerson o un oggetto FemalePerson , così usa l' oggetto Person generico . Poi , usa il comando instanceof per eseguire il polling della Persona dato e vedere se lui dovrebbe farlo abbattuto come un maschio o di una persona di sesso femminile .

 

Programmazione © www.354353.com