10.2
Indique si el siguiente enunciado es
verdadero o falso y, si es falso, explique por qué: UML requiere que subra-
yemos los nombres de las clases abstractas y los nombres de los métodos abstractos.
10.3
Escriba código en Java para empezar a implementar el diseño para la clase
Transaccion
que se especifi ca en
las fi guras 10.21 y 10.22. Asegúrese de incluir los atributos tipo referencias
private
, con base en las asociaciones de la
clase
Transaccion
. Asegúrese también de incluir los métodos
establecer
public
que proporcionan acceso a cualquiera
de estos atributos
private
que requieren las subclases para realizar sus tareas.
Respuestas a los ejercicios de autoevaluación del Ejemplo práctico de Ingeniería de Software
10.1
b.
10.2
Falso. UML requiere que se escriban los nombres de las clases abstractas y de los métodos abstractos en cursiva.
10.3
El diseño para la clase
Transaccion
produce el código de la fi gura 10.25. Los cuerpos del constructor de la cla-
se y los métodos se completarán en el apéndice M. Cuando estén implementados por completo, los métodos
obtener-
Pantalla
y
obtenerBaseDatosBanco
devolverán los atributos de referencias
private
de la superclase
Transaccion
,
llamados
pantalla
y
baseDatosBanco
, respectivamente. Estos métodos permiten que las subclases de
Transaccion
accedan a la pantalla del ATM e interactúen con la base de datos del banco.
1
// La clase abstracta Transaccion representa una transacción con el ATM
2
public abstract class
Transaccion
3
{
4
// atributos
5
private int
numeroCuenta;
// indica la cuenta involucrada
6
private
Pantalla pantalla;
// la pantalla del ATM
7
private
BaseDatosBanco baseDatosBanco;
// base de datos de información de las cuentas
8
9
// constructor sin argumentos invocado por las subclases, usando super()
10
public
Transaccion()
11
{
12
}
// fin del constructor Transaccion sin argumentos
13
14
// devuelve el número de cuenta
15
public int
obtenerNumeroCuenta()
16
{
17
}
// fin del método obtenerNumeroCuenta
18
19
// devuelve referencia a la pantalla
20
public
Pantalla obtenerPantalla()
21
{
22
}
// fin del metodo getScreen
23
24
// devuelve referencia a la base de datos del banco
25
public
BaseDatosBanco obtenerBaseDatosBanco()
26
{
27
}
// fin del método obtenerBaseDatosBanco
28
29
// método abstracto sobrescrito por las subclases
30
public abstract void
ejecutar();
31
}
// fin de la clase Transaccion
Figura 10.25
| Código de Java para la clase
Transaccion
, basada en las fi guras 10.21 y 10.22.
10.10 Conclusión
457
10.10 Conclusión
En este capítulo se introdujo el polimorfi smo: la habilidad de procesar objetos que comparten la misma superclase
en una jerarquía de clases, como si todos fueran objetos de la superclase. En este capítulo hablamos sobre cómo el
polimorfi smo facilita la extensibilidad y el mantenimiento de los sistemas, y después demostramos cómo utilizar
10_MAQ_CAP_10.indd457
4/19/081:25:30AM