Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clasess PDF
Clasess PDF
• Una clase se representan como un rectángulo dividido en tres partes (tres compartimentos).
Ejemplo:
Carro
# marca: String
- modelo: int
- cantidadGasolina: double
+ Carro(String, String)
~ getModelo():String
+ tanquear(double):void
• Es posible representar una clase usando sólo el compartimento del nombre, o el compartimento
del nombre y uno de los dos siguientes (atributos o métodos). Cuando se representa una clase
de esta forma no es posible deducir nada de los compartimentos faltantes.
Ejemplo:
2. Modificadores
- cantidadTotal: int
- nombre: String
+ setCantidadTotal(valor : int):void
+ getNombre():String
• Para indicar que una clase es abstracta o final se debe colocar un comentario en la parte superior
del rectángulo, debajo del nombre de la clase. Este comentario va entre llaves, como se muestra
en el ejemplo:
FiguraGeométrica
{abstract}
- nombre:String
• Los métodos abstractos también llevan un comentario al final, como se ilustra a continuación.
FiguraGeométrica
{abstract}
Imagen
3. Paquetes
NombrePaquete
• La relación de un paquete con las clases que contiene se representará como se ilustra a
continuación:
• En un diagrama de clases, cuando se desea incluir una clase de otro paquete se escribe, en el
compartimento correspondiente al nombre de la clase, el nombre del paquete seguido de dos
puntos. Por ejemplo:
modelo::base::Casa
corejava::Day
- estilo:String
- metrosCuadrados: int
4. Herencia
• La herencia se representa con una línea continua que va de la clase hija a la clase padre, y que
termina en un triángulo vacío. Ejemplo:
FiguraGeométrica
+ área():double
+ perímetro():double
Cuadrado
+ área():double
En el ejemplo anterior la clase Cuadrado es hija de la clase FiguraGeométrica y hereda todos sus
atributos y métodos. En este caso sólo es necesario mostrar los métodos que se sobrescriben. Es decir,
Cuadrado sobrescribe el método área, pero no el método perímetro, aunque tiene ambos métodos.
5. Asociación
• Una asociación (relación entre dos clases) se representa como una línea continua entre dos
clases, y puede tener el nombre de la relación sobre esta línea. Ejemplo:
conducir
Avión Piloto
En el ejemplo anterior cada Avión tiene una relación con Piloto, pero también cada Piloto tiene
relación con Avión. Esta es una relación en ambos sentidos.
• Para mostrar que la relación sólo tiene un sentido se muestra con una flecha que indica el sentido
de la relación. Ejemplo:
viajar
Avión Pasajero
En este ejemplo un Pasajero conoce el Avión (o aviones) con el cual viaja, pero el Avión no tiene
ninguna relación con los Pasajeros.
• Para determinar cuántos objetos de cada clase participan en una relación (multiplicidad), se
escribe el rango de la forma: límiteInferior..límiteSuperior. Por ejemplo:
Avión Piloto
Aerolínea 1 * * 1..3
- nombre:String
+ volar():void
Aunque estas relaciones se traducirán en atributos en las clases, estos atributos no se muestran en el
diagrama de clases.
6. Interfaces
• Una interfaz se puede representar como una clase. En el primer compartimento del rectángulo
debe ir la palabra “interfaz” encerrada en símbolos de << y >>. En los otros compartimientos, se
trabaja igual que con las clases.
Ejemplo:
<<interfaz>>
Descriptible
+ descripción(líneas:int):String
• Para mostrar que una clase implementa una interfaz, se utiliza una línea punteada desde la clase
hacia la interfaz, que termina en un triángulo vacío. Ejemplo:
<<interfaz>> Empleado
Serializable
- cédula: String