Hola.
Respecto a las variables en general, ¿Puedo entender que la referencia es válida para variables del tipo clase y no para las de tipo primitivo? ¿Las de tipo primitivo si guardan el valor y no un a referencia a memoria?
Pregunto esto con base a una duda que me surgió luego de ver la clase y a este análisis que efectué.
public class CrearCuenta {
public static void main(String[] args) {
//-------------------------------------------------------------------
Cuenta primeraCuenta = new Cuenta();
Cuenta segundaCuenta = new Cuenta();
//Asignación de valor a las variables (clase)
primeraCuenta.saldo = 10;
segundaCuenta.saldo = 20;
//********
System.out.println("Cuenta 1 --> " + primeraCuenta + " --- Cuenta 2 --> " + segundaCuenta);
System.out.println("Cuenta 1 --> " + primeraCuenta.saldo + " --- Cuenta 2 --> " + segundaCuenta.saldo);
segundaCuenta = primeraCuenta;
System.out.println("Cuenta 1 --> " + primeraCuenta + " --- Cuenta 2 --> " + segundaCuenta);
System.out.println("Cuenta 1 --> " + primeraCuenta.saldo + " --- Cuenta 2 --> " + segundaCuenta.saldo);
segundaCuenta.saldo += 100;
System.out.println("Cuenta 1 --> " + primeraCuenta + " --- Cuenta 2 --> " + segundaCuenta);
System.out.println("Cuenta 1 --> " + primeraCuenta.saldo + " --- Cuenta 2 --> " + segundaCuenta.saldo);
System.out.println();
System.out.println();
System.out.println();
//Resultado en consola
// Cuenta 1 --> Cuenta@6504e3b2 --- Cuenta 2 --> Cuenta@515f550a ---------> Direcciones de memoria diferente por ser diferentes objetos
// Cuenta 1 --> 10.0 --- Cuenta 2 --> 20.0
// Cuenta 1 --> Cuenta@6504e3b2 --- Cuenta 2 --> Cuenta@6504e3b2 ---------> Direcciones de memoria iguales luego de asignar cuenta 1 a cuenta 2
// Cuenta 1 --> 10.0 --- Cuenta 2 --> 10.0
// Cuenta 1 --> Cuenta@6504e3b2 --- Cuenta 2 --> Cuenta@6504e3b2
// Cuenta 1 --> 110.0 --- Cuenta 2 --> 110.0
//-----------------------------------------------------------------
//Asignación de valor a las variables (primitivas)
int primeraCuentaSaldo = 10;
int segundaCuentaSaldo = 20;
//********
System.out.println("Cuenta 1 --> " + primeraCuentaSaldo + " --- Cuenta 2 --> " + segundaCuentaSaldo);
segundaCuentaSaldo = primeraCuentaSaldo;
System.out.println("Cuenta 1 --> " + primeraCuentaSaldo + " --- Cuenta 2 --> " + segundaCuentaSaldo);
segundaCuentaSaldo += 100;
System.out.println("Cuenta 1 --> " + primeraCuentaSaldo + " ---Cuenta 2 --> " + segundaCuentaSaldo);
//Resultado en consola
// Cuenta 1 --> 10 --- Cuenta 2 --> 20
// Cuenta 1 --> 10 --- Cuenta 2 --> 10
// Cuenta 1 --> 10 ---Cuenta 2 --> 110 --------------------------> Cuenta 1 mantiene su valor, no la referencia del valor de Cuenta 2
}
}
En el caso de la variable de tipo clase si hay un valor referenciado, pero en las variable de tipo Integer mantienen mantienen la referencia al valor propiamente dicho.
Agradezco me confirmen o no lo anterior.
Gracias