Clase 5 - Introducción A La Programación OO en Java
Clase 5 - Introducción A La Programación OO en Java
OO en Java
“Desarrollador Java Inicial”
Agenda
- una persona
- un producto
- un carrito de compras
- un torneo
También, relaciones entre las mismas, por ejemplo que una persona tiene un carrito de compras y el
carrito de compras tiene productos.
Clases y Objetos - Definición
Para representar conceptos más complejos utilizaremos clases y objetos:
CLASE:
➢ Es un molde o plantilla que define las características o atributos
(variables) y comportamientos o métodos (funciones) comunes
de un conjunto de objetos relacionados.
➢ Describe cómo deben ser los objetos que se crean a partir de ella.
OBJETO:
➢ Es una instancia o ejemplar de una clase.
➢ Es una entidad concreta que se crea a partir de una clase y
tiene sus propios atributos y comportamientos.
➢ Posee las características generales de la misma, pero con
valores concretos.
➢ Es una variable compuesta por variables y funciones, definida
por el usuario.
Clases y Objetos - Representación
Clases y Objetos - Relaciones
Persona tiene un
Carrito de compras y
el Carrito de compras
tiene Productos
Estructuras de los programas Java
private static final Double minPrecio = 0.1; Atributos de clase o estáticos, su valor es compartido por todos los
objetos de la clase
public Producto(String nombre) {
this.nombre = nombre; Constructor, se utiliza para crear objetos de la clase en cuestión. En
this.fechaAlta = LocalDate.now(); este caso si queremos crear un nuevo producto la sintaxis es:
this.precio = minPrecio; Producto prod = new Producto("Atún");
}
public String getNombre() { Métodos de instancia, funciones que se ejecutan en el contexto del
return this.nombre; objeto. Con la palabra clave “this” se accede al estado (valores de los
} atributos) de un objeto en particular. Por ejemplo, el método
public String getDescripcion() { prod1.getNombre( ) y prod2.getNombre( ) retornan el valor
return this.descripcion; correspondiente a su instancia.
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
}
Clase
➢ Comportamiento y atributos (no valores) compartidos por un conjunto de objetos. Los atributos son
de una clase o tipo primitivo determinado
➢ Elementos de Instancia:
○ Variables: tienen un valor distinto por Objeto
○ Métodos: código a ejecutar, tiene acceso a variables de instancia
■ LocalTime.now()
■ Integer.parseInt("1234")
■ Math.abs(-37)
Clase - Clasificaciones simples
➢ Datos: Llevan la especificación de una entidad única, por ejemplo Persona, Producto, Máquina, etc.
No deberían tener interface de usuario.
➢ Contenedoras: Poseen colecciones de elementos o de objetos, ej. Lista de Alumnos. No deberían
tener interface de usuario.
➢ Vista: Administran la interface de usuario, permiten al usuario el ingreso de datos y la visualización
de la salida.
Clase - Visibilidad / Alcance
● Público (public): atributos o métodos pueden ser
utilizados por instancias de cualquier clase.
Cuenta bancaria
➢ Atributos : Numero, Titular, Saldo
➢ Métodos : Inicializar atributos, cambiar
Numero, cambiar Titular, cambiar Saldo,
retornar numero, retornar titular, retornar
saldo, depositar, extraer, y retornar una cadena
con todos los atributos
Clase - Constructores
➢ Permiten inicializar los atributos de los objetos.
➢ Tienen el mismo nombre de la clase que inicializa.
➢ No devuelven valores.
➢ Pueden admitir parámetros.
➢ Pueden existir más de un constructor, e incluso no existir.
➢ Si no se define ningún constructor de una clase, el compilador generará un constructor por defecto.
➢ Se llaman en el momento de la creación del objeto, cuando se usa la palabra reservada new.
➢ Para utilizar un método de un objeto, decimos que al mismo se le envía un “mensaje”. Para representar esto, se pone
un punto “.” luego de una variable referenciando un objeto:
objetoX.metodo(param1,param2,...)
a.setNombre(“Juan”);
System.out.print(“Los datos del alumno: “+ a.toString());
Integer unNumero = 1;
Double otroNumero = 1.0;
Character unCaracter = 'X';
Boolean unBooleano = true;
● Esto nos permite utilizar métodos sobre dichos tipos, por ejemplo:
int unNumero2 = 1;
unNumero = unNumero + unNumero2; //compatible
otroNumero.equals(unNumero) // false
unBooleano.toString(); // "true"
1. Clase Alumno
EJERCICIOS
1. Clase Alumno
EJERCICIOS
Tarea opcional: crear varios Objetos de tipo Alumno, cargarle los datos desde teclado,
guardarlos en un vector.
EJERCICIOS
2. Usando el ejercicio 4 de la clase anterior, plantear los postulantes en una clase propia.
Se tienen los datos de tres postulantes a un empleo, a los que se les realizó un test para conocer el
nivel de formación previa de cada uno. Por cada postulante, se tienen los siguientes datos: nombre
del postulante, cantidad total de preguntas que se le realizaron y cantidad de preguntas que
contestó correctamente. Se pide confeccionar un programa que lea los datos de los tres postulantes,
informe el nivel de formación previa de cada uno según los criterios de aprobación que se indican
más abajo, e indique finalmente el nombre del postulante que ganó el puesto. Los criterios de
aprobación son en función del porcentaje de respuestas correctas sobre el total de preguntas
realizadas a cada postulante:
Nivel Superior: Porcentaje >= 90%
Nivel Medio: 75% <= Porcentaje < 90%
Nivel Regular: 50% <= Porcentaje < 75%
Fuera de Nivel: Porcentaje < 50%
Aclaración: Si ningún postulante superó el 50% se considera que ninguno ganó el puesto.
EJERCICIOS
Análisis y solución:
EJERCICIOS
Análisis y solución:
Presentación
Trabajo Práctico
Integrador
TP INTEGRADOR
Consigna
La propuesta del trabajo práctico consiste en implementar un programa de consola que dada la información de resultados de partidos e
información de pronósticos, ordene por puntaje obtenido a los participantes.
Enunciado
Se encuentra publicado en el campus como Enunciado TP Integrador - desarrollador Java Inicial - Entrega 1.
Metodología
Luego de la presentación, se proponen entregas incrementales a lo largo del curso. El calendario definitivo será definido por cada
docente.
El trabajo práctico intregador es obligatorio y se realizará en grupos de 5 integrantes. Los estudiantes deberán anotarse en los grupos
que se publiquen en el campus.
TP INTEGRADOR
Calendario tentativo:
Presentación TP 5
Entrega 1 7
Entrega 2 9
Entrega 3 12
Entrega 4 16
Presentación Final 18
TP INTEGRADOR
Pronósticos Deportivos
Introducción
Nos han solicitado el desarrollo de un programa de Pronósticos Deportivos.
Un pronóstico deportivo consta de un posible resultado de un partido (que un equipo gane (G), pierda (P) o empate
(E)), propuesto por una persona que está participando de una competencia contra otras.
Cada partido tendrá un resultado. Este resultado se utilizará para otorgar puntos a los participantes de la
competencia según el acierto de sus pronósticos.
Finalmente, quien gane la competencia será aquella persona que sume mayor cantidad de puntos.
TP INTEGRADOR
Diagrama de Clases:
TP INTEGRADOR
Entrega 1
A partir del diagrama de clases propuesto, crear en java todas las clases del modelo, sus atributos, y
métodos generales: constructores, setters (entrada), getters (salida), toString (String con todos los
datos que tendrán los objetos).
Sugerencias