“Conocimientos Programación>Programación Java

Cómo encasillado en Java 6

2014/7/31
En la programación de computadoras , encasillamiento se refiere a tomar un objeto de un tipo y convertirlo en un objeto de otro tipo. En Java 6 , esto por lo general , aunque no siempre, se debe ya sea upcasting o downcasting , que significa lanzar un objeto hacia arriba o abajo en la jerarquía de herencia. Instrucciones
1

Pegar las siguientes clases de Java en un archivo de texto en blanco. Estos son la clase que se utilizará para el tutorial:

public class Persona { }

MalePerson public class Persona { }
2

Pega el siguiente upcast :

persona p = new MalePerson ( " Tom ");

MalePerson la clase es una subclase de la persona, por lo que este es un yeso en la jerarquía . Conversión hacia arriba es el tipo más fácil del reparto de lograr. Java , simplemente sabe qué hacer cuando se asigna una subclase de uno de sus antepasados. Tome nota , sin embargo : Java siempre recuerda lo que un objeto es en realidad durante una conversión hacia arriba . Incluso ahora que la MalePerson " Tom " se ha asignado a una persona objeto genérico , Java recuerda que este objeto es realmente un MalePerson
3

Pega el siguiente abatido : .
< P > persona p = new MalePerson ( " Tom ");

MalePerson m = ( MalePerson ) p;

Downcasts como este, que se mueven en la jerarquía , exigen al programador especificar el tipo de clase que se utiliza para el reparto entre paréntesis. Sin embargo , downcasting es más complejo que upcasting
4

intente realizar las siguientes abatido :

Persona p = new Persona ( " Jane ");

MalePerson m = . ( MalePerson ) p;

este intento falla , y no debería ser difícil ver por qué. Si bien es razonable suponer que un MalePerson es una persona, no es razonable que el equipo que asumir que todas las personas son MalePersons . Algunos pueden ser FemalePersons , y la diferencia puede o no puede ser trivial para los propósitos de la computadora. Sólo para estar seguro, el programa genera un error .

Abatido sólo puede ocurrir si se ha producido una conversión hacia arriba primero , por lo que la conversión hacia arriba en el paso 3 es válido , pero no en el paso 4 . Esto puede hacer que el sonido upcasting inútil al principio. Se plantea la pregunta de por qué la conversión hacia arriba se llevó a cabo en el primer lugar, pero sostienen que el pensamiento
5

Considere el siguiente método : .

Public void saluda (Persona 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 ();

}

el escritor de este método no tiene manera de saber de antemano si este método se llama con un MalePerson o un objeto FemalePerson , por lo que utiliza la persona objeto genérico. A continuación , utiliza el comando instanceof para sondear la persona dada y ver si habría de hacerlo abatido como un hombre o una persona de sexo femenino .

Programación Java
ADA Vs . Java
Cómo hacer un juego Java como RuneScape
Cómo dar formato a una barra de estado en Java RPG Juego
Cómo importar PHP Java
Cómo programar pausas en Java
Cómo hacer fichas de Android
ConnectException : Conexión rechazada en Java
Cómo devolver un valor booleano en Java
Conocimientos Informáticos © http://www.ordenador.online