martes, 27 de abril de 2010

Diagramas de clase

- clases

Una clase es una plantilla que define un tipo de objeto.
  • Los objetos son instancias de las clases.
  • Los objetos no existen hasta el momento de su creación, es decir, en un programa los objetos no existen hasta que el programa se ejecute.
  • Las clases se representan mediante un rectángulo, en el que se divide en tres filas:

- Atributos:
  • Un atributo representa alguna propiedad o característica de la clase.
  • Un tipo de atributo nos indicara la naturaleza que va a poder tomas una variable.
  • Los atributos o caracteristicas se pueden clasificar en tres grupos haciendo referencia a su nivel de encapsulación, es decir, el grado de comunicación y visibilidad de ellos con el entorno:
- Publico (public): puede ser visible dentro y fuera de la clase.
- Privado (private): solo es visible dentro de la clase.
- Protegidos (Protected): indica que el atributo no seran visible desde fuera de la clase, pero si dentro de la clase, y accesible por las subclases que las hereden de las clases que lo contienen.

En una herramienta se representan asi:
• Publico (public) (+).
• Privado (Private) (-).
• Protegido(protected) (#).

Reglas de los atributos que se deben de cumplir:
  • El nombre de un atributo debe ser único dentro de la clase.
  • El nombre de un atributo NO debe tener espacios entre sí.
  • Los atributos no tienen ninguna identidad, al contrario que los objetos.
  • Los atributos toman valores dentro de un determinado rango.
  • Los atributos de una clase no deberían ser manipulados directamente por el resto de objetos.

- Identificadores:


Los identificadores son un tipo de atributo cuya función no va a ser la de reflejar características de la clase en la que se encuentran sino la de identificar unívocamente a la clase una vez que se instancia, es decir, va a identificar a los objetos, diferenciando unos de otros.

Cuando construimos las clases del sistema, los identificadores NO deben ser incluidos como atributos de la clase.

- Una clase estará determinada por un estado y un comportamiento.
- Un objeto estará determinado por un identificador, un estado y un comportamiento.

Características del identificador:
• Es único y global para cada objeto dentro del sistema.
• Es determinado en el momento de la creación del objeto.
• Es independiente de las propiedades del objeto.
• No cambia durante la vida del objeto ni tampoco se reutiliza cuando éste deje de existir.

- Métodos:

Son el conjunto de funcionalidades que describen la naturaleza y el comportamiento que tendrán los objetos de la clase; es decir, las operaciones que van a poder realizar los objetos de esa clase.

Ejemplos:
• Para la clase Puerta podemos tener los siguientes: abrir, cerrar, pintar, etc. Cuando se instancia esta clase y se crea el objeto Puerta, éste puede ejecutar su método abrir y la puerta se abrirá.
• Para la clase Persona: comer, dormir, andar, etc. De la misma forma que el ejemplo anterior un objeto Persona comerá cuando ejecute su método comer.

Reglas de los métodos que hay respetar:

  • Los métodos deben ser únicos dentro de una misma clase.
Ejemplo: La clase Persona y Gato pueden tener un método que sea dormir pero no pueden existir dos métodos dormir dentro de una misma clase.
  • No se debe utilizar el mismo nombre para métodos que tengan un significado totalmente diferente.
Ejemplo: un método que se llame desplazarse para la clase Persona y para la clase Coche. Este método no debe llamarse igual en ambas clases ya que la manera en que los dos objetos se desplazarán no es la misma y por tanto el método no debe llamarse de la misma forma, porque podría generar confusión. Para corregir esto, la manera adecuada sería llamarlos por ejemplo Caminar para la clase Persona y Circular para la clase Coche.

Los métodos pueden tener argumentos, es decir, una lista de parámetros, cada uno con un tipo y pueden también retornar resultados, cada uno con un tipo.

Al igual que ocurre con los atributos, encontramos tres modos de encapsular los metodos de una clase, es decir, determinar la visibilidad de los metodos de una clase.

• Publico (public) (+).
• Privado (Private) (-).
• Protegido(protected) (#).

No hay comentarios:

Publicar un comentario