POO
-
Upload
daniel-caceres -
Category
Education
-
view
5.609 -
download
0
description
Transcript of POO
Introducción a la ProgramaciónIntroducción a la ProgramaciónOrientada a ObjetosOrientada a Objetos
Ing. Daniel Cáceres
Un poco de Historia...Un poco de Historia...
La PDP-1 (Programmed Data Processor-1) es la primera computadora digital producida en 1960.
Es la primera computadora en aplicar conceptos de POO (sin saberlo).
Es pionera en crear la cultura hacker.
¿Qué es la POO?¿Qué es la POO? Es un paradigma o modelo
de programación o sea una manera de plantearse la programación. No es una tecnología definida, o un programa; Es una característica que tienen muchos lenguajes de programación.
La programación Orientada a Objetos (POO) es más cercana al mundo real que la programación estructurada. Ésta hace énfasis en las cosas mientras que aquella en los procedimientos. ¡Qué fumada se echaron!
¿Qué es la POO?¿Qué es la POO?
En el mundo real ¿qué vemos? cosas, objetos.
Cada objeto pertenece a una clase de objetos.
Ese es el principio básico de la POO.
En la foto: una simple bicicleta.
Bicicleta eléctrica Bicicleta caquera
Bicicleta de montaña Bicicleta para niños
Todas corresponden al concepto de bicicleta. Esa es la clase de objeto que son.
¿Qué es la POO?¿Qué es la POO?
En JAVA podemos crear OBJETOS instanciándolos de una CLASE.
Podríamos por ejemplo tener una clase que se llame BICICLETA, e instanciar diez objetos para que tengamos una cada uno.
Carácterísticas de la POOCarácterísticas de la POO
Las características de la POO son fundamentalmente tres:› Abstracción› Herencia› Encapsulamiento
Un EjemploUn EjemploMira el ejemplo de las bicicletas “Bicicleta.java” y “PruebaBicicleta.java”.
Ejemplo 1Ejemplo 1
Conceptos claves:› Propiedad: Son los datos que me interesan
del objeto.Las propiedades de Bicicleta son: cambio, velocidad y engranaje.
› Método es lo que el objeto “hace”. Por medio de los métodos puede cambiar las propiedades, mostrarlas, hacer procedimientos, etc.
Ejemplo 1Ejemplo 1
Otro concepto clave:› Instanciar: Crear un objeto a partir de una
clase.
Los objetos “instanciados” son birula1, birula2 y birulaCaquera.
OJO: Varias variables pueden referenciar un mismo objeto.
ConstructoresConstructoresAntes de continuar, fijarse en el ejemplo 2.
Los constructores sirven para establecer el estado inicial del objeto al momento de instanciarlo.
Al ver Bicicleta2 vemos que podemos hacer más de un contructor.
HerenciaHerencia
Una clase puede “heredar” todas las características de otra.
Al heredar, obtiene todas las propiedades y el comportamiento de la clase padre.
En java se suele llamar superclase y subclase.
Otros dicen padre e hijo.
Ejemplo 3Ejemplo 3
En el ejemplo tres se declaran tres clases más que “heredan” de Bicicleta:› Bicicleta de Montaña› Bicicleta de Camino› Bicicleta de Dos Asientos
Ejemplo 3Ejemplo 3
Aspectos que hay que fijarse:› La palabra extends quiere decir que
BicicletaDeMontaña recibe todos sus miembros de Bicicleta.› La montañesa tiene velocidad y todas las
propiedades de una bicicleta.› La palabra super manda a llamar al
constructur de la superclase.
AbstracciónAbstracción
Cuando vamos a programar con POO se vale usar la máxima de la guerra: divide y vencerás.
Tenemos que partir nuestro código en grupos de cósigo más pequeños que, al unirlos, hacen el trabajo.
Un buen ejemplo de abstracción es el cuerpo humano.
AbstracciónAbstracción
Básicamente es la capacidad de separar los elementos (al menos mentalmente) para poder verlos de forma singular. Como cuando describimos el cuerpo humano y decimos cabeza, brazo(s), pierna(s), etc.
Ejemplo 4: AbstracciónEjemplo 4: Abstracción
Si intentáramos hacer un programa para el proceso de admisión de Kinal, ¿Cómo sería utilizando lenguaje estructurado?› Muchos ciclos, miles de decisiones…
Con la POO, podemos dividir el problema creando una clase para cada personaje importante, y para cada cosa importante. Las clases podrían ser:› Alumno, Profesor, Examen…
EncapsulamientoEncapsulamiento
La Programación Orientada a Objetos hace que el código se desarrolle por cubículos.
Los demás no necesariamente tienen por que ver mi código, y viceversa.
Es más seguro.
EncapsulamientoEncapsulamiento
Las propiedades que le interesan a otras clases las hago públicas con public.
A las propiedades que no le interesan a los demás las hago private.
También existe protected y dejarlo sin nada tiene otro significado.
Ejemplo 5: EncapsulamientoEjemplo 5: Encapsulamiento
En el ejemplo borré intencionalmente el archivo “usuario.java”, pero está la clase “usuario.class”.
Al ejecutar el programa, no se puede saber cual es la contraseña.
Se dice que la contraseña está “encapsulada”.
Resumen: CLASESResumen: CLASESpublic class nombre_clase extends superclase { // Propiedades public int propiedad1; public String propiedad2; … // Constructor(es) public nombre_clase (parámetros…) { … } public nombre_clase (parámetros…) { … } // Métodos public int método1 (parámetros…) { … } public String método2 (parámetros…) { … } public void método3 (parámetros…) { … }}