Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: fernandoasr.8 en 28 de Octubre 2014, 02:21
-
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.
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.
-
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:
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:
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:
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!!!!!