Professional Documents
Culture Documents
BIS - 06 Programación III Semana 2
BIS - 06 Programación III Semana 2
BIS - 06 Programación III Semana 2
Programación III
Semana 2
Agenda
• Proyecto
Repaso Java
4 principios de la programación
orientada a objetos
• Herencia
• Encapsulación
• Polimorfismo
• Abstracción
Herencia
Polymorphism allows the same method to execute different behaviors in two ways:
• Method overriding
• Method overloading.
Sobrecarga de métodos
class Adder{
static int add(int a,int b){return a+b;}
static int add(int a,int b,int c){return a+b+c;}
}
class TestOverloading{
public static void main(String[] args){
System.out.println(Adder.add(11,11));
System.out.println(Adder.add(11,11,11));
}
}
Sobreescritura de métodos
//Java Program to illustrate the use of Java //Creating a child class
//Method Overriding class Bike extends Vehicle{
//Creating a parent class. //defining the same method as in the parent class
class Vehicle{ void run(){
//defining a method System.out.println("Bike is running safely");
void run(){ }
System.out.println("Vehicle is running"); public static void main(String args[]){
}
Bike2 obj = new Bike2();//creating object
}
obj.run();//calling method
}
}
Abstracción
}
Interfaz vs Clase abstracta
Una clase abstracta puede funcionar por si sola mientras que una interface no puede
hacer nada por sí sola, es prácticamente un contrato, en donde las clases que la
abstractos.
A partir de Java 8 se pueden encontrar los métodos default en las interfaces, métodos
que nos permite definir comportamientos, en esencia las interfaces serán contratos
que indicarán que es lo que se debe hacer sin proveer ninguna funcionalidad.
Ejercicio 3
Crear una clase Animal con 2 atributos:
En una clase TestOOP con:
• nombreCientifico (String)
Animal animal1 = new Animal();
• numeroDePatas (Integer)
animal1.ruido();
Y un método ruido sin parámetros que imprime “Yo no hago ruido”
Canino canino1 = new Canino();
Crear una clase Canino que herede de Animal y sobrescriba el
canino1.ruido();
método ruido por “Yo ladro”.
Animal animal2 = new Canino ();
Crear otra clase Felino que herede de Animal y sobrescriba el
animal2.ruido();
método ruido por “Yo maullo”.
Canino canino2 = new Animal ();
Crear una interfaz con dos métodos comer y dormir.
Esta interfaz debe ser implementada en canino. ComportamientoAnimal canino3 = new Canino();
canino3.come();
Proyecto
Descripción
Ingreso a la aplicación
Campos requeridos:
• Usuario (input)
• Contraseña (password)
Campos mínimos:
• Cédula
• Contraseña
• Correo
• Nombre
• Apellido1
• Apellido2
Mantenimiento de registro de
instituciones
Ingreso de instituciones por parte del Gobierno
Campos mínimos:
• Nombre institución
• Identificador institución
• Correo institucional
• Razón social
• Contraseña
• EsReporteador
Mantenimiento de Reportes de
Averías
Ingreso de las averías por parte del ciudadano
Campos mínimos:
• Nivel Incidencia
• Provincia
• Dirección Exacta
• Descripción Avería
• Institución a reportar
Mantenimiento de Listado de
averías
Lista con los registros de averías
Tipos de filtrado:
*Si se ingresa con rol ciudadano o institución solo pueden ver las averías propias, si no
Campos mínimos:
• Costo aproximado.
Al terminar la obra, esta cambia de estado a “Finalizado”, aunque puede quedar en “Pausa” si pasa algún inconveniente
y no se puede terminar.
Mantenimiento de Inversión por
concepto de averías
Es una pantalla en la que se ven los gastos totales por concepto de reparación de averías, es decir solo las averías ya en estado “Finalizado”.
Se puede filtrar por periodo de tiempo, institución, provincia, cantón y/o distrito.
• Numero de avería
• Costo de avería
• Tiempo invertido
• Cantidad de colaboradores
• Fecha de arreglo
• Nivel de incidencia
Una sección en el que se describa tiempo total, costo total y promedio de personas involucradas.
Roles
Roles de la aplicación
1. Gobierno Central
2. Institución
3. Ciudadano
4. Reportes
Rol Ciudadano
*Ningún registro puede ser borrado solo deshabilitado por lo que se recomienda
tener un valor “enable” en cada tabla por realizar.
Rol Reportes
Puede ver el listado de todas las averías.
Notas del proyecto
Utilizar la base de datos MySQL
Aplicar dos patrones de diseño a su elección.
El tipo de interfaz queda a elección del estudiante.
Las imágenes a utilizar son con fines educativos por lo que están
deben estar bajo el marco del respeto y no contener contenidos
que puedan ocasionar algún incidente.
Al menos tres clases deben estas cubiertas pruebas unitarias
respectivas.
Grupos no mayores a 3 personas.
Defensa
• https://dev.to/charanrajgolla/beginners-guide---object-oriented-p
rogramming
• https://www.geeksforgeeks.org/java/?ref=lbp
• https://www.educative.io/blog/object-oriented-programming
• https://www.javatpoint.com/java-tutorial
Muchas gracias