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