Cómo se crean los objetos
La línea Vehículo minivan = nuevo Vehículo(); declara un objeto de tipo Vehículo.
La declaración hace dos cosas:
Declara una variable llamada minivan de clase Vehículo.
Crea una copia física del objeto y le asigna a la minivan una referencia usando el nuevo operador.
El nuevo operador asigna dinámicamente memoria para un objeto y devuelve una referencia a él.
La referencia es, más o menos, la dirección del objeto en memoria asignada por new.
La referencia se almacena luego en una variable.
En Java, todos los objetos de una clase deben asignarse dinámicamente.
Los dos pasos de la declaración se pueden reescribir para mostrar cada paso individualmente.
Vehículo monovolumen; // declarar una referencia al objeto.
minivan = vehículo nuevo(); // asigna un objeto Vehículo.
La primera línea declara minivan como referencia a un objeto de tipo Vehículo.
minivan es una variable que puede hacer referencia a un objeto, pero no es un objeto.
Por ahora, minivan no hace referencia a un objeto.
La siguiente línea crea un nuevo objeto Vehículo y le asigna una referencia a la minivan.
Ahora, la minivan está vinculada a un objeto.
Variables de referencia y asignación
Las variables de referencia de objetos actúan de manera diferente a las variables de tipo primitivo en las operaciones de asignación.
En variables de tipo primitivo, la variable de la izquierda recibe una copia del valor de la variable de la derecha.
En las variables de referencia de objetos, la variable de la izquierda hace referencia al mismo objeto que la variable de la derecha.
Esto puede provocar resultados inesperados.
Ejemplo:
Vehículo auto1 = vehículo nuevo();
Vehículo carro2 = carro1;
car1 y car2 hacen referencia al mismo objeto.
Los cambios realizados a través de car1 o car2 afectan al mismo objeto.
Cuando:
coche1.mpg = 26;
System.out.println(car1.mpg);
System.out.println(car2.mpg);
Habrá la salida 26.
car1 y car2 hacen referencia al mismo objeto, pero no están vinculados de otras maneras.
Las asignaciones posteriores al auto2 no afectan al auto1.
Ejemplo:
Vehículo auto1 = vehículo nuevo();
Vehículo carro2 = carro1;
Vehículo car3 = vehículo nuevo();
coche2 = coche3;
car2 ahora hace referencia al mismo objeto que car3.
El objeto al que hace referencia car1 permanece sin cambios.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3