Curso Avanzado
JAVA SE
Presentación
AmazonViewer
AmazonViewer
AmazonViewer
Clases Avanzadas
Clases Avanzadas
CLASES ABSTRACTAS
Polimorfismo
Herencia Clases
Métodos sobreescritos
Muchas formas
Polimorfismo
Implementación Interfaces
Métodos sobreescritos
Muchas formas
¡Genial!
Interfaces
A veces no necesitamos
implementar todos los métodos
Herencia
Las clases podrían no necesitar
heredar la implementación de un
método
Herencia
A veces no necesitamos crear
instancias de una clase padre,
porque es muy genérica
Clase Abstracta
Intefaz
Herencia
Clase Abstracta
No implementaremos todos los
métodos
No crearemos instancias
public abstract class Figura {
····abstract void dibujate();
CLASES ABSTRACTAS
public abstract class Figura {
····abstract void dibujate();
CLASES ABSTRACTAS
class Triangulo extends Figura {
····abstract void dibujate();
CLASES ABSTRACTAS
Nuestro
proyecto
view()
view()
abstract
view()
view()
Javadoc
Generar documentación en
HTML desde el código Java.
Spring
Android
Comentarios
// Soy un comentario :)
// un comentario
Todo lo que esté en esa línea será
ignorado por la computadora
3 formas de
poner
comentarios
Comentario en una línea
// un comentario
Todo lo que esté en esa línea será
ignorado por la computadora
3 formas de
poner /* un bloque de comentarios */
comentarios Todo lo que esté dentro será ignorado
Bloque de comentarios
// un comentario
Todo lo que esté en esa línea será
ignorado por la computadora
3 formas de
poner /* un bloque de comentarios */
comentarios Todo lo que esté dentro será ignorado
/** documentacion */
Todo lo que esté dentro será un
comentario de documentación llamado doc
comment
JavaDoc comment
/**
* [descripción corta]
* <p>
* [descripción larga]
*
* [author, version, params,
returns, throws, see, other tags]
* [see also]
*/
Ejemplo
Clases Avanzadas
CLASES ANIDADAS
class ClaseExterior {
····class ClaseAnidada {
····}
CLASES ANIDADAS
class ClaseExterior {
····static class ClaseStaticaAnidada {
····}
····class ClaseInterna {
····}
}
CLASES ANIDADAS
Clases anidadas
static Estáticas
No Estáticas
Clases estáticas
No se necesitan crear
instancias para llamarlas
Clases Estáticas
Clases Estáticas
Clases estáticas
Solo se pueden llamar a los
métodos estáticos
Clases Anidadas - Inner
Clases Anidadas - Inner
Clases Locales a Método
Clases Locales a Método
Clases Anónimas
Clases anidadas
Clases Helper
Agrupadas por lógica
Encapsulación
Clases
Estáticas vs Anidadas
Estáticas solo podemos
llamar a métodos y
elementos de su misma
naturaleza
Clases
Estáticas vs Anidadas
Anidadas pueden llamar a
cualquier tipo de elemento
o método
Ejemplo
Book
Book
Page Page Page
Interfaces Avanzadas
Interfaces avanzadas
Métodos Abstractos
Campos constantes
Interfaces avanzadas
Tipo de referencia
Polimorfismo similar Clases
Abstractas
Java 8 y 9
Java 8
default
Java 9
private
Interfaces avanzadas
Ahora podemos tener
implementación en métodos
default y private
Methods
DAO
Data Access Object
DAO - Data Access Object
Patrón de diseño
Métodos CRUD
(Create, Read, Update y Delete).
Ejemplo
Interfaces Avanzadas
Interfaces Funcionales
Interfaces funcionales
Tienen un solo método
abstracto
SAM(Single Abstract Method)
@FunctionalInterface
BUENA PRÁCTICA
@FunctionalInterface
SAM (Single Abstract Method)
Clases Anónimas
Excepciones
Try-catch-finally
Excepciones
Manejar Excepciones significa
que añadirás un bloque de
código para manejar un error
try - catch
finally
Cerrar recursos
Try-with-resources
Cerrar recursos
Cerrar recursos
JDBC
JDBC
Java Data Base Connectivity
JDBC
Es un API compuesta por
varias clases
Operaciones a base de datos
JDBC
Componentes
DriverManager Connection
Statement PreparedStatement
ResultSet
ResultSet
CRUD
Programación
Funcional
Programación Funcional
Paradigma de programación
Programación Funcional
Paradigma declarativo
vs.
Paradigma imperativo
https://medium.com/@Loopa/paradigmas-de-programaci%C3%B3n-programaci%C3%B3n-imperativa-y-programaci%C3
%B3n-declarativa-4c4a4182fd87
Qué Cómo
Programación Programación
Funcional imperativa
Qué Cómo
Programación Programación
Funcional imperativa
Lenguajes Lenguajes con
Funcionales características
Funcionales
Programación Funcional
Funciones
Programación Funcional
Funciones
Entrada y Salida
F
Programación Funcional
F F F
Programación Funcional
F F F
Funciones de orden superior
Lambdas
Lambdas
@FunctionalInterface
SAM (Single Abstract Method)
Clases Anónimas
Clases Anónimas
Android
Java Hibernate
Clases Anónimas
Android
Lambdas
Como variables
Lambdas
Lambdas
Listener listener =
Lambdas como variables
Clases Anónimas
Android
Programación
Funcional y Lambdas
No Iteración
No Iteración
Sí Recursividad
No Iteración
Sí Recursividad
Expresar Problemas
Recursividad
objects.forEach()
Recursividad
forEach(System.out::println)
RETO
Stream y Filter
Stream
Un método que añadido a
todas las colecciones
Streams
objects.stream()
Filter
objects.stream().filter()
Filter
No asignaciones
No asignaciones
Sí Inmutabilidad
contentReport += m.toString() + "\n";