Está en la página 1de 54

Programacin Orientada a Objetos

Programacin Orientada a Objetos


Mag. Estanislao Contreras Chvez
pcsiecon@upc.edu.pe
estanislao.contreras@hotmail.com
Unidad 2: Elementos bsicos de POO
Programacin Orientada a Objetos
Temario
Elementos bsicos de POO
Relaciones entre clases
Estndares de programacin
Programacin Orientada a Objetos
Unidad 2: Elementos bsicos de POO
Elementos bsicos de POO
Programacin Orientada a Objetos
Elementos bsicos de POO
Objeto
Cuando nos abstraemos, pensamos en una
entidad del problema que estamos analizando,
dejando de pensar en lo superficial, identificamos
sus principales caractersticas y su
comportamiento. Estamos definiendo un objeto.
Programacin Orientada a Objetos
Elementos bsicos de POO
Propiedades de los objetos
Identidad: Es aquello que lo distingue de los
dems, qu lo hace nico. Se corresponde con la
direccin de memoria que ocupa
Programacin Orientada a Objetos
Elementos bsicos de POO
Propiedades de los objetos
Estado: Valores que tienen sus caractersticas en
un instante dado. Un cambio de estado se da
cuando cambia algunas de sus caractersticas.
Programacin Orientada a Objetos
Elementos bsicos de POO
Propiedades de los objetos
Estado:
Por ejemplo:
Si el valor del atributo Saldo Disponible es 0
entonces el estado del objeto Telfono Celular es
de no disponiblepara hacer llamadas.
Programacin Orientada a Objetos
Elementos bsicos de POO
Propiedades de los objetos
Comportamiento: Es lo que el objeto puede o
sabe hacer. Cmo reacciona antes los mensajes
recibidos (cambiando de estado, enviando
mensajes).
Responsabilidad: Cuando un comportamiento
est mas dirigido hacia el servicio que presta el
objeto.
Programacin Orientada a Objetos
Elementos bsicos de POO
Propiedades de los objetos
Programacin Orientada a Objetos
Elementos bsicos de POO
Objetos y Algoritmia
La resolucin de problemas se hace desde el
punto de vista de los objetos.
Aplicacin: Se compone de objetos que se
comunican para lograr un objetivo comn.
Programacin Orientada a Objetos
Elementos bsicos de POO
Objetos y Algoritmia
Los objetos son entidades activas, que emiten
mensajes y responden a estmulos. Es decir, un
objeto Emisor enva un mensaje a otro receptor
para requerir o para notificar algo.
Programacin Orientada a Objetos
Elementos bsicos de POO
Objetos y Algoritmia
Ejemplo de comunicacin entre objetos
Programacin Orientada a Objetos
Elementos bsicos de POO
Mtodo
Un mtodo es un conjunto de instrucciones a las
que se les asocia un nombre de modo que si se
desea ejecutarlos basta con hacer referencia a
ellos mediante el nombre.
Los mtodos contienen la lgica asociada a las
responsabilidades de la clase.
Adicionalmente, existen mtodos especiales que
se tienen que considerar en una clase:
constructores, de acceso y destructores
Programacin Orientada a Objetos
Elementos bsicos de POO
Mtodos Constructores
Se utilizan para inicializar un objeto nuevo. Una
clase puede tener varios constructores estos se
diferencian unos de otros en el nmero y tipo de
sus argumentos
Efectan tareas de inicializacin.
Antes de usar un objeto se debe llamar a su
constructor.
Por lo tanto, cada clase debe tener por lo menos
un constructor.
Programacin Orientada a Objetos
UPC - EPE - POO 15
Elementos bsicos de POO
Mtodos de Acceso
Operaciones que actan sobre los atributos e
informan el valor actual (lectura) o permiten
cambiarlo (escritura)
Programacin Orientada a Objetos
UPC - EPE - POO 16
Elementos bsicos de POO
Mtodos Destructores
Cumplen tareas de liberacin de memoria y
vnculos con otros objetos.
Al final de la vida de un objeto es conveniente
llamar al destructor de la clase.
Recomendacin: Llamar al destructor al final del
bloque de cdigo en el que fue declarado.
Programacin Orientada a Objetos
UPC - EPE - POO 17
Elementos bsicos de POO
Clase
Cuando llevamos nuestra definicin de objetos a
una abstraccin superior, donde ubicamos una
plantilla que nos permitir generar objetos de un
mismo tipo, con caractersticas y comportamientos
similares, hemos definido una Clase
Programacin Orientada a Objetos
UPC - EPE - POO 18
Elementos bsicos de POO
Clase
Programacin Orientada a Objetos
Elementos bsicos de POO
Instanciacin
Cuando utilizamos una clase para crear un objeto
de ese tipo decimos que estamos instanciando la
clase.
Un objeto es una instancia de la clase y se puede
instanciar tantos objetos como sean necesarios.
Programacin Orientada a Objetos
Elementos bsicos de POO
Instanciacin
Creacin de objetos invocando a los mtodos
constructores de la clase.
class Alumno
Objeto Juan
Objeto Carlos
Objeto Maria
Objeto Ana
Instanciacin
Estructura de datos
Alumno juan := new Alumno();
Lgica asociada al
comportamiento
Programacin Orientada a Objetos
Unidad 2: Elementos bsicos de POO
Relaciones entre clases
Programacin Orientada a Objetos
Relaciones entre clases
Relacin
Una relacin es una conexin semntica entre
elementos de un modelo.
Dependiendo de que modelo se est tratando, la
relacin ser entre objetos de una o mas clases o
entre elementos de distinto nivel de abstraccin.
Programacin Orientada a Objetos
Relaciones entre clases
Las relaciones entre clases que utilizaremos son:
Asociacin
Agregacin
Composicin
Generalizacin.
Las relaciones existentes entre las clases nos
indican como se comunican sus objetos entre s
Programacin Orientada a Objetos
Relaciones entre clases
Asociacin
Es una conexin entre clases. Significa que los
objetos de dos clases tendrn un vnculo
bidireccional en comn, el cual puede
interpretarse como para cada X existe un Y.
Se representa por medio de una lnea continua
entre dos clases.
Programacin Orientada a Objetos
Relaciones entre clases
Asociacin
Aqu, cada programador utiliza una computadora,
y cada computadora es utilizada por un solo
programador (es decir, un objeto Programador
est asociado slo a un objeto Computadora ).
Programacin Orientada a Objetos
Relaciones entre clases
Asociacin
Aqu, cada cliente vive en una direccin y
direccin es utilizada por un solo cliente (es decir,
un objeto Cliente est asociado slo a un objeto
Direccin ).
Programacin Orientada a Objetos
Relaciones entre clases
Multiplicidad
Se utiliza multiplicidad cuando no necesariamente
los vnculos entre objetos son de uno a uno. Se
especifica en cada extremo del vnculo, a travs
de un rango, cuntos objetos pueden estar
vinculados.
Programacin Orientada a Objetos
Relaciones entre clases
Multiplicidad
Este diagrama indica que cada programador
tendr varias computadoras (posiblemente
ninguna), y que cada computadora ser usada por
al menos un programador.
Programacin Orientada a Objetos
Relaciones entre clases
Multiplicidad
Cada asociacin tiene dos multiplicidades. Una
para cada extremo de la relacin.
Para especificar la multiplicidad de una asociacin
hay que indicar la multiplicidad mnima y la
multiplicidad mxima (mnimamxima)
Programacin Orientada a Objetos
Relaciones entre clases
Multiplicidad
Cuando no se especifica ningn rango, se asume
el valor uno (1) por defecto. Puede agregarse una
flecha a la lnea, indicando la direccin del vnculo:
De esta manera, la clase A puede utilizar las
operaciones de la clase B, pero no al revs.
Programacin Orientada a Objetos
Relaciones entre clases
Rangos de multiplicidad
Programacin Orientada a Objetos
Relaciones entre clases
Rangos de multiplicidad
Cuando la multiplicidad mnima es 0, la relacin es
opcional.
Una multiplicidad mnima mayor o igual 1
establece una relacin obligatoria
Programacin Orientada a Objetos
Relaciones entre clases
Rangos de multiplicidad
Ejemplo 1
Todo departamento tiene un director
Un profesor puede dirigir un departamento
Programacin Orientada a Objetos
Relaciones entre clases
Rangos de multiplicidad
Ejemplo 2
Todo profesor pertenece a un departamento.
A un departamento pueden pertenecer varios
profesores.
Programacin Orientada a Objetos
Relaciones entre clases
Rangos de multiplicidad
Ejemplo 3
Programacin Orientada a Objetos
Relaciones entre clases
Agregacin / Composicin
Son formas especiales de relacin donde una
clase se define con la conjuncin de objetos de
otras clases de tal modo que stos ltimos forman
parte de la clase como un atributo adicional.
Se les conoce como relacin TODO-PARTE
Programacin Orientada a Objetos
Relaciones entre clases
Agregacin / Composicin
Si la relacin es fuerte, tal que objetos de la clase
PARTE son dependiente de la existencia de la
clase TODO entonces la relacin es
composicin. La clase TODO, tiene la
responsabilidad de la creacin y destruccin de
objetos de sus componentes
Programacin Orientada a Objetos
Relaciones entre clases
Agregacin / Composicin
Al contrario, si la existencia de objetos de la clase
PARTE es independiente de la existencia de
objetos de la clase TODO, entonces la relacin es
agregacin.
Programacin Orientada a Objetos
Relaciones entre clases
Agregacin / Composicin
Su representacin grfica es la siguiente:
Programacin Orientada a Objetos
Relaciones entre clases
Agregacin
Este diagrama indica que todo auto posee un
motor, de una marca particular, y con su
correspondiente nmero de identificacin.
Clase Agregada
Programacin Orientada a Objetos
Relaciones entre clases
Composicin
Clase Compuesta
Programacin Orientada a Objetos
Relaciones entre clases
Multiplicidad
En la composicin o agregacin, la multiplicidad
de la clase agregada/compuesta debe ser cero,
pero en las clases que conforman las partes
puede ser un rango cualquiera.
Programacin Orientada a Objetos
Relaciones entre clases
Multiplicidad
Aqu, el diagrama indica que una ventana de
Windows puede contener uno o ms botones.
Clase Compuesta
Programacin Orientada a Objetos
Relaciones entre clases
Generalizacin
Si se tiene una relacin en la que un objeto posee
atributos y operaciones similares a otro, entonces
son objetos de la misma clase, pero si uno de los
objetos posee atributos y/o operaciones extras
o de diferente comportamiento, se tiene una
relacin de generalizacin.
Programacin Orientada a Objetos
Relaciones entre clases
Generalizacin
La generalizacin es la relacin entre una clase
ms general y un clase ms especfica.
Se denota con un tringulo en el extremo del
vnculo correspondiente al elemento ms general.
La relacin puede interpretarse informalmente
como es un.
Programacin Orientada a Objetos
Relaciones entre clases
Generalizacin
Cliente
Cdigo
Direccin
Persona
Nombres
Apellidos
Empresa
Razn Social
RUC
Programacin Orientada a Objetos
Relaciones entre clases
Generalizacin
La clase con mayor refinamiento es llamada clase
de especializacin o subclase la otra, la de menor
refinamiento es llamada clase de generalizacin o
superclase
Programacin Orientada a Objetos
Relaciones entre clases
Generalizacin
Cliente
Cdigo
Direccin
Persona
Nombres
Apellidos
Empresa
Razn Social
RUC
Superclase
Subclases
Programacin Orientada a Objetos
Relaciones entre clases
Herencia
Concepto derivado de la generalizacin, indica
que la subclase hereda los atributos,
operaciones y relaciones de la superclase.
Programacin Orientada a Objetos
Relaciones entre clases
Generalizacin
Cuando una clase posee ms de una subclase,
pueden organizarse en forma de rbol de la
siguiente manera:
Programacin Orientada a Objetos
Relaciones entre clases
Jerarquia de clases
El comportamiento de una categora ms general
es aplicable a una categora particular.
Las subclases heredan caractersticas de las
clases de las que se derivan y aaden
caractersticas especficas que las diferencian
Las clases se organizan en una estructura
jerrquica formando una taxonoma.
Programacin Orientada a Objetos
Relaciones entre clases
Jerarqua de clases
Programacin Orientada a Objetos
Unidad 2: Elementos bsicos de POO
Estndares de programacin
Programacin Orientada a Objetos
Estndares de Programacin
http://javafoundations.blogspot.com/2010/07/java-
estandares-de-programacion.html

También podría gustarte