Bien, continuamos con relaciones de objeto bueno en la programación orientada objeto y que en la vida
real los objetos se relacionan y también se componen unos con otros.
Por ejemplo, un automóvil podría estar compuesto de otro objeto, un motor, por ejemplo, cuatro ruedas,
un estanque.
También va a tener asociado un dueño o propietario que sería el conductor.
En fin, son diferentes objetos que podrían componer el automóvil y de esa forma no tenemos una sola
clase que hace todo, sino que dividimos en diferentes clases que sean componiendo una a otra.
Eso se le conoce como granularidad, que hace que nuestro código sea mucho más escalable y también más
fácil de mantener y reutilizables.
Bueno, una de la idea de la programación orientada objeto vamos a comenzar primero con un pequeño diagrama
o M.L.
También la idea de que antes de programar nuestro código, nuestras clases, tengamos algún esquema
igual.
Cuando creamos tablas del anciano es importante hacer un diagrama, por ejemplo relacional entre la
tabla con los objetos.
Lo mismo tengo que tener relaciones.
Nuestra clase que van a participar en nuestro contexto o aplicación bien diferentes herramientas.
Por ejemplo, podemos utilizar un preclo, pero también tenemos estar.
Súmele la versión 1 es open source, pero de las 2, la 3 y hay que pagar.
Entonces recomendaría si van a usar Star o M.L.
Utilicen la 1 que también se le conoce como versión 5, pero también tenemos algo Hummel.
Esas serían las 3 herramientas que recomiendo.
Voy a utilizar un velo en la página.
Es un pré local de pintor.
Bueno, Acadé es un sistema escritorio para Linux, pero también se puede cargar esta herramienta.
Un vuelo para Windows, para Mackintosh y por supuesto para Linux.
Se lo cargan, los comprimen y el ejecutable umpire lo puntuó.
EXE en el caso Windows se encuentra en la carpeta bin.
Perfecto, entonces es para diseñar nuestra clase un diagrama o MLE.
Bien, hacemos un clic en class.
Bueno, esto es bien resumido porque en verdad súmele podría dar para un curso completo nuestra primera
clase.
Bueno, automóvil ok, ahí tenemos.
Vamos a tener otra clase, por ejemplo, persona.
Ok.
Qué más?
Otra más.
Con un clic.
Siempre con un clic.
Motor.
Ok.
Otra más.
Vamos a tener rueda en singular.
Un solo objeto.
Pero el automóvil tiene cuatro ruedas.
Y por último, un estanque.
Con esto es más que suficiente.
Bueno, podríamos tener mucho más.
La radio, por ejemplo, las puertas, ventanas.
En fin, cada componente.
Un auto podría ser un objeto distinto.
Entonces el estanque de bencina.
O dicen perfecto.
Un automóvil está relacionado a este objeto.
De hecho.
Se componen cada uno de estos tipos son atributos de la clase automóvil.
Entonces.
Bueno, no necesario colocar los atributos en el diagrama.
Solamente las relaciones.
Por ejemplo, si quiero indicar que tanque es un atributo de automóvil, es una relación de asociación.
Entonces marcamos flecha flecha continua, un clic en automóvil y un clic en el tanque.
Perfecto.
Ahí tenemos.
Eso indica que está en que forma parte de automóvil.
Es un atributo, por supuesto privado y del tipo del estanque.
Está asociado a una relación estructural, una relación fuerte, pero también persona.
Ese conductor también motor.
Y acá hay que tener cuidado, porque Rueda es una colección, es una agrupación, no es una sola rueda.
El automóvil tiene cuatro ruedas, por lo tanto es una relación de composición o agregación.
Automóvil está compuesto por cuatro ruedas.
Entonces, composición es cuando hablamos de uno o más sujeto con el rombo.
Cualquiera de los dos.
La diferencia es que el rombo oscuro es una semántica.
Quiere decir que hay una dependencia debida.
Es decir, la rueda no puede existir sin el automóvil.
Y tenemos agregación.
Que lo mismo agregación composición.
Pero agregación no tiene una dependencia de día.
Es decir, puede existir sin el automóvil.
Se fijan.
Pero también puede estar asignado automóvil, mientras que composición no tiene que estar obligatoriamente
obligadamente asociado a un automóvil.
Bien, vamos a colocar esta acá.
Agregación.
Hacemos un clic.
No se marcó a ese clic automóvil y clic acá, y el rombo queda justo en el lado del automóvil que indica
la colección automóvil tiene un arreglo de ruedas de cuatro ruedas, se fijan y listo.
Ahí tenemos el diseño.
Faltaría los atributos, por ejemplo, de cada uno.
Partamos por persona que vean simple un click derecho new atributo.
Hacemos un clic el tipo bien por defecto vienen.
Creo que acá del tipo String yo lo tengo configurado como lenguaje Java viene por defecto con C++,
por lo tanto vienen en minúscula, pero da lo mismo, pueden colocar con mayúscula minúscula para el
caso del diagrama un M.L.
Da igual.
El nombre te vamos a colocar nombre deja están los modificadores de visibilidad o acceso private protected
public se fijan por defecto private ok.
Otro más atributo también podemos colocar métodos ya, pero solamente vamos a colocar atributos, los
métodos que tras setter, por lo general en CML no es necesario indicar porque se asume por defecto
que debieran tener y eltren setter bien atributos apellido.
Del tipo String lo pueden escribir o buscar, ok.
Con estos dos está bien, podríamos tener, no sé, dirección, correo, en fin, perodo con está bien,
sí.
Más que nada para ver relación objeto de como vemos una clase súmele se conforma por tres parte primero
el nombre, luego vienen los atributos y en el tercero los métodos.
Luego el estanque va a tener capacidad, entonces atributo del tipo entero.
Vamos a ver Integer, aunque también podría ser primitivo, da lo mismo.
Capacidad de tanque, pero solamente capacidad, porque estamos dentro de la clase tanque.
Private Ok.
Bueno, se fijan quen o ML cuando es privat se coloca un signo menos cuando es públic un signo más cuando
protected un símbolo gatto cuando difficult es como una cola chancho y va el nombre del atributo.
El tipo gato, a diferencia en Java, que es el tipo espacio, el nombre del atributo o variable con
el modificador private se fijan qué más tenemos capacidad?
Bueno, con eso estamos bien.
Para qué más motor?
Un atributo del tipo doble, pues sea con mayúscula.
Creo que te meta.
Bueno, en mayúscula o primitivo en minúscula.
Cilindrada.
De hecho, ya lo tenemos en el código, pero lo tenemos directamente en la clase automóvil.
Ahora la idea que este motor y motor sea a su vez atributo de automóvil.
Entonces, si queremos obtener la cilindrada del automóvil, primero invocamos billet motor y motor
jet cilindrada.
Bueno, ok.
Podría tener también un tipo.
Tipo moto.
Para el caso del Humble lo dejar de tipo string, pero podría ser perfectamente un enumeras por un en
un tipo motor, por ejemplo diesel o bencina.
Y si no queremos complicar más?
Puede ser.
También soy del tipo poster.
Sí, del tipo rotativo lineal b4, b6, b12.
En fin, cualquier tipo de motor.
Lo dejamos simple.
Ve, incineró o dícele private ok.
Ruedas Bueno, Rueda puede tener fabricante un atributo
del tipo string, okay.
También va a tener.
Aró, por ejemplo, del tipo entero en Teyá o Primitivo, da lo mismo.
Ok.
Y un ancho.
También del tipo Tellas, aunque quizás sería mejor Double podríaser decimal.
Y ahí tenemos, hacemos un clic en La Flecha.
Ok, acá están los componentes.
Entonces el motor está formado por estos objetos, que a su vez son atributo.
Cada uno es atributo de la clase motor, pero en ML como práctica no se indican los nombre atributos
de la clase relacionada de los tipo, solamente el nombre atributo, por ejemplo estri double integer
y con eso estamos listo.
Bueno, tampoco se suele utilizar los lletra setter porque es dar mucho detalle y se asume que tiene
que ser así.
No es un curso Omella.
La idea de ver cómo lo más simple posible para no complicarnos tanto y extendernos tanto.
Pero ya con esto tienen una buena introducción para comenzar a realizar su diagrama y siempre las relaciones.
Por ejemplo, flecha continua indica que es un atributo relación de asociación es parte automóvil.
Está compuesto por esta clase de proyectos objeto que son atributos.
Cuando rombo es muy parecido, pero de colección tiene un arreglo de rueda, pero también tenemos flecha
punteada.
Relación de dependencia no es atributo, pero si utiliza un objeto o alguna clase, como por ejemplo
cuando utilizamos una clase para instanciar con el operador new dentro de algún método.
Pero no es atributo, solamente lo utilizamos el objeto distanciamos y hacemos algo con él.
O bien cuando se pasa por argumento en algún método, también recibimos un objeto como argumento.
Si hacemos algo con el sujeto, también una relación de dependencia es una relación más débil versus
una de asociación que más fuerte es un atributo la clase.
Acá no solamente lo utiliza por ejemplo el main.
La clase con el método main utiliza varias clases.
Se fijan?
Revisemos.
Acá tenemos el método main, utiliza automóvil.
En fin, se fijan.
Pero automóvil no es atributo de la clase.
La utiliza entonces y sería una relación de dependencia con línea punteada.
También tenemos para la herencia.
Se fijan que continua y también se utiliza para interfaz para interfaces, aunque se suele usar interface
con línea punteada o discontinua como ésta, pero termina en triángulo para implementar interfaces.
Se le conoce como relación de realización de interfaces que realiza algún contrato, alguna implementación.
Bueno, pero después vamos a ver.
Pero bien, eso es todo.
Continuamos la siguiente clase ya con el código vamos a crear esta clase, implementar los atributos,
las relaciones y vamos a comenzar a relacionar nuestros objeto.
Nos vemos.