Documente Academic
Documente Profesional
Documente Cultură
Diagrama UML
Encapsulacion
Herencia
Profesor:
Integrantes:
DIAGRAMA UML.............................................................................................................................................1
Diagrama de Clases............................................................................................................................2
Diagrama de Objetos..........................................................................................................................3
Diagrama de Casos de Uso.................................................................................................................3
Diagrama de Estados..........................................................................................................................4
Diagrama de Secuencias.....................................................................................................................5
Diagrama de Actividades....................................................................................................................6
Diagrama de Colaboraciones..............................................................................................................6
ENCAPSULACION............................................................................................................................................7
Público:...............................................................................................................................................7
Protegido:...........................................................................................................................................7
privado:..............................................................................................................................................7
HERENCIA.......................................................................................................................................................8
Clase abstracta...................................................................................................................................9
Redefinición de métodos....................................................................................................................9
10
1
DIAGRAMA UML
Diagrama de Clases
Los diagramas de clases describen la estructura estática de un sistema. Las cosas que existen y
que nos rodean se agrupan naturalmente en categorías. Una clase es una categoría o grupo de
cosas que tienen atributos (propiedades) y acciones similares. Un ejemplo puede ser la clase
“Aviones” que tiene atributos como el “modelo de avión”, “la cantidad de motores”, “la velocidad
de crucero” y “la capacidad de carga útil”. Entre las acciones de las cosas de esta clase se
encuentran: “acelerar”, “elevarse”, “girar”, “descender”, “desacelerar”.
Diagrama
de Objetos
Los Diagramas
de Objetos
están vinculados
con los Diagramas
de Clases. Un
objeto es una
2
instancia de una clase, por lo que un diagrama de objetos puede ser visto como una instancia de
un diagrama de clases. Los diagramas de objetos describen la estructura estática de un sistema
en un momento particular y son usados para probar la precisión de los diagramas de clases.
Un caso de uso es una descripción de las acciones de un sistema desde el punto de vista del
usuario. Es una herramienta valiosa dado que es una técnica de aciertos y errores para obtener
los requerimientos del sistema, justamente desde el punto de vista del usuario.
Los diagramas de caso de uso modelan la funcionalidad del sistema usando actores y casos de
uso. Los casos de uso son servicios o funciones provistas por el sistema para sus usuarios.
3
4
Diagrama de Estados
5
6
Diagrama de Secuencias
7
Diagrama de Actividades
Diagrama de Colaboraciones
8
ENCAPSULACION
Ocultación de datos
El usuario de una clase en particular no necesita saber cómo están estructurados los datos
dentro de ese objeto, es decir, un usuario no necesita conocer la implementación Al evitar que el
usuario modifique los atributos directamente y forzándolo a utilizar funciones definidas para
modificarlos (llamadas interfaces), se garantiza la integridad de los datos (por ejemplo, uno
puede asegurarse de que el tipo de datos suministrados cumple con nuestras expectativas bien
que los se encuentran dentro del periodo de tiempo esperado).
La encapsulación define los niveles de acceso para elementos de esa clase. Estos niveles de
acceso definen los derechos de acceso para los datos, permitiéndonos el acceso a datos a
través de un método de esa clase en particular, desde una clase heredada o incluso desde
cualquier otra clase. Existen tres niveles de acceso:
Público:
Funciones de toda clase pueden acceder a los datos o métodos de una clase que se define con el
nivel de acceso público. Este es el nivel de protección de datos más bajo
Protegido:
El acceso a los datos está restringido a las funciones de clases heredadas, es decir, la función
miembro de esa clase y todas las subclases
privado:
El acceso a los datos está restringido a los métodos de esa clase en particular. Este es nivel más alto
de protección de datos
9
HERENCIA
La herencia es un mecanismo exigido a cualquier lenguaje que pretenda ser orientado a objetos.
Consideraremos la herencia como la transmisión de los métodos y atributos de una clase a otra.
Gracias a la herencia se pueden establecer jerarquías entre clases. Establecer una jerarquía es
un proceso subjetivo, que depende del programador y de los matices de apreciación de cada
uno.
La herencia nos permite definir una jerarquía en la que existirán clases padre y clases hijo,
pudiéndo ser una clase padre de otra clase, e hijo de otra clase a la vez. No deben definirse
jerarquías de herencia en la que una clase sea padre e hijo de la misma clase. Existen 2 tipos de
herencia: La herencia simple y la herencia múltiple. En la herencia simple una clase sólo puede
tener una clase padre, en la herencia múltiple, una clase puede tener más de una clase padre.
Por ejemplo:
En la siguiente figura se muestra una jerarquía de clases, con herencia simple de 2 clases
vertebrado e invertebrado, que heredan de la clase serVivo.
En la siguiente figura se muestra una jerarquía de clases, con herencia múltiple de 1 clase
hispano-argentino, que hereda de las clases español y argentino.
10
Cuando una clase hereda de otra, la clase padre "transmite" todos sus atributos y métodos a la
clase hija.
Clase abstracta
Al construir una jerarquía de herencia puede darse el caso de que ciertas operaciones de la
clase padre no pueden ser completadas por diferentes motivos, o que dichas operaciones se
hagan de una forma diferente en cada clase hija. Por ejemplo, en una clase serVivo existirá un
método comer, pero ese método será diferente en una clase hija perro (los perros comen con la
boca), y en una clase hija pájaro, ya que los pájaros comen con el pico (salvo una mutación
extraña...). Por lo tanto, una clase será abstracta si tiene algún método diferido, es decir,
declarado pero no definido. No podrá instanciarse ningún objeto de una clase abstracta.
Redefinición de métodos
Una clase hija de una clase abstracta puede redefinir los métodos diferidos de su clase padre
abstracta.
Nota: Una clase hija de una clase abstracta no tiene porqué redefinir los métodos diferidos de la
clase padre, podría ser una clase nieta de la clase abstracta la que hiciera la redefinición. Lo que
es obligatorio es redefinir un método diferido en alguna clase descendiente de una clase
abstracta.
El método debe redefinirse con los mismos parámetros que el método diferido, de lo contrario se
estaría definiendo otro método (sobrecarga). Es aquí donde aparece el conceptode super. Esta
palabra reservada hace referencia a un método perteneciente a la clase padre de la clase del
objeto en cuestión.
11
ANEXOS
HERENCIA 1
FIGURA
- double ancho
- double alto
+ mostrarDimension( )
PRINCIPAL
TRIANGULO
+ main()
- string tipo
- double area
+ mostrarTipo( )
12
HERENCIA 2
FIGURA
- double ancho
- double altura
+ asignarAncho( )
+ asignarAltura( )
+ mostrarDimension( )
PRINCIPAL
+ main()
TRIANGULO
- string tipo
- double area
+ mostrarTipo( )
13
HERENCIA 3
Figura
- double ancho
- double alto
+ asignarAncho( )
+ asignarAltura( )
+ mostrarDimension( )
Principal
+ main()
Triangulo
- string tipo
- double area
+ mostrarTipo( )
14
HERENCIA 4
FIGURA
- double ancho
- double alto
+ darAncho( )
+ darAltura( )
+ mostrarDimension( )
PRINCIPAL
+ main()
TRIANGULO
- string tipo
- double area
+ mostrarTipo( )
15
HERENCIA 5
FIGURA
- double ancho
- double alto
+ mostrarDimension( )
PRINCIPAL
+ main()
TRIANGULO
- string tipo
- double area
+ mostrarTipo( )
16