Poo 2022
Poo 2022
• Características
– Independiente de la plataforma
• Compilador no genera código ejecutable nativo a la máquina donde se
ejecuta
• Compilador produce un formato especial llamado byte codes
• Para que bytescodes puedan ejecutarse en una máquina específica se
necesita un intérprete en tiempo de ejecución. El intérprete es el que
genera código de lenguaje de máquina entendido por la máquina
• Ambiente de ejecución normalmente se conoce como Java Virtual
Machine (JVM)
– Recolector de basura
• Memoria es liberada automáticamente cuando JMV lo determina
• Primer programa
• Tipos primitivos
– Tipos de datos simples definidos por el
lenguaje de programación
• En Java son 8
– boolean (true o false), char (16 bits set caracteres
unicode), byte (8 bits con signo), short (16 bits), int
(32 bits), long (64 bits), float (32 bits punto flotante),
double (64 bits punto flotante)
• Tipos no primitivos se conocen como Tipos
Objetos
• Declaración
– public static final <type> <name> = <value>;
• Ejemplos
public static final int DAYS_IN_WEEK = 7;
public static final double INTEREST_RATE = 3.5;
public static final int SSN = 658234569;
• Ciclos
– for(), while(), do-while()
• Condicionales
– If – else
– switch (expresion){
case n: sentencias;
case m: sentencias;
…
default: sentencias;
}
• http://www.oracle.com/technetwork/java/codeconventions-
135099.html
UNJu – FI – POO
2
Ing. José Zapana
Strings - Creación
• String cadena = “unaCadena”
• String cadena = “uno + “dos”
• String cadena = new String (“unaCadena”)
7
Interfaz Collection
-Collection
- int size()
- boolean empty()
- boolean contains(Object elem)
- Iterator iterator()
- Object[] toArray(), Object[] toArray(Object dest[])
- boolean add(Object elem),
- boolean remove(Object elem)
- void clear()
Datos
(estado)
Operaciones
(comportamiento)
UNJu – FI – POO
23/8/2021 8
Ing. José Zapana
¿En que consiste la POO?
• Identificar los objetos del problema
• Identificar los mensajes a los que deberá
responder
• Establecer una secuencia de mensajes a los
objetos
estructura
comportamiento
Implementación de
métodos
Clases Instancias
- Define atributos
- tiene valores
- Define métodos
- ejecuta métodos
- Puede generar instancias
El protocolo de la clase
A
X esta compuesto por
los mensajes A, B, C, D
B Atributos C
Clase X D
Métodos: A, B, C, D
• Relaciones involutivas
UNJu – FI – POO
10
Ing. José Zapana
Multiplicidad
• Indica cuántos objetos pueden conectarse a
través de una instancia de una asociación:
– Exactamente uno A
1
B
– Cero o uno A
0..1
B
– Muchos: A
0..*
B
– Uno o más: 1..*
A B
– Número exacto A
3
B
– Lista A
0..1, 3..5, 7..9
B
– Rango 7..9
A B
Instancia de la
Clase cargo
6
POM - Dependencias creadas
UNJu – FI – POO
7
Ing. José Zapana
Pruebas de software
14
UNJu – Facultad de Ingeniería – POO –
Esquema de pruebas unitarias
20
Filtrar por Tags en Maven
21
@Disabled
Deshabilitar test a nivel de clase o método
22
@RepeatTest
Permite repetir un test un número determinado
de veces
23
@ParameterizedTest
24
Ejemplo con @ValueSource
25
Ejemplo con @CsvFileSource
26
Referencias
https://maven.apache.org/archetype/project-inf
o.html
https://junit.org/junit5/docs/current/user-guide/
27
Exceptions – Sistemas de Trazas
17
Log4J – Niveles de mensajes
• Cuadro comparativo
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
22
Introducción a JPA
UNJu – FI – POO
2
Ing. José Zapana
Entidades
• Una entidad de persistencia (entity) es una clase de Java ligera,
cuyo estado es persistido de manera asociada a una tabla en una
base de datos relacional.
• Los meta datos del objeto/relacional pueden ser especificados
directamente en la clase, usando las anotaciones de Java
(annotations), o en un documento descriptivo XML, el cual es
distribuido junto con la aplicación.
• Características de una Entity
– Proporcionar un constructor por defecto (ya sea de forma implícita o
explícita)
– Ser una clase de primer nivel (no interna)
– No ser final
– Implementar la interface java.io.Serializabe si va a ser accedida
remotamente
UNJu – FI – POO
3
Ing. José Zapana
Entity - Anotaciones
• @Entity, @Id
• @IdClass (clave compuesta)
• @Transient
• @Entity(name=“”): nombre de la entidad / tabla
• @GeneratedValue (Strategy=?). Generación de claves
– GenerationType.AUTO
– GenerationType.IDENTITY (gestionado por la BD)
• @Basic
– Optional (boolean, si puede ser null)
– fetch (FetchType. LAZY / EAGER) tardía o temprana
• @Column
• @Enumerated (EnumType.STRING)
• @Temporal (TemporalType.DATE / TemporalType.TIMESTAMP) para campos fecha
• @Lob (String largo)
• @ElementCollection. Se utiliza para List<>
UNJu – FI – POO
4
Ing. José Zapana
¿Qué es Spring Boot?
UNJu – FI – POO
5
Ing. José Zapana
¿Cómo funciona Spring Boot?
• https://start.spring.io/
• Tiene una interfaz que permite crear el
proyecto con Spring Boot
6
Gestión de una Entity
• Se utiliza el patrón de diseño DAO
• Spring Boot brinda un genérico CrudRepository o
JPA Repository del cual se hereda la interface
DAO
• Con lo cual Spring Boot inyecta una
implementación de ese DAO
• Sólo es necesario agregar métodos específicos de
está entidad
UNJu – FI – POO
7
Ing. José Zapana
CrudRepository
Inyecta las siguientes operaciones
- +count(): long
- +delete(id: ID): void
- +delete(entity: T): void
- +delete(entities: Iterable): void
- +deleteAll(): void
- +findOne(id: ID): T
- +findAll(ids: iterable): Iterable
- +findAll(): Iterable
- +save(entity: T): T
- +save(entities: iterable): Itereable
UNJu – FI – POO
8
Ing. José Zapana
Conexión con la Base de datos
application.properties
UNJu – FI – POO
9
Ing. José Zapana
Ejemplos
- Spring Boot + JPA + Hibernate + Oracle
- Spring Data JPA @Query
UNJu – FI – POO
10
Ing. José Zapana
Sistemas de Control de Versiones
0 1 2 3
El Número de revisión
se incrementa por cada
transacción que cambia
el repositorio.
svn update
svn status -u
UNJu – FI – POO
20/10/2020 7
Ing. José Zapana
Esquema básico
UNJu – FI – POO
20/10/2020 8
Ing. José Zapana
Metodología Scrum
Programación Orientada a Objetos
San Salvador de Jujuy
UNJu – Facultad de Ingeniería
Ing. José Zapana
¿Qué es Scrum?
• Metodología de desarrollo ágil utilizada en el
desarrollo de diferentes productos, entre
ellos, el desarrollo de software