Saltar al contenido

¿Qué es exactamente una variable de referencia en Java? ¿En qué se diferencia de otras variables?

Tatiana, miembro de este gran staff, nos hizo el favor de escribir este escrito porque domina muy bien dicho tema.

Solución:

A lo que se refiere el libro es polimorfismo, más concretamente a través de despacho dinámico.

En pocas palabras, imagina las siguientes clases:

public class Person 

    public Person() 
    

    public void introduceYourself() 
     



public class Texan extends Person 

    public Texan() 
    

    public void introduceYourself() 
        System.out.printLn("Howdy y'all!");
     



public class NewYorker extends Person 

    public NewYorker() 
    

    public void introduceYourself() 
        System.out.printLn("Yo. You got a problem with that?");
     


Ahora, vamos a crear una variable de referencia de tipo Person.

Person myBFF;

Vamos a instanciarlo

myBFF = new NewYorker();

Vamos a pedirle que se presente

myBFF.introduceYourself();

Esto imprime:

Yo. ¿Tienes algún problema con eso?

Ahora, cambiemos tu BFF a un tejano.

myBFF = new Texan();

Llamemos a esa misma línea nuevamente y pidamos a nuestro mejor amigo que se presente.

myBFF.introduceYourself();

Esto imprime:

¡Hola a todos!

En cada caso, la variable de referencia que estaba usando era del tipo Persona. El ejemplo de la variable, en cada caso, fue Neoyorquino y tejano respectivamente. Ese tipo de instancia determina qué versión de presentarte() se llama.

Una variable de referencia es el tipo que especifica en el lado izquierdo (una variable que contiene un tipo de referencia). A lo que se refiere el autor es cuando el lado derecho difiere. Considerar

Object a = new Foo(); 
System.out.println(a.toString());

Si Foo anula el Object.toString() (es decir, si Foo provee un public String toString()) método entonces está Foo‘s toString que se invoca (no Object‘s). Consulte también Anulación y ocultación de métodos en los tutoriales de Java.

Una variable de referencia se ve así:

Coordinate cords; //Cords is the ref. var

Dentro de ese variable de referencia es una dirección dentro de la memoria RAM de su computadora que almacena la attributes de ese objeto. Dado que no instanciamos (en realidad hicimos un objeto de) la dirección del objeto cords antes mencionado es null

Las variables de referencia contienen direcciones en partes reservadas de la memoria.

cords = new Coordinate(0.0,0.0,0.0);

Ahora dentro de la memoria RAM de la computadora hay un espacio reservado que contiene tres variables de tipo flotante. Tras la instanciación, una variable de referencia contiene la dirección. Entonces, ¿qué podemos hacer con las direcciones en Java?

Nada de utilidad. Las direcciones de memoria de Java son inútiles y no puedes verlas (aunque se parecen a 0xFFFFFFF)

Para una representación visual haga clic aquí

Al final de todo puedes encontrar las referencias de otros gestores de proyectos, tú aún tienes la libertad de mostrar el tuyo si lo deseas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *