Autor Tema: Relación entre clases programación orientada a objetos C++ - Asociación.  (Leído 14302 veces)

fernandoasr.8

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 14
    • Ver Perfil
Buen día, he estado investigando sobre la relación entre clases, donde se encuentran asociación, herencia, agregación, entre otras. El problema que tengo, es que no se explica muy bien cómo o de qué manera se codifica el de asociación.
Mi pregunta es, ¿de qué manera se pueden asociar dos clases o dos objetos, uno de cada clase?
Ejemplo.
Tengo dos clases, Libro y Persona.
Código: [Seleccionar]
class Libro{
public:
      string codigo;
}

class Persona{
public:
      string libro;
}
Ese código es solamente para que quede un poco más claro.
¿De qué manera puedo asociar las codigo con libro, si cada una de ellas esta en distintas clases?

Espero me haya dado a entender. De antemano, gracias.
« Última modificación: 01 de Noviembre 2014, 10:18 por Alex Rodríguez »

javi in the sky

  • Avanzado
  • ****
  • Mensajes: 393
    • Ver Perfil
Re:Relación entre clases C++ - Asociación.
« Respuesta #1 en: 28 de Octubre 2014, 08:48 »
Hola, estas definiciones a nivel teórico es posiblemente mejor verlas en la práctica porque así se entienden mejor. Además, lo que es "la teoría" muchas veces no existe de forma evidente en el código de programación. Y para complicarlo todavía más, según el libro que tomes como referencia se puede llamar asociación a una cosa u otra.

La asociación se podría definir como el momento en que dos objetos se unen para trabajar juntos y así, alcanzar una meta, pero siendo ambos objetos independientes.

Ejemplos de asociación sería la frase “usa un” o "tiene un", por ejemplo en la clase cliente puedes tener un objeto tarjeta de crédito:

Código: [Seleccionar]
public class Cliente{

    private int id;
    private String firstName;
    private String lastName;
    private CreditCard creditCard;


}

Otro ejemplo: una Cuenta tiene como titular a un cliente:

Código: [Seleccionar]
public class Cuenta {

private Cliente titular;

...

}

public class Cliente {

private Cuenta cuenta;

}


Y en el ejemplo que pones tú, si suponemos que una persona tiene un libro:

Código: [Seleccionar]
class Libro{
public:
      string codigo;
}

class Persona{
public:
      Libro libro;
}

La clave aquí es que Libro es un tipo de dato. Decimos que un objeto de tipo Persona tiene o usa un Libro (otro objeto). No escribimos string libro; sino Libro libro; donde Libro con mayúsculas es el nombre de una clase y libro con minúsculas el nombre que le ponemos al atributo (en vez de libro podría ser libroDeLaPersona o similar).


Leer esto te puede ser útil (aunque es de Java se puede aplicar a otros lenguajes): http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=511:clases-que-utilizan-objetos-relacion-de-uso-entre-clases-java-concepto-de-diagrama-de-clases-cu00641b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188

Saludos!!!!!

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".