2. Contenidos
• Programación Estructurada
• ¿Qué es POO?.
• Clases y Objetos.
• Atributos. Operaciones, Métodos y Servicios. Mensajes.
• Abstracción, Encapsulamiento, Herencia y Polimorfismo.
• Sobrecarga.
• Relaciones entre Clases.
• Ventajas y Desventajas de la POO.
2
3. La Programación Estructurada ...
import java.io.*;
public class Ejemplo {
static BufferedReader br = new BufferedReader(new InputStreamReader (System.in));
public static int leeNum()throws IOException {
int m;
do{ System.out.print("Ingrese Mes: ");
m = Integer.parseInt(br.readLine());
}while (m<1 || m>12);
return m;
}
public static void imprimeNombre(int m){
switch(m){ case 1: System.out.println("Enero"); break;
case 2: System.out.println("Febrero"); break;
case 3: System.out.println("Marzo"); break;
case 4: System.out.println("Abril"); break;
case 5: System.out.println("Mayo"); break;
…
case 12: System.out.println("Diciembre"); break;
}
}
public static void main(String[] args) throws IOException{
int m;
m = leeNum();
imprimeNombre(m);
}
}
3
5. Pero…
En contraste con este tipo de programación se
empieza a reparar en los objetos que nos rodean :
LIBRO LUPA
5
6. La Programación Orientada a Objetos
La POO fue concebida por quienes reconocían el
mundo como poblado de objetos que interactuaban
entre si de acuerdo a su naturaleza.
Los procedimientos aplicados a los objetos depende de
la naturaleza de los mismos, por ejemplo no se puede
imprimir un auto, no se puede conducir un foco, etc.
estas acciones son inapropiadas porque no forman
parte del comportamiento natural de los objetos.
Datos + Código = Objeto
6
7. Identificando un Punto
• ¿Un Punto en pantalla es un Objeto?
• ¿Qué conozco del Punto?
• ¿Qué puedo hacer con ese punto?
7
8. Clase Punto
x
¿Qué conozco del Punto?
x, y, color Atributos
y
¿Qué comportamiento tiene el Punto?
crearse
mostrarse
Métodos
ocultarse
moverse
¿Qué debe hacerse para mover un Punto a una nueva
posición?
Debe ocultarse de la posición actual
Modificar los valores de sus atributos x, y
Mostrarse en la nueva posición
8
9. Concepto de Clase
• Nivel superior de abstracción que se corresponde con
un conjunto de objetos que poseen las mismas
propiedades y comportamientos.
• La clase posee un tipo de dato y tiene asociado
atributos y operaciones.
9
10. Concepto de Objeto
• Un objeto es un ejemplar de un concepto del mundo
real que puede ser modelado por una clase.
• Un Objeto tiene un identificador que nunca cambia,
comportamientos y atributos que son específicos para
esa clase, pero cada objeto tiene determinados
valores para sus atributos.
10
11. Clase vs. Objeto
Instancias de la Clase Punto
Clase: Objeto 1
Punto Objeto 3
Atributos: Atributos:
Atributos: 21
x 200
45 15
y verde
color rojo
Métodos:
crearse Objeto 2
mostrarse Atributos:
ocultarse 142
moverse 90
celeste
11
12. ¿Qué ventajas tiene la POO?
• Reusabilidad.
• Extensibilidad.
• Facilidad de mantenimiento.
• Portabilidad.
• Rapidez de Desarrollo.
• Más fáciles de entender porque se utilizan
abstracciones más cercanas a la realidad.
12
13. ¿Qué desventajas tiene la POO?
• Curvas de aprendizaje largas
• Dificultad en la abstracción
13