Hola!! Vieras que no entiendo bien porque da exception si yo le estoy asignando el valor 'diego', me podrían explicar un poco más, por favor??
Gracias :)
Hola!! Vieras que no entiendo bien porque da exception si yo le estoy asignando el valor 'diego', me podrían explicar un poco más, por favor??
Gracias :)
Hola Mariel..!
Es justamente por eso, por que estas intentando acceder a un valor de un objeto que no existe, por eso Java lanzo la excepción NullPointerException.
Si vamos al código:
public class TestReferencia3 {
public static void main(String[] args) {
Cuenta cuentaDeDiego = new Cuenta();
cuentaDeDiego.titular.nombre = "Diego";
System.out.println(cuentaDeDiego.titular.nombre);
}
}
Vemos que el objeto titular de la clase Cuenta no ha sido inicializado, por lo que intentar acceder a su atributo nombre generará una excepción de NullPointerException.
.
Cuando se lanza una NullPointerException, significa que el programa está tratando de acceder a un objeto que no existe en la memoria o que no ha sido asignado correctamente.
.
Este error suele ser causado por olvidar inicializar un objeto antes de usarlo o por intentar usar un objeto que ha sido eliminado o no ha sido creado adecuadamente.
Si vamos a la clase Cuenta, vemos los atributos sin inicializar, pero también vemos un objeto titular de la clase Cliente sin inicializar.
class Cuenta {
double saldo; //sin inicializar
int agencia; // sin inicializar
int numero; // sin inicializar
Cliente titular; //sin inicializar y titular es un Objeto de la clase Cliente.
}
En Java, cuando creas una instancia de una clase, los atributos de esa clase se inicializan automáticamente con valores predeterminados si no se les asigna explícitamente un valor.
.
Volvamos a la clase TestReferencia3 y veamos como solucionar ese problema:
public class TestReferencia3 {
public static void main(String[] args) {
Cuenta cuentaDeDiego = new Cuenta();
Cliente cliente = new Cliente(); //Se crea un objeto de la clase Cliente llamado cliente
cuentaDeDiego.titular = cliente; // Se asigna el objeto cliente al atributo titular
// de la cuentaDeDiego
cuentaDeDiego.titular.nombre = "Diego"; // Se le asigna "Diego" al atributo nombre del
// objeto titular de CuentaDeDiego
System.out.println(cuentaDeDiego.titular.nombre);
}
}
Lo cuál dara diego:
Diego
Espero haber aclarado tu duda..!