160 likes | 281 Views
Bachillerato Ingeniería en Informática. Programación Orientada a Objetos. Curso: Programación 1. Abstracción. Abstracción significa concentrarse en los detalles esenciales de aquello en lo que estamos interesados ignorando los detalles accidentales o irrelevantes.
E N D
Bachillerato Ingeniería en Informática Programación Orientada a Objetos Curso: Programación 1
Abstracción • Abstracción significa concentrarse en los detalles esenciales de aquello en lo que estamos interesados ignorando los detalles accidentales o irrelevantes. • En el modelo de objetos utilizamos (fundamentalmente) la clase para representar conceptos del mundo real (o virtual) como abstracciones (es decir tomamos solamente lo esencial de esos conceptos) • La clase representa la especificación de un nuevo tipo. Especificación de características y comportamiento que deben ser satisfechas por todos los objetos que se creen de esa clase.
El computador Computador procesador Marca listaProgramasCargados tiempoAsignadoPorPrograma encenderApagar( ) iniciarSistema cargarPrograma bajarPrograma
Perro de la casa Perro nombre raza edad vacunas ladrar( ) moverCola( ) correr( ) echarse( )
Televisor canalActual numSerie volumen encendido numeroTelevisores NUM_CANALES MAX_VOLUMEN encenderApagar( ) incrementarCanal( ) decrementarCanal( ) aumentarVolumen( ) disminuirVolumen( ) Televisor que usamos
Empleado en una empresa Empleado cedula nombre apellido direccion telefono salario puesto
Jugador de un equipo de Futbol Jugador nombre apellido posicion numero estadoFisico
Reloj de la casa Reloj hora minutos segundos cambiarHora cambiarMinutos cambiarSegundos
Vehiculo Vehiculo placa Velocidad encender arrancar acelerar frenar detener apagar
Como implementamos la abstracción? • Implementar una abstracción significa crear un nuevo tipo. Es decir, crear la especificación para poder luego tener objetos de ese tipo. • Para lograrlo tenemos que crear una clase que representa la abstracción del concepto sobre el cual tenemos interés.
Como implementamos la abstracción? • Pensemos en el concepto Vehículo 1. Habiendo identificado el concepto 2. Representamos la abstracción Para ello identificamos características y comportamiento (servicios que llevara a cabo)
Como implementamos la abstracción? Vehiculo placa Velocidad encender arrancar acelerar frenar detener apagar
Como implementamos la abstracción? 3. Incorporamos mayor detalle a los elementos (características y servicios) que componen nuestra abstracción. Pueden aparecer otras características y servicios, necesarios para lograr implementar la solución.
Como implementamos la abstracción? Presentamos modificadores de acceso, tipos de datos de los atributos, parámetros y tipo de dato que retornara cada método en la clase (cuando así se requiera). Vehiculo -placa : String -velocidad : int - encendido : boolean -arrancado : boolean +Vehiculo(placa:String) +encender( ) +arrancar( ) +acelerar( ) +frenar( ) +detener( ) +apagar( ) +toString( ):String Vehiculo placa velocidad encender arrancar acelerar frenar detener apagar
Como implementamos la abstracción? 5. Implementamos la clase (representada en UML) a su correspondiente en Java (u otro lenguaje OO). class Vehiculo { private String mplaca; private int mvelocidad; private boolean mencedido; private boolean marrancado; public Vehiculo(String pplaca) { setPlaca(pplaca); mvelocidad=0; mencendido=false; marrancado=false; } public String getplaca( ) { return mplaca; } …................................................................ } Vehiculo -placa : String -velocidad : int - encendido : boolean -arrancado : boolean +Vehiculo(placa:String) +encender( ) +arrancar( ) +acelerar( ) +frenar( ) +detener( ) +apagar( ) +toString( ):String
Como implementamos la abstracción? 6. Ahora el cliente (quien crea o usa los objetos) puede obtener una referencia a un objeto de tipo Vehiculo. class Vehiculo { private String mplaca; private int mvelocidad; private boolean mencedido; private boolean marrancado; public Vehiculo(String pplaca) { setPlaca(pplaca); mvelocidad=0; mencendido=false; marrancado=false; } public String getplaca( ) { return mplaca; } …................................................................ } public class PruebaVehiculo{ static void main(String [ ] args) { VehiculoobjV= new Vehiculo(“12345”); objV.Venceder( ); objV.arrancar( ); objV.acelerar( ); System.out.println(objV.toString( )); } }