Está en la página 1de 8

Bautista Arce Diego Martin 3MA

TECNOLOGICO NACIONAL DE MEXICO


INSTITUTO TECNOLOGICO DE ENSENADA

Programación avanzada

Maestra: Cristina Ramírez Fernández

Bautista Arce Diego Martin 19760435

Práctica 4. Extensión de clases

Parte teórica
1. Indique cual es la diferencia entre una composición de clases y la herencia entre
clases. Dé un ejemplo de cada uno de estos conceptos.
Tanto la Composición como la Herencia se ocupan de proporcionar propiedades o
comportamientos adicionales a una clase. La herencia es la capacidad de una clase de
heredar propiedades y comportamiento de una clase primaria extendiéndola. Por otro
lado, Composición es la capacidad de una clase para contener objetos de diferentes
clases como datos de miembros.
Aunque la herencia y la composición son dos conceptos de OOP, son bastante diferentes
en lo que permiten que el programador logre. La herencia es la capacidad de una clase
de heredar propiedades y comportamiento de una clase primaria extendiéndola, mientras
que la Composición es la capacidad de una clase de contener objetos de diferentes
clases como datos de miembros. Si una clase se extiende, hereda todas las propiedades
/ comportamientos públicos y protegidos y la subclase puede anular esos
comportamientos. Pero si una clase está contenida en otra, el contenedor no tiene la
capacidad de cambiar o agregar comportamiento al contenido. La herencia representa
una relación "es-a" en OOP, mientras que la composición representa una relación "tiene-
a".
Bautista Arce Diego Martin 3MA

2. Indique cuando se usa la relación tiene_un, es_un, en un diagrama de clases UML.


Dé un ejemplo de cada tipo de relación. Use starUML para reflejar cada tipo de relación.
Una relación es la herencia. Este tipo de relaciones permiten que una clase (clase hija o
subclase) reciba los atributos y métodos de otra clase (clase padre o superclase). Estos
atributos y métodos recibidos se suman a los que la clase tiene por sí misma. Se utiliza
en relaciones “es un”.

La composición implica que los componentes de un objeto sólo pueden


pertenecer a un solo objeto agregado, de forma que cuando el objeto agregado
es destruido todas sus partes son destruidas también.

Parte práctica
Descripción del problema
El dueño de una yarda desea llevar el control de los vehículos y los clientes que tiene.
Para cada vehículo, desea indicar:
- color, precio, marca, modelo, y disponibilidad.
Para cada cliente, desea indicar:
- ine, nombre, apellidos, domicilio, número de celular y escolaridad.
Bautista Arce Diego Martin 3MA

Además, por cada vehículo o cliente, usando un menú de opciones, desea agregar uno
nuevo o listar los existentes.

Creamos nuestra clase Yarda, y las subclases Vehículo y Cliente.

Agregar los atributos correspondientes a cada clase y con una visibilidad privada, para
solo acceder mediante la misma clase, también utilizar la función de la IDE para colocar
los get y los set de cada atributo.
Bautista Arce Diego Martin 3MA

En la main class genero mis dos objetos Scanner uno para ingresar la opción y el
otro para ingresar los datos que se pide, creo dos Arraylist para almacenar a mis
vehículos y clientes (objetos) y poder agregar o poner sus atributos.
Utilizo un while para crear el menú de opciones que constara de
1. Generar cliente
2. Generar vehículo
3. Listar cliente
4. Listar vehículo
5. Salir
Bautista Arce Diego Martin 3MA

Con un switch agregare los 5 cases, que previamente se puso en el while, en mi


case 1 creo mi objeto cliente y con mi segundo scanner pido los atributos de este
utilizando set, y al final con clientes.add(cliente); lo agrego al arraylist, y lo mismo
con el case 2.
Bautista Arce Diego Martin 3MA

Para finalizar en el case 3 y 4 se crea un ciclo for que recorrerá las listas de array
que se crearon al principio, y con un
System.out.println(clientes.get(i).getIne());
se utilizara el get para acceder al registro de clientes si es que ya hay uno e
imprimir sus atributos así también se hace en el case 4 pero con los vehículos, y
con el case 5 se cambia e status a false y cierra el menú y la lista.
Bautista Arce Diego Martin 3MA

En esta imagen se observa


como se registran los datos del
cliente y los atributos del
vehículo.

En esta imagen se observa


como se despliega los datos del
cliente y el vehículo previamente
ingresados.
Bautista Arce Diego Martin 3MA

Referencias

Diferencia entre herencia y composición | 2020. (2020, 26 enero). Diferencia entre herencia y

composición. https://es.bccrwp.org/compare/difference-between-inheritance-and-

composition/#:%7E:text=La%20herencia%20es%20la%20capacidad,clases%20como%2

0datos%20de%20miembros.

Java ArrayList. (2018, 15 junio). Java ArrayList.

https://www.w3schools.com/java/java_arraylist.asp

También podría gustarte