Crear clases derivadas
Este apartado del tutorial explica:
•cómo añadir un diagrama de clases nuevo al proyecto,
•cómo añadir clases que ya existen al diagrama,
•cómo añadir una clase nueva al diagrama y
•cómo crear clases derivadas desde una clase abstracta por medio de generalizaciones.
Nota: | el requisito para este apartado del tutorial es haber completado el apartado anterior (Diagramas de clases) para crear la clase abstracta Account. |
Crear un diagrama de clases nuevo
1.En la ventana Estructura del modelo haga clic con el botón derecho en el paquete bankview (situado dentro de Root | Design-phase | BankView | com | altova) y seleccione Diagrama nuevo | Diagrama de clases.
2.Haga doble clic en la nueva entrada DiagramaDeClases1, cambie el nombre por "Account Hierarchy" y pulse Entrar para confirmar. El nuevo diagrama "Account Hierarchy" puede verse en el área de trabajo.
Agregar clases que ya existen a un diagrama
1.En la ventana Estructura del modelo haga clic en la clase Account del paquete bankview (situado dentro de com | altova | bankview) y arrástrelo hasta el diagrama.
2.Haga clic en la clase CheckingAccount (del mismo paquete) y arrástrela hasta el diagrama. Ponga la clase debajo y a la izquierda de la clase Account.
3.Use el mismo método para insertar la clase CreditCardAccount. Póngala a la derecha de la clase CheckingAccount.
Agregar una clase nueva
La tercera clase derivada (SavingsAccount) se añadirá manualmente al diagrama.
1.Haga clic con el botón derecho en el diagrama y seleccione Nuevo/a | Clase. Esto añade automáticamente una clase nueva al paquete (bankview) que contiene el diagrama de clases actual "Account Hierarchy".
2.Haga doble clic en el nombre de la clase y cámbielo por SavingsAccount.
3.Cree la estructura de clase que aparece en la siguiente imagen. Para añadir propiedades y operaciones siga los métodos que se explican en el apartado anterior del tutorial (Diagramas de clases).
3. | En la ventana Propiedades navegue hasta el cuadro de texto nombre del archivo de código e introduzca "SavingsAccount.java" para definir la clase Java. |
Estas son las propiedades y operaciones que se pueden copiar o mover de una clase a otra directamente:
•propiedades y operaciones de una clase del diagrama actual,
•propiedades y operaciones de clases distintas del mismo diagrama,
•propiedades y operaciones de la ventana Estructura del modelo,
•propiedades y operaciones de diagramas UML distintos (colocando los datos copiados en un diagrama diferente).
Esto se puede hacer mediante una operación de arrastrar o colocar o con una operación de corta y pega con Ctrl + C y Ctrl + V (véase Renombrar, mover y copiar elementos). Por ejemplo, puede copiar la operación collectAccountInfo() de la clase Account a la nueva clase SavingsAccount de la siguiente manera:
1.En la ventana Estructura del modelo expanda la clase Account.
2.Haga clic con el botón derecho en la operación collectAccountInfo y seleccione Copiar.
3.Haga clic con el botón derecho en la clase SavingsAccount y seleccione Pegar.
La operación se copia en la clase SavingsAccount, que automáticamente se expande para mostrar la nueva operación.
La nueva operación también se puede ver en la clase SavingsAccount del diagrama de clases.
Crear clases derivadas mediante generalización/especialización
Llegados a este punto el diagrama de clases contiene la clase abstracta Account y tres clases específicas.
Ahora vamos a crear una relación de generalización/especialización entre Account y las clases específicas (es decir, crearemos tres clases derivadas concretas).
1.Haga clic en el botón Generalización de la barra de herramientas mientras mantiene pulsada la tecla Ctrl.
2.Arrastre el puntero del ratón desde la clase CreditCardAccount hasta la clase Account.
3.Arrastre el puntero del ratón desde la clase CheckingAccount hasta la punta de flecha de la generalización que acaba de crear.
4.Arrastre el puntero del ratón desde la clase SavingsAccount hasta la punta de flecha de la generalización que creó en el paso anterior (ya puede soltar la tecla Ctrl).
Como resultado se crearon flechas de generalización entre las tres subclases y la superclase Account.