0% encontró este documento útil (0 votos)
39 vistas34 páginas

Clases Genéricas y Lambdas en Java

La facultad de ingeniería ofrece las carreras de Ingeniería de Sistemas de Información e Ingeniería de Software. El documento presenta el programa de la asignatura de Programación Orientada a Objetos II que incluye temas como clases genéricas, funciones lambda y streams para mejorar la reutilización y mantenibilidad del código.

Cargado por

Emel C.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
39 vistas34 páginas

Clases Genéricas y Lambdas en Java

La facultad de ingeniería ofrece las carreras de Ingeniería de Sistemas de Información e Ingeniería de Software. El documento presenta el programa de la asignatura de Programación Orientada a Objetos II que incluye temas como clases genéricas, funciones lambda y streams para mejorar la reutilización y mantenibilidad del código.

Cargado por

Emel C.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Facultad de Ingeniería

Ingeniería de Sistemas de Información.


Ingeniería de Software.

PROGRAMACIÓN ORIENTADA A
OBJETOS II
2023-1
Contenido

Introducción

Desarrollo

Conclusiones

Referencias
Agenda

• Introducción
• Clases Genéricas
• Lambdas y Streams
Introducción
Introducción

¿Qué significa reutilizar código?


¿Cómo hemos reutilizado código hasta el momento?
¿Por qué es importante reutilizar código?
¿Qué significa mantenibilidad?
¿En qué consiste la escalabilidad?
Logro de Aprendizaje

Conoce las clases genéricas, funciones lambdas y


streams orientando su aplicación a la
reutilización y mantenibilidad de código.
Desarrollo
Introducción

Necesidad de reutilizar código

• La reutilización de código es una práctica fundamental en


la programación orientada a objetos (POO), y se refiere a
la capacidad de utilizar código ya existente en nuevos
proyectos o partes de un proyecto en lugar de tener que
escribir nuevo código desde cero.
Razones para reutilizar código

• Ahorro de tiempo y recursos

• Mejora de la calidad del software

• Facilita el mantenimiento del software

• Fomenta la modularidad del software


Clases genéricas

• En Programación Orientada a Objetos es posible crear


clases que administren distintos tipos de datos.

• Estas clases son muy comunes en la gestión de


colecciones de datos como pilas, colas, listas, árboles,
etc.
Clases genéricas y reutilización

• Las clases genéricas nos evitan duplicar clases que


administran tipos de datos distintos pero implementan
algoritmos (métodos, acciones) similares.

• Por ello, son una herramienta fundamental para reutilizar


código.
Implementación de clases genéricas

• Una clase genérica es una clase que se define con un


parámetro de tipo (o varios), que permite especificar el
tipo de dato que se utilizará en su lugar.
Implementación de clases genéricas

• En Java, este parámetro de tipo se especifica entre


corchetes angulares "<>" justo después del nombre de la
clase.
Implementación de clases genéricas
• Por ejemplo, una clase genérica que implementa una lista
de elementos podría tener la siguiente definición:
Implementación de clases genéricas

• En el ejemplo anterior, la clase "Lista" tiene un parámetro


de tipo "T" que se utiliza para especificar el tipo de datos
que se almacenarán en la lista.

• En el constructor, se crea un arreglo de objetos y este


arreglo es convertido a un arreglo de tipo "T" mediante una
conversión de tipo.

• La lista también proporciona métodos para agregar


elementos y obtenerlos por índice.
Implementación de clases genéricas
• Para utilizar la clase genérica, se especifica el tipo de
datos que se utilizará en lugar del parámetro de tipo al
instanciar la clase.

• Por ejemplo:
Implementación de clases genéricas
• En este ejemplo, se crea una instancia de la clase "Lista"
para almacenar cadenas de caracteres.

• Se agregan dos cadenas y se obtiene la primera cadena


agregada. Como se especificó que la lista es de cadenas
de caracteres, se pueden agregar y obtener cadenas de la
lista.
Uso de clases genéricas
• De forma similar, podríamos utilizar otra instancia de la
clase “Lista” para almacenar otros tipos de datos (enteros,
float u objetos personalizados) siguiendo la lógica
implementada en la clase Lista.
Clases genéricas - Formalización
• La teoría detrás de las clases genéricas en Java se basa
en el concepto de programación genérica, que se refiere a
la capacidad de escribir código que puede manejar
diferentes tipos de datos sin tener que reescribir el código
para cada tipo de dato.

• Las clases genéricas en Java permiten definir clases que


pueden trabajar con diferentes tipos de datos de manera
flexible y segura.
Lambdas & Streams
• Las lambdas y los streams son características
importantes de Java que se introdujeron en Java 8.

• Ambas características están diseñadas para simplificar y


mejorar la escritura de código en Java.
Funciones lambdas
• Las lambdas son funciones anónimas que se pueden
utilizar para implementar interfaces funcionales.

• Las interfaces funcionales son aquellas que tienen un


único método abstracto y se utilizan para representar un
comportamiento específico, como un comparador o un
predicado.

• Las lambdas permiten escribir el código de forma más


concisa y legible, ya que se pueden crear funciones sin
tener que definir una clase separada para cada una.
Funciones lambdas - Ejemplos
• En general, una función lambda en Java tiene la siguiente
sintaxis:

• donde "parametros" son los argumentos de la función,


separados por comas si hay más de uno, y "expresion" es
la expresión que se evalúa para producir el resultado de la
función. Si la función no tiene argumentos, se especifica
como "()".
Funciones lambdas - Ejemplos
• Una función lambda que suma dos números enteros:

• Una función lambda que comprueba si una cadena de


caracteres está vacía:
Funciones lambdas - Ejemplos
• Una función lambda que devuelve el cuadrado de un
número:

• Una función lambda que comprueba si un número es par:


Funciones lambdas - Ejemplos
• Por ejemplo, una lambda que implementa una interfaz
funcional de comparador se puede definir de la siguiente
manera:

• En este ejemplo, la lambda compara dos cadenas de


caracteres utilizando el método "compareTo" de la clase
String.
Funciones lambdas - Ejemplos
• Una función lambda que ordena una lista de objetos por
su atributo "nombre" en orden alfabético:
Streams
• Los streams son una secuencia de elementos que se
pueden procesar de forma eficiente y funcional.

• Se utilizan para realizar operaciones de filtrado, mapeo,


clasificación y reducción en una colección de datos.

• Los streams permiten escribir código más legible y


mantenible, ya que las operaciones se pueden encadenar
en una única línea de código.
Streams
• Por ejemplo, un stream que filtra una lista de números y
los suma se puede definir de la siguiente manera:

• En este ejemplo, el stream filtra los números pares de la


lista, los convierte en valores enteros y los suma.
Consultas
Conclusiones
Conclusiones
• Las clases genéricas en Java proporcionan una forma
poderosa y flexible de crear código reutilizable que puede
trabajar con diferentes tipos de datos.

• Además, el uso de clases genéricas ayuda a garantizar la


seguridad del tipo de datos, ya que los errores de tipo se
detectan en tiempo de compilación en lugar de en tiempo
de ejecución.
Conclusiones
• Las lambdas y los streams son características
importantes de Java que permiten escribir código más
conciso, legible y eficiente.

• Las lambdas permiten escribir funciones anónimas para


implementar interfaces funcionales de manera rápida y
sencilla.

• Los streams permiten procesar colecciones de datos de


forma funcional y eficiente.
GRACIAS
Referencias

• Belmonte et. al (2012). Desarrollo de proyectos Informáticos con Tecnología


Java. JavaHispano.

También podría gustarte