Bienvenidos.
Continuamos con la clase genericas, así como tenemos los métodos genérico.
También podemos implementar una clase completa con tipo genérico, es decir, con atributos de esta
clases, que maneje un tipo flexible que pueda hacer de cualquier cosa.
De qué tipo?
Pero recuerden, también se puede limitar o acortar a un cierto tipo de una clase, un límite superior.
Por ejemplo, una interfaz, una clase abstracta o clase padre, tal como vimos con el stent.
Vamos a ver un ejemplo de transporte con un camión que puede llevar, guardar y transportar varios tipos
de objetos.
Por ejemplo, automóviles, maquinaria pesada, pero también animales, por ejemplo, transportar caballos.
Entonces vamos a cerrar lo que tenemos.
Cerramos estas dos clases y nos vamos a ir acá.
Vamos a crear un nuevo pacato.
Lo íbamos a nombrar muy parecido.
Generics, pero que las generics class o clase genérica, en el fondo nuestro ejemplo perfecto.
Ahí tenemos el pacato.
Primero vamos a crear la clase, una clase camión
y camión.
Va a tener un atributo objetos del tipo lista.
Un array list.
Entonces private list.
Objetos.
Perfecto.
List.
Lo importamos.
Bien.
Vamos a partir primero de la forma sin utilizar genéricos para que veamos la diferencia.
Y cuánto cambia entre utilizar una clase que no use genéricos y una clase con genéricos.
También va a tener un máximo elementos private int máximo, es decir, la cantidad máxima elemento a
transportar.
Bien.
El constructor.
Como siempre.
El máximo o solamente el máximo?
Y faltaría también inicializar objetos por acá.
Dis.
Punto.
Objetos new array.
Listo.
De momento, simple.
Se fijan.
No estamos utilizando nada de genérico.
Vamos a tener el método add a objeto o simplemente le colocamos como puede ser cualquier tipo.
Y vamos a pasar un tipo genérico objeto por ahora, cualquier tipo object objeto perfecto y lo vamos
a guardar.
Entonces, con dichos objetos.
Punto add y guardamos objetos.
Bien, vamos a validar.
Recordemos que solamente tenemos un máximo elemento.
Entonces con un if vamos a la cantidad que tiene.
Punto 6.
Recuerden que list.
Bueno, después lo vamos a hablar en detalle, pero Liz tiene el método 6 para saber la canti elementos
de la lista.
Entonces por acá.
6.
Entonces si es menor o igual al máximo a Max.
Perfecto.
Podemos seguir guardando objetos.
De lo contrario.
Bueno.
Se llenó el camión.
Entonces podríamos lanzar una excepción.
Entonces.
From New un ranting exception.
No hay más espacio, pasamos un mensaje de error personalizado por el constructor.
Bueno, manejo error.
De todas formas, después vamos a ver.
Acá estamos lanzando con Frodo un objeto decepción, que es un objeto especial que es lánzale.
Es decir, todo objeto para manejar errores del tipo septón tiene que ser lánzale y también se puede
manejar con el trait catch.
Después vamos a ver, por ahora alojamos así para manejar errores.
La idea que el camión también sea y te dable que podamos recorrer los elementos, entonces podremos
implementar una interfaz en camión.
Acá sería otra forma porque también podríamos retornar objetos y los objetos, que es una lista la podemos
iterar, pero acá vamos a ver algo nuevo, distinto que también después con el API de colección de Yaba
lo vamos a profundizar más, lo vamos a aterrizar, pero ahora solamente lo vamos a ver.
Entonces vamos a implementar la interfaz y te diable.
Entonces cualquier objeto que implemente esta interfaz se puede iterar, puede pasar por un forillo
entonces y derable bien, lo dejamos de esa forma llega.
Como es una interfaz, nos pide implementar un método y te datos.
Y te datos oh, qué?
Entonces este método es obligación de la interfaz y acá la implementación súper simple, porque el atributo
objetos de tipo list tiene el método y teratoma.
De hecho, el list también implementa la interfaz literal.
Entonces, objetos o objetos?
Punto y te datos y listo.
Acá tenemos simplemente Hermeto y ahí tenemos el camión.
Algo simple vamos a tener más clases, por ejemplo, por acá automóvil.
Pero lo vamos a mantener simple, solamente con la marca.
Por ejemplo, Privat
Privat, la marca nada más.
Si para el ejemplo bien un constructor.
Con la marca y los métodos de transceptor.
Listo.
De hecho, sed marca.
No sería necesario.
De que lo vamos a pasar solamente con el constructor, pero el sí.
Entonces implementamos el guía de marca y el constructor listo.
Vamos a tener también maquinaria.
Lo mismo un atributo simple
con el tipo.
Por ejemplo, si una grúa, horquillas o bulldozer, un cargadores excavadora, perforadora.
En fin, un tipo igual podría tener muchos atributos.
Para simplificar, vamos a sacar uno solo.
Sé que lo importante ver los genéricos en clases.
Bien gué transceptor constructor.
Para pasar el tipo.
Y el jet?
Vamos a tener otra clase.
Animal, por ejemplo.
Privat
nombre
y el tipo bueno, me pregunta mi familia.
En fin.
Por ejemplo, el tipo caballo y nombre, algún nombre de ese caballo constructor.
Que pase ambos, ok.
Y Lockett?
Lo nyet de ambos.
Me falto el otro generad guet, del tipo también.
Perfecto, ya tenemos temporera.
Quedamos hasta acá y la siguiente clase.
Continuamos con la clase ejemplo, con el método Main para poner en funcionamiento estos objetos, para
que interactúen y que tengamos un camión de automóviles, otro de maquinaria pesada y otro camión para
transportar animales y ver cómo se comportan los tipos.
Nada más.
Nos vemos.