Introducción a la Programación Orientada a Objetos. La sexta de una serie de nueve presentaciones para introducir al mundo de JAVA a alumnos de secundaria. NOTA: Por el público al que se dirige no se habla de polimorfismo.
1. Introducción a la Programación
Orientada a Objetos
Ing. Daniel Cáceres
2. 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.
3. ¿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!
4. ¿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.
5. Bicicleta eléctrica Bicicleta caquera
Bicicleta de montaña Bicicleta para niños
7. ¿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.
8. Carácterísticas de la POO
Lascaracterísticas
de la POO son
fundamentalmente
tres:
› Abstracción
› Herencia
› Encapsulamiento
9. Un Ejemplo
Mira el ejemplo de las
bicicletas
“Bicicleta.java” y
“PruebaBicicleta.java”.
10. Ejemplo 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.
11. Ejemplo 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.
12. Constructores
Antes 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.
13. Herencia
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.
14. Ejemplo 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
15. Ejemplo 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.
16. Abstracció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.
17. Abstracció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.
18. Ejemplo 4: Abstracción
Siintentá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…
19. Encapsulamiento
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.
20. Encapsulamiento
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.
21. Ejemplo 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”.
22. Resumen: CLASES
public 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…)
{ … }
}