Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

DUDAS

Buenas tardes, tengo algunas dudas con relacion al siguiente codigo de Java:

public class PruebaEncapsulamiento {

    public static void main(String[] args) {

        Cuenta cuenta = new Cuenta();

        Cliente cliente = new Cliente();

        cliente.setNombre("Diego");

        cliente.setDocumento("fdfd343434");

        cuenta.setTitular(cliente);

        Cliente titular = cuenta.getTitular();

        System.out.println(cliente.getNombre());

        System.out.println(cuenta.getTitular().getNombre());

        System.out.println(titular.getNombre());


    }

}

Estoy tratando de comparar la instruccion de la cuarta linea con la dela octava linea. En la primera se guarda un objeto instanciado de la clase Cliente dentro de una variable de nombre cliente y que es del tipo Cliente, resulta claro entonces que se guarda un objeto dentro de una variable que soporta objetos de la clase Cliente. En el segundo caso estoy guardando un atributo del objeto "cuenta", es decir, el atributo "titular" dentro de una variable de nombre "titular" del tipo "Cliente. Tengo las siguientes dudas al respecto: ¿es correcta mi interpretacion de lo que el codigo "hace"? La variable de la clase Cliente guardar en este caso el atributo "titular" ¿El tipo que responde a una clase es comun a todas las variables de esa clase? Cuando defino el tipo "Cliente" ¿significa que esa variable puede "soportar" cualquier valor que responda a algunos de los atributos de la clase "Cliente"?. En definitiva ¿uan variable "Cliente" - como es el caso - ¿puede guardar tanto un objeto instanciado como asi tambien una variable de algunos de sus atributos?. Me queda claro que el objeto cuenta tiene definido como atributo el objeto Cliente y es el valor de ese atributo, previamente "seteado" con el valor del objeto "cliente" es el que en la linea octava se guarda en una variable de tipo Cliente de nombre "titular", entonces lo que surge de eso es que todo el objeto Cliente instanciado en la cuarta linea es guardado en una nueva variable ("titular") en la linea octava ¿es correcto el razoamiento?.

Cualquier orientacion será bienvenida.

Gracias!

Saludos!

1 respuesta

¡Hola Alumno!

Espero te encuentres bien.

Respondiendo a tu pregunta, vamos por partecitas :)

Cliente cliente = new Cliente();

El código anterior, efectivamente lo que hace es crear una instancia de la clase Cliente, llamada cliente, a través del constructor vacío o por defecto de la misma clase, con lo cual se obtiene un objeto vacío de la clase Cliente con el que podemos trabajar posteriormente.

Cliente titular = cuenta.getTitular();

Ahora bien, para entender correctamente lo que hace el código anterior necesitamos entender qué hace el método getTitular() de la clase Cuenta. Y según lo que recuerdo, ese método le devuelve a la cuenta su titular y un titular es una instancia de la clase Cliente, es decir, nos devuelve un Cliente que necesita ser almacenado en una variable de tipo Cliente si queremos persistir esa información, y eso es precisamente lo que hace esa línea de código, solo que en este caso el objeto de tipo Cliente se llama titular.