Detalles del post: El complejo mundo de las instancias en Java

21.12.05

Permalink 20:56:08, by admin Email , 629 palabras, 419 views views  
Categorías: Documentación, Artículos

El complejo mundo de las instancias en Java

En la última presentación del proyecto nos surgió una duda bastante buena acerca de las instancias (objetos) de clases.

Cuando a 2 objetos creados x1 y x2 (clase X)les asignamos a uno de sus atributos (X.Y) un mismo objeto y. Realmente hacen referencia al mismo objeto y o crean su propia instancia del susodicho objeto y,independiente la una de la otra?

Para resolver esta duda he creado un pequeño programa ejemplo que nos permite despejarla.
Se crearan 2 coches (coche1 y coche2) pertenecientes a la clase Coche con 1 atributo piloto. Que pasará al asignarles a ese atributo un mismo piloto creado? Al modificar el piloto de uno se modifica el piloto del otro? Que pasa si borro el piloto de uno de ellos? Y si borro uno de los coches?

 

[Mas:]

CÓDIGO:



ass Prueba {
 
 /**
  * @param args
  */
 public static void main(String[] args) {

  Piloto alonso = new Piloto("Alonso")   /creamos nuevo piloto
  System.out.println("Piloto creado: " +alonso +"\n");
 
  Coche coche1 = new Coche(alonso)    //asignamos el mismo piloto a los 2 coches
  Coche coche2 = new Coche(alonso);
 
  System.out.println("Ref.Piloto: " +alonso);
  System.out.println("Nomb.Piloto: " +alonso.getNombre() +"\n");
 
  System.out.println("Ref.Piloto del coche 1: " +coche1.getPiloto());
  System.out.println("Ref.Piloto del coche 2: " +coche2.getPiloto());
  System.out.println("Nomb.Piloto del coche 1: " +coche1.getPiloto().getNombre());
  System.out.println("Nomb.Piloto del coche 2: " +coche2.getPiloto().getNombre()+"\n");
 
  System.out.println("Cambiamos el nombre del objeto a \"alonsillo traidor\" \n");
  alonso.setNombre("Alonsillo traidor");    //cambiamos el nombre del piloto a Alonsillo
 
  System.out.println("Ref.Piloto: " +alonso);
  System.out.println("Nomb.Piloto: " +alonso.getNombre() +"\n");
 
  System.out.println("Ref.Piloto del coche 1: " +coche1.getPiloto());
  System.out.println("Ref.Piloto del coche 2: " +coche2.getPiloto());
  System.out.println("Nomb.Piloto del coche 1: " +coche1.getPiloto().getNombre());
  System.out.println("Nomb.Piloto del coche 2: " +coche2.getPiloto().getNombre());
 }}

 
 



SALIDA POR CONSOLA:
 

Piloto creado: Piloto@82ba41

Ref.Piloto: Piloto@82ba41
Nomb.Piloto: Alonso

Ref.Piloto del coche 1: Piloto@82ba41
Ref.Piloto del coche 2: Piloto@82ba41

Nomb.Piloto del coche 1: Alonso 
Nomb.Piloto del coche 2: Alonso 

Cambiamos el nombre del objeto a "alonsillo traidor"    

Ref.Piloto: Piloto@82ba41   
Nomb.Piloto: Alonsillo traidor  

Ref.Piloto del coche 1: Piloto@82ba41
Ref.Piloto del coche 2: Piloto@82ba41

Nomb.Piloto del coche 1: Alonsillo traidor
Nomb.Piloto del coche 2: Alonsillo traidor

Por lo tanto queda demostrado que en realidad es el mismo objeto o instancia de clase la que se referencia desde cada uno de los atributos de los objeto coche1 y coche2. Es más al modificar cualquier aspecto del objeto piloto este cambio se reflejará en todos los objetos que referencien a éste.

NOTA:Todo esto viene por el hecho de que en la base de datos db4o existe un método que consiste en borrar en cascada todos los objetos referenciados por un objeto "padre" (en el sentido de asociación y no herencia), entonces se debe tener mucho cuidado a la hora de utilizar este método .cascadeOnDelete() puesto que  puede borrar un objeto que aún esté referenciado por otro objeto ("otro coche") el cual se quedaría sin "hijo".

Código fuente:
Coche.java
Piloto.java
Prueba.java

Dirección para hacer trackback a este post:

http://www.mhproject.org/htsrv/trackback.php/77

Comentarios, Trackbacks, Pingbacks:

Trackback desde: headlights [Visitante]
vw auto parts
Coolheadlightsrvw auto parts !!
PermalinkPermalink 02.05.06 @ 16:27
Trackback desde: scat girls [Visitante]
rape stories
hscat girls porn2
rape porn stories1.
animal sex zoo1
PermalinkPermalink 04.05.06 @ 03:50
Trackback desde: rape stories [Visitante]
animal sex
hscat girls porn2
rape porn stories1.
animal sex zoo1
PermalinkPermalink 04.05.06 @ 04:33
Trackback desde: unclaimed money [Visitante]
health insurance quotes
Greehealth insurance quotestirefinance homesngunclaimed moneys !!
PermalinkPermalink 05.05.06 @ 02:09
Trackback desde: refinance homes [Visitante]
refinance homes
Greehealth insurance quotestirefinance homesngunclaimed moneys !!
PermalinkPermalink 05.05.06 @ 02:27
Trackback desde: refinance homes [Visitante]
refinance homes
Greehealth insurance quotestirefinance homesngunclaimed moneys !!
PermalinkPermalink 05.05.06 @ 02:30
Trackback desde: unclaimed money [Visitante]
health insurance quotes
Greehealth insurance quotestirefinance homesngunclaimed moneys !!
PermalinkPermalink 05.05.06 @ 02:31
Trackback desde: young girls [Visitante]
zoo sex
young girls
naked youth
zoo sex
PermalinkPermalink 11.05.06 @ 00:31
Trackback desde: naked youth [Visitante]
zoo sex
young girls
naked youth
zoo sex
PermalinkPermalink 11.05.06 @ 01:49
Trackback desde: young girls [Visitante]
young girls
young girls
naked youth
zoo sex
PermalinkPermalink 12.05.06 @ 14:26
Trackback desde: naked youth [Visitante]
naked youth
young girls
naked youth
zoo sex
PermalinkPermalink 12.05.06 @ 15:21
Trackback desde: young girls [Visitante]
zoo sex
young girls
naked youth
zoo sex
PermalinkPermalink 12.05.06 @ 15:21
Trackback desde: zoo sex [Visitante]
young girls
young girls
naked youth
zoo sex
PermalinkPermalink 12.05.06 @ 15:22
Trackback desde: BoughtPert [Visitante]
BoughtPert
PayableMaintenance FundsAlready
PermalinkPermalink 14.05.06 @ 16:42
Trackback desde: flowers garden [Visitante]
flowers garden
See beauty of flowers at this flowers great site! XUYZaCHi0T
PermalinkPermalink 26.05.06 @ 20:34
Trackback desde: flower garden [Visitante]
flower garden
See beauty of flowers at this flower garden great site! XUYZaCHi0T
PermalinkPermalink 26.05.06 @ 23:47
Trackback desde: my wife in bed [Visitante]
wife lovers
bang my wife
PermalinkPermalink 16.03.07 @ 14:41

This post has 1 feedback awaiting moderation...

Hacer comentario:

Tu email no se mostrará en la página.
Se mostrará tu URL

etiquetas XHTML permitidas: <p, ul, ol, li, dl, dt, dd, address, blockquote, ins, del, span, bdo, br, em, strong, dfn, code, samp, kdb, var, cite, abbr, acronym, q, sub, sup, tt, i, b, big, small>
(Saltos de línea se convierten en <br />)
(Set cookies for name, email and url)
(Allow users to contact you through a message form (your email will NOT be displayed.))
This is a captcha-picture. It is used to prevent mass-access by robots.

Please enter the characters from the image above. (case insensitive)

MHProject v2.0

Blog referente al grupo de investigación y desarrollo (MHProject) realizado en la Universidad Pública de Navarra por más de 12 personas. El proyecto se basa en el desarrollo e investigación de aplicaciones y sistemas para Televisión Digital Interactiva desarroladas sobre Java y basadas en el estandard abierto MHP (Multimedia Home Platform).

Alejandro Fanjul Hola que tal soy Alejandro Fanjul, webmaster e integrador de MHProject, para cualquier consulta por favor dirigirse a: alex.fanjul@mhproject.org


Mi currículum vítae.(pdf)

Enero 2009
Lun Mar Mie Jue Vie Sab Dom
<< <     
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

Añade el calendario de MHProject
a tu Google Calendar.

Buscar

MHPenlaces

PresentacionesDocumentaciónLinks (Enlaces)Desarrollo del Proyecto

Otros

Sindicar esta bitácora XML

What is RSS?

Who's Online?

  • Guest Users: 2

powered by
b2evolution

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.