You are on page 1of 13

1.

- Introduccin a la Programacin Orientada a Objetos (POO)


1. 2. 3. 4. 5. Introduccin Objetos Clases Herencia Programacin procedural vs POO

1.- Introduccin

Fases en el desarrollo de software


Anlisis Diseo Implementacin Pruebas Implantacin Mantenimiento

Antes de iniciar el desarrollo se debe elegir el paradigma de trabajo (procedural, OO, ) La eleccin del paradigma limita el conjunto de lenguajes a utilizar.
2

1.- Introduccin
Programacin procedural
Unidad bsica: el procedimiento
Entradas Salidas

Programa con procedimientos


funcin
Dato Dato Dato Dato

funcin

funcin

funcin

1.- Introduccin
Programacin orientada a objetos
Unidad bsica: el objeto
funcin funcin funcin dato dato dato

Programa con objetos


funcin dato funcin funcin funcin funcin dato funcin funcin dato dato funcin funcin dato dato dato dato dato

1.- Introduccin
Caractersticas de un lenguaje orientado a objetos (LOO)
Objetos Clases Herencia Polimorfismo

La POO es un nuevo concepto de programacin. No se trata de aprender nuevas instrucciones.


5

2.- Objetos
En un LOO puro, todo son objetos. Objeto = Conjunto de variables (atributos) + Conjunto de operaciones (mtodos) que operan sobre las variables. Ejemplos de objetos:
Ventana Nmero complejo Nave espacial

En un POO tenemos que representar todas las entidades de nuestro problema mediante objetos.
6

2.- Objetos
Un objeto puede tener como atributos otros objetos (por ejemplo, una ventana puede contener botones, listas desplegables, reas de texto, barras de desplazamiento...). Todos los objetos tienen una interface (parte visible del objeto). Todos los objetos son de un tipo en concreto (todas las ventanas, cada una con sus propios atributos, son del tipo genrico VENTANA) El tipo del objeto determina QU operaciones puede realizar dicho objeto.
7

3.- Clases
Una clase describe una familia de objetos (el tipo) mediante: Los atributos que contendrn los objetos. Los mtodos que implementarn los objetos. En la clase NO se dan valores a los atributos (a no ser que sea un valor comn para todos los objetos). Es cada objeto quien establece los valores de sus atributos. La clase es una descripcin genrica, una plantilla. Una clase define los datos que tendr cada objeto (atributos) y la manera en que se manejan dichos datos (mtodos). Los objetos son instancias o ejemplares concretos de una clase.
8

Clase Ventana { Atributos: int posX, posY, sizeX, sizeY; Mtodos: void mover(int despX, int despY) { posX = posX + despX; posY = posY + despY; } void redim(int newSizeX, new sizeY) { sizeX = newSizeX; sizeY = newSizeY; } }
9

3.- Clases
Cada clase posee una doble componente: Se conoce como componente esttica a los datos (atributos). Los valores de estos datos definen el estado del objeto. Se conoce como componente dinmica a los procedimientos o funciones (mtodos). Define el comportamiento del objeto. Los mtodos son los encargados de manipular los atributos del objeto. Es posible ocultar ciertos atributos o comportamientos (parte privada) y mostrar otros (parte pblica). La parte pblica de una clase se conoce como interface de la clase. Es una buena prctica mantener los atributos ocultos: encapsulacin.
10

4.- Herencia
Permite la creacin de clasificaciones jerrquicas. Persona Miembro UPV Estudiante

Personal

Profesor

P. Servicios

Est. Teleco

Est. Informtica
11

4.- Herencia
Una clase general define las caractersticas comunes a un conjunto de subclases. Clase general superclase Clase heredada subclase La subclase es una versin especializada de la superclase. Una subclase rene todas las propiedades de la clase padre (superclase), adems de las suyas propias. Beneficios de la herencia:
Reutilizacin del cdigo. Consistencia de la interface. Cdigo ms fiable y robusto. Menor coste de mantenimiento.
12

5.- Programacin procedural vs POO


La POO se centra en los datos, no en los procedimientos. Especial nfasis en la reutilizacin:
En la programacin procedural habitualmente se busca una solucin a medida para un problema especfico. En la POO el objetivo no es ajustar el diseo de la clase a un problema particular. Las clases deben ser lo ms generales posible.

Programacin mediante extensin. Estado distribuido:


En un programa procedural el estado se almacena en las variables de la funcin principal. Las funciones o procedimientos carecen de estado. En un POO el estado est distribuido entre mltiples objetos
13

You might also like