Sunteți pe pagina 1din 19

Diagrama de Clases

UTM MMDS-012019
Programación Orientada a Objetos (POO)
Construcción de programas basados en objetos
Razones para utilizarlo:
1. Único camino posible a seguir para la realización de
programas en la actualidad.
2. Grandes cantidades de información a tratar en
todos ellos.
3. Facilidad de comprensión de los programas. El
equipo de personas que intervienen es bastante
numeroso y todos deben de poder utilizar el código
que el resto de miembros del equipo, han realizado
sin tener que complicarse la vida.
4. La reutilización de objetos.
¿Qué es una CLASE?
Es un molde o bien prototipo en donde se definen las
propiedades ó atributos (variables) y las acciones ó
eventos (métodos) comunes de una entidad.
La palabra clase proviene de clasificación. Formar
clases es el acto de clasificar.
• Por ejemplo, todos los coches comparten un mismo
comportamiento (se pueden acelerar, dirigir,
detener,…) y atributos comunes (tienen numserie,
mat, color, motor,…).
Los lenguajes orientados a objetos permiten
descripciones de clases (conjuntos de objetos) que
comparten estructura y comportamiento.

El único requisito real que debe cumplir una clase es


estimular la comunicación.

Método
Acción asociada con un objeto , tiene un nombre y puede
tener uno o más parámetros, se deriva de la idea de
tener un método para hacer algo.
¿Qué es un objeto?
• Combinación de ciertos datos (variables) y de
algunas acciones ( métodos).
• Es una instancia de una clase.
• Los objetos se caracterizan por:
• Identidad: Los objetos se distinguen unos de
otros
• Comportamiento: Los objetos pueden realizar
tareas
• Estado: Los objetos contienen información
EJEMPLO:

Usamos la palabra coche para referirnos al concepto


general de coche: hablamos de coche como una clase, la
del conjunto de todos los coches, sin pensar en ningún
tipo de coche concreto.

Objeto sería un coche en concreto.


Identidad: imaginemos que dos vecinos tienen
coches que son exactamente de la misma marca,
modelo y color. A pesar de lo mucho que se puedan
parecer, podemos estar seguros de que sus matrículas
serán diferentes y reflejarán la identidad de cada uno
de los coches.
Comportamiento
Un coche es un coche porque podemos conducirlo.

Estado
Es posible que dos objetos tengan el mismo
estado, pero siguen siendo dos objetos diferentes; por
ejemplo, dos gemelos idénticos tienen exactamente el
mismo estado (su ADN), pero son dos personas
distintas.
Hay que tener cuidado de no confundir un objeto con una
clase, una gelatina de fresa y una gelatina de limón son
objetos de la misma clase (o del mismo molde), pero con
atributos (o sabores) diferentes.
Es el proceso en el cual separamos las propiedades más
importantes de un objeto, de las que no lo son. Es decir,
por medio de la abstracción definimos las características
esenciales de un objeto del mundo real, los atributos y
comportamientos que lo definen como tal, para después
modelarlo en un objeto de software.
Ej. Para crear un programa que represente el sistema solar, por
medio de la abstracción, podemos ver a éste sistema como un
conjunto de objetos, algunos de estos objetos son los planetas, que
tienen un estado, dado por sus características físicas, digamos,
tamaño, masa, entre otras, estos objetos tendrán también
comportamientos : la translación y la rotación, pueden
mencionarse como los más evidentes.
Es la propiedad que nos permite asegurar que la
información de un objeto le es desconocida a los demás
objetos en la aplicación.
Permite definir los atributos y los métodos de una clase
para que los objetos que se instancian de ésta trabajen
como unidades independientes de los demás objetos con
los que interactúan.
La encapsulación incluye dos aspectos importantes:
1. Combinación de datos y funciones en una sola
entidad (módulo).
2. Control de la accesibilidad a los miembros de la
entidad.
Los programas procedurales tradicionales, escritos en
lenguajes como C, contienen fundamentalmente una
gran cantidad de datos y muchas funciones, y cada
función puede acceder a todos los datos, son pensados
para que entienda el sistema informático.

POO es realmente una programación orientada a


personas, puesto que los humanos tendemos de forma
natural a pensar y trabajar en términos del
comportamiento de objetos a alto nivel.
Una vez se han combinado datos y funciones en una sola
entidad, ésta forma una frontera cerrada que crea de
forma natural un espacio interior y otro exterior. Esta
frontera se puede utilizar para controlar de forma
selectiva la accesibilidad de las entidades: algunas serán
accesibles desde el interior y el exterior, mientras que a
otras sólo será posible acceder desde el interior.
Los miembros que son siempre accesibles se denominan
públicos (+), mientras que aquellos a los que sólo se
puede acceder desde el interior son privados (-), y los
heredados protegidos (#).
1. Porque permite el control
• El objeto se usa sólo con los métodos públicos
2. Porque permite el cambio
• El uso del objeto no varía si cambia el tipo de los
datos privados. Ejemplo
• Es una relación especificada a nivel de clase para
reflejar el hecho de que una clase nueva puede
derivar de otra ya existente. El principio en que se
basa este concepto es que las clases que se derivan de
otras clases, comparten las características comunes de
la clase de la que descienden.
• Indica una relación
« es un tipo de ».
Ejemplo
• Herencia sencilla: derivadas de una clase base
• Herencia múltiple: derivadas de dos o más clases
base. Ejemplo

Herencia simple

Herencia múltiple
• Los objetos tienen la posibilidad de actuar, la acción
sucede cuando un objeto recibe un mensaje, que es,
una solicitud que pide al objeto que se comporte de
alguna forma.
• Cuando se ejecutan los programas OO, los objetos
reciben, interpretan y responden a mensajes
procedentes de otros objetos.
• Los procedimientos residen en el objeto y determinan
cómo actúa el objeto cuando recibe un mensaje.
• Es la propiedad por la cual una entidad
puede tomar diferentes formas. Generalmente
está entidad es una clase, y la forma en que
se consigue que tome diferentes formas es por
medio de nombrar a los métodos de dicha
clase con un mismo nombre pero con diferentes
implementaciones (tipo y/o número de
argumentos).
DUDAS…
PREGUNTAS…

S-ar putea să vă placă și