Referencia a objetos:
- No crean o copian objetos.
- Es una dirección que indica donde están almacenados los métodos y variables de un objeto.
En este ejemplo usamos la clase "Point" del paquete "awt" que contiene atributos de coordenas (x,y). Declaramos 2 puntos,
pero solo inicializamos uno con valores iniciales y referenciamos a este con el otro, luego de cambiar estos valores el otro punto cambia por referencia.
- import java.awt.Point; //Importamos la clase Point con coordenas (x,y)
- public class ProbarReferencia {
- Point punto1, punto2;
- punto2 = punto1; //Aqui se hace la referencia
- punto1.x = 7; //Asignamos valores de punto1
- punto1.x = 4; //punto2 NO mantiene sus valores (0,1) iniciales
- }
- }
El resultado será:
- Valor inicial del Punto 1: (0,1)
- Aqui vale el Punto 2: (0,1)
- Luego de asignar valores al Punto 1...
- Punto 1: (4,1)
- Punto 2: (4,1)
Casting
El casting o casteo es la posibilidad de convertir el tipo de una variable u objeto en otro tipo.
Tipos Castings:
- Conversión entre variables.
- Conversión entre objetos.
- Conversión de objetos a variables
- Conversión de variables a objetos
Con el Casting "NO" modificamos el original, sino que creamos una nueva variable u objeto.
¿Cómo hacer Castings?
- Primero necesitamos una variable u objeto normal a convertir
- Luego declaramos el formato de destino
- En la asignación del valor escrimibos entre paréntesis el destino y el nombre a castear.
En general podemos distinguir 2 caso de casting de variables:
- Casting Implicitos: Cuando el destino es mayor que el origen (destino > origen)
- int > byte
- long > int
- int > char
- double > long
- Casting Explicitos: Cuando el origen es mayor que el destino (origen > destino). Perdemos prescisión!
- double > float
- float > int
- short > byte
- public class Casteo {
- float pi = 3.14f;
- int entero = (int) pi;
- }
- }
El resultado es 3 por se un un entero desprecia lo que hay detrás del punto.
Casting entre Objetos
Es posible también hacer casting entre objeto SIEMPRE que estén relacionados por herencia.
- Entre la misma clase no tiene sentido hacer casting, ya comparten los mismo atributos y comportamientos.
- Una de las Clases tiene que ser Sub-Clase de la otra:
- Se puede hacer casting de una sub-Clase a su super-Clase.
- No es recomendable de una Super-Clase a sus Sub-Clases.
- ClasePadre objetoPadre = new ClasePadre();
- ClaseHija sonObject = (ClaseHija) objeto;
- SuperClase parentObject = new SuperClase();
- SubClase objetoHijo = (SubClase) parentObject;
Casting de Variables a Objetos y Objetos en Variables
NO SE PUEDE CONVERTIR UNA VARIABLE PRIMITIVA A UN OBJETO. Sin embargo las primitivas se pueden transformar
en objetos a través de las "Clases envoltorias" y a través de sus métodos podemos transformar estos objetos en "Strings" por ejemplo.
- byte numero1 = bait.byteValue();
- short numero2 = corto.shortValue();
- int numero3 = entero.intValue();
- long numero4 = largo.longValue();
- float numero5 = flotante.floatValue();
- double numero6 = doble.doubleValue();
Para transformar un String a un valor primitivo usamos el método "ClaseEnvoltoria".ToString()
- byte bait = 127;
- short corto = 32767;
- int entero = 2147483647;
- long largo = 9223372036854775807L;
- float flotante = 351.202012237F;
- double doble = 1498.64313767;
Para convertir entre un valor primitivo a string usamos el método Parse"ClaseEnvoltoria"()
No hay comentarios:
Publicar un comentario