Introduccion Poo
Contenido
• Introducción histórica • Conceptos básicos de la Programación O. O. • Conceptos avanzados de la Programación O.O.
Programación Orientada a Objetos
2
Introducción Histórica
3
A B S T R A C C I Ó N O P E R A C I O N A L
Evolución de los Lenguajes de Programación
Instrucciones Máquina Expresiones, Funciones Estr. Control,Subprogramas Ocultamiento Información, Interfaces Métodos, Mensajes Lenguajes Máquina / Ensamblador FORTRAN Direcciones de Memoria, Registros Variables de Tipos Predef., Arrays Definición de Tipos, Punteros Tipos Abstractos de Datos Clases, Objetos
Programación Orientada a Objetos 4
A B S T R A C C I Ó N D E D A T O S
PASCAL
MODULA-2 ADA Lenguajes Orientados a Objetos
Evolución delos Lenguajes Orientados a Objetos
• • • • • • Simula (Nygaard, 60s) Smalltalk (Xerox PARC, 70s) Eiffel (Meyer, 80s) C++ (Stroustrup, 80s) Java (Sun Microsystems, 90s) C# (Microsoft, 00s)
Programación Orientada a Objetos
5
Conceptos Básicos de la Programación O.O.
Programación Orientada a Objetos
6
Clases y Objetos
• CLASE = SUBPROGRAMAS + VARIABLES
Criterio deModularización Estado + Comportamiento Entidad estática Clase ≈ Tipo
• OBJETO = Instancia de una CLASE
Entidad dinámica Cada objeto tiene su propio estado Objetos de una misma clase comparten un comportamiento Objeto ≈ Variable
Programación Orientada a Objetos
7
VEHÍCULO ANIMAL
PUNTO (1,3) FIGURA (2,2) (2,1)
(5,2.5)
Programación Orientada a Objetos
8
¿Qué es una Clase?
Cajanegra que oculta en su implementación:
Atributos: variables que codifican el estado de una instancia de la clase (objeto) Métodos: subprogramas que describen el comportamiento de un objeto de la clase
Una clase es semejante a un tipo:
Atributos: estructura de datos Métodos: operaciones sobre el tipo
Programación Orientada a Objetos
9
¿Qué es un Objeto?
Instancia de una clase:
Cadaobjeto de una clase tiene su propia copia de los atributos (estado propio) Todos los objetos de una clase comparten los mismos métodos (comportamiento común)
Programación Orientada a Objetos
10
Implementador vs. Usuario
• Las clases son cajas negras con
Interfaz (uso) Implementación (funcionamiento)
• El implementador se encarga de definir el interfaz y de desarrollar laimplementación • El usuario empleará los objetos de la clase exclusivamente a través del interfaz
Programación Orientada a Objetos
11
Un ejemplo: la clase Punto
Punto Atributos = Estado Propio Métodos = Comportamiento Común
Clase
R x,y; trasladar(a,b) distancia(pto)
Objetos
(Punto) x= 2 y= 3
(Punto) x= -1 y= 4 (Punto) x= 5 y= 7
Programación Orientada a Objetos 12Definiendo la clase Punto
INTERFAZ CLASE Punto MÉTODOS cambiar_x(E R nx); Comportamiento cambiar_y(E R ny); trasladar(E R dx,dy); R distancia(E Punto p); FIN Punto;
Programación Orientada a Objetos
13
Definición de Métodos
• El objeto afectado no aparece como argumento del método:
trasladar(E R dx,dy);
• En realidad, el objeto afectado es un argumento de entrada/salida implícito llamadoéste:
ALGORITMO trasladar(ES Punto éste,E R dx,dy);
Programación Orientada a Objetos
14
Implementando la clase Punto (I)
IMPLEMENTACIÓN CLASE Punto ATRIBUTOS R x,y; Estado MÉTODOS cambiar_x(E R nx) INICIO x = nx; // x == éste.x FIN cambiar_y(E R ny) INICIO y = ny; // y == éste.y FIN
Programación Orientada a Objetos 15
acceso al argumento implícito
Implementando la clase Punto(II)
trasladar(E R dx,dy) INICIO x = x+dx; y = y+dy; FIN R distancia(E Punto p) INICIO DEVOLVER sqrt(pow(x-p.x,2) + pow(y-p.y,2)) FIN FIN Punto;
acceso total a otros objetos de la misma clase
Programación Orientada a Objetos 16
Usando la clase Punto
• El usuario declara objetos como cualquier otra variable:
Punto p1, p2;
• Como usuario, no se puede acceder a la parte privada de...
Regístrate para leer el documento completo.