Está en la página 1de 5

Gua de ejercicios para la solemne nmero 3

1. Dada una jerarqua de clases que representa distintos tipos de publicaciones,


siendo la clase abstracta Publicacin la raz de la jerarqua, que contiene los
campos AUTO, !O"#$ % !U"$O D$ &AG'!A(. )ree las subclases
Libros y Papers. $n la clase *ibros, se deber+ tener la ,ariable )O(TO, % no se
podr+n crear subclases a partir de esta clase. $n la clase &apers se deber+ tener la
,ariable con-reso .(T'!G/. )ree un constructor particular para la clase
&U#*')A)'O!, la cual reciba los campos correspondientes a su clase % en las
otras dos clases cree el constructor correspondiente para que pueda llenar todas
las ,ariables.
0. 'mplemente la clase abstracta denominada persona, la cual conten-a las
,ariables miembros nombre, edad, se1o % contador. *ue-o implemente las
subclases 2ijo % &adre, la cual deri,en de persona. $l constructor de la clase
persona, deber+ incrementar contador el cual contiene el nmero de personas
que se 3an creado. *os constructores de las clases 2ijo % &adre deber+n llamar al
constructor de la clase padre para aumentar el contador, pero cada constructor
deber+ recibir los datos correspondientes para llenar las ,ariables miembros de
cada clase. *a clase 2'4O tendr+ la ,ariable miembro 3oras4ue-o mientras que
la clase padre tendr+ la ,ariable miembro 2orasTrabajo.
3. Dise5a una clase abstracta denominada 6i-ura, cu%os miembros dato sean7 base
% altura. Adem+s del constructor % los m8todos set .entre-ar los lados de la
9i-ura/ % -et.mostrar los lados de la 9i-ura/, la clase contar+ con un m8todo
abstracto que retorne el +rea de una 9i-ura. 6i-ura contiene dos subclases
denominadas ectan-ulo % Trian-ulo. De9ina estas dos subclases % declare dos
objetos de tipo Trian-ulo % ectan-ulo % ,isualice en pantalla el +rea de las
9i-uras.
:. Dado el si-uiente c;di-o, en el que se 3an eliminado los comentarios por
razones de espacio, % en el cual la e1presi;n [...] simboliza c;di-o que se 3a
omitido7
class A {
protected int m_x;
public int VerX(){return m_x}
public void FiarX(int x) {
m_x ! x;
}
public int "() {#$stem.%ut.println(&A."&);}
public int '();
}
class ( extends A {
public int "() {#$stem.%ut.println(&(."&);}
public int )() {#$stem.out.println(&(.)&);}
public int *() {#$stem.out.println(&(.*&);}
}
class + extends ( {
public int "() {#$stem.%ut.println(&+."&);}
public int )() {#$stem.out.println(&+.)&);}
public int '() {#$stem.out.println(&+.'&);}
}
[...]
A v;
v ! ne, A();
A. <$s le-al la ltima instrucci;n= <&or qu8=
#. <)u+les de las clases anteriores son abstractas=
). <$s le-al la sentencia v ! ne, (()= <&or qu8=
D. <$s le-al la sentencia v ! ne, +()= <&or qu8=
$. Dada la sentencia de la pre-unta anterior, <qu8 aparecer+ por pantalla si despu8s
se ejecuta v."()=
6. <>u8 m8todos rede9ine (= <? qu8 m8todos rede9ine +=
G. Dada esa estructura de clases, <3a% al-una 9orma de conse-uir que mediante una
llamada se imprima por pantalla A."= <>u8 c;di-o escribiras para ello=
2. <&odra incluir en el c;di-o de la clase # al-o como m-_x ! .= <? en el de la
clase )=
@. &retendemos dise5ar una peque5a aplicaci;n para administrar las cuentas de una
entidad bancaria. (abiendo que las entidades 9inancieras utilizan distintos tipos
de cuenta, la 3erencia puede ser una soluci;n para reutilizar c;di-o. *a idea es
dise5ar una aplicaci;n para administrar las cuentas corrientes % de a3orro de los
clientes de una entidad 9inanciera. )omo ambas cuentas tienen bastantes cosas
en comn, 3emos decidido a-rupar 8stas en una clase ))uenta de la cual
deri,aremos las cuentas espec9icas que ,a%an sur-iendo. (era absurdo crear
objetos de ))uentaA m+s bien la intenci;n es que se a-rupe el c;di-o comn
que 3eredar+n sus subclases, raz;n por la cual la declararemos abstracta.
&ensemos entonces inicialmente en el dise5o de la clase ))uenta. Despu8s de
un an+lisis de los 9actores que inter,ienen en una cuenta en -eneral, lle-amos a
la conclusi;n de que los atributos % m8todos comunes a cualquier tipo de cuenta
son los si-uientes7
Atributo Significado
nombreTitular Dato de tipo (trin- que almacena el nombre del titular de la
cuenta.
num)uenta Dato de tipo (trin- que almacena el nmero de cuenta.
(aldo Dato de tipo double que almacena el saldo de la cuenta.
TipoDe'nter8s Dato de tipo double que almacena el tipo de inter8s.
Mtodo Significado
))uenta $s el constructor de la clase. 'nicia los datos nombre, cuenta,
saldo % tipo de inter8s. 2aciendo uso de los m8todos de
asi-naci;n de atributos. De9ine tambi8n un constructor por
de9ecto sin c;di-o.
set!ombre &ermite asi-nar el nombre.
-et!ombre etorna el nombre.
set)uenta Asi-na el nmero de cuenta.
-et)uenta etorna el nmero de cuenta.
-et(aldo etorna el saldo de la cuenta.
comisiones $s un m8todo abstracto sin par+metros que ser+ rede9inido en las
subclases.
in-reso $s un m8todo que tiene un par+metro cantidad de tipo double que
a5ade la cantidad especi9icada al saldo actual de la cuenta.
reinte-ro $s un m8todo que tiene un par+metro cantidad de tipo double que
resta la cantidad especi9icada del saldo actual de la cuenta.
setTipo'nteres Asi-na el tipo de inter8s.
-etTipo'nteres etorna el tipo de inter8s
intereses "8todo abstracto. )alcula los intereses producidos
Adems de los miembros heredados de la clase CCuenta, $l dise5o de la subclase
))uentaA3orro es el si-uiente7
Atributos Significado
cuota"antenimiento Dato de tipo double que almacena la comisi;n que
cobrar+ la entidad bancaria por el mantenimiento de la
cuenta.
Mtodo Significado
))uentaA3orro $s el constructor de la clase. 'nicia loa atributos de la
misma.
set)uota"anten $stablece la cuota de mantenimiento de la cuenta
-et)uota"anten De,uel,e la cuota de mantenimiento.
comisiones "8todo que se ejecuta los das uno de cada mes para
cobrar el importe al mantenimiento de la cuenta.
intereses. "8todo que permite calcular el importe correspondiente a
los intereses mensuales producidos.
Acumulamos los intereses por mes s;lo los das 1 de cada mes. (i el da no es primero
de mes retornamos B.B. Una ,ez calculados los intereses, se in-resan en la cuenta.
Camos a aumentar la jerarqua de clases de la clase ))uenta, deri,ando una subclase
denominada ))cuenta)orriente de la clase abstracta ))uenta.
*a clase ))uenta)orriente es una nue,a clase que 3ereda de la clase ))uenta. &or lo
tanto, tendr+ todos los miembros de su superclase, a los que a5adiremos los si-uientes7
Atributo Significado
transacciones Dato de tipo int que almacena el nmero de
transacciones e9ectuadas sobre esa cuenta.
importe&orTrans Dato de tipo double que almacena el importe que la
entidad bancaria cobrar+ por cada transacci;n.
trans$1entas Dato de tipo int que almacena el nmero de
transacciones -ratuitas.
Mtodo Significado
))uenta)orriente )onstructor de la clase. 'nicia sus datos miembro,
e1cepto transacciones que inicialmente ,ale B.
decrementarTransacciones Decrementa en 1 el nmero de transacciones.
set'mporte&orTrans $stablece el importe por transacci;n.
-et'mporte&orTrans De,uel,e el importe por transacci;n.
setTrans$1entas $stablece el nmero de transacciones e1entas.
-etTrans$1entas De,uel,e el nmero de transacciones e1entas.
in-reso A5ade la cantidad especi9icada al saldo actual de
la cuenta e incrementa el nmero de transacciones.
Dado que 8ste m8todo se llama i-ual que otro
de9inido en la superclase ))uenta, para acceder al
m8todo de la superclase % reutilizar su c;di-o
tendremos que utilizar la palabra reser,ada super.
&or ejemplo7 super.in-reso.cantidad/A
reinte-ro esta la cantidad especi9icada del saldo actual de la
cuenta e incrementa el nmero de transacciones.
Actuaremos i-ual que en in-reso para reutilizar el
c;di-o de la superclase ))uenta.
comisiones (e ejecuta los das uno de cada mes para cobrar el
importe de las transacciones e9ectuadas que no
est8n e1entas % pone el nmero de transacciones a
cero.
intereses (e ejecuta los das uno de cada mes para calcular el
importe correspondiente a los intereses mensuales
producidos % a5adirlos al saldo. 2asta 3BB.BBB
ptas. al B.@D. $l resto al inter8s establecido.
etorna B.B para el resto de los das. $ste in-reso
no debe incrementar las transacciones
&rocediendo de 9orma similar a como lo 3emos 3ec3o para las clases ))uentaA3orro %
))uenta)orriente, construimos a continuaci;n la clase ))uenta)orriente)on'n
.cuenta corriente con intereses/ deri,ada de ))uenta)orriente.
(upon-amos que este tipo de cuenta se 3a pensado para que acumule intereses de 9orma
distinta a los otros tipos de cuenta, pero para obtener una rentabilidad ma%or respecto a
))uenta)orriente.
Di-amos que se trata de una cuenta de tipo ))uenta)orriente que precisa un saldo
mnimo de 3BB.BBB pesos. para que pueda acumular intereses. (e-n esto
))uenta)orriente'n, adem+s de los miembros 3eredados, s;lo precisa implementar sus
constructores % ,ariar el m8todo intereses7
Mtodo Significado
))uenta)orriente)on'n )onstructor de la clase.
intereses &ermite calcular el importe mensual correspondiente a los
intereses producidos. &recisa un saldo mnimo de 3BB.BBB
pesos.
Importante
Una subclase que rede9ina un m8todo 3eredado s;lo tiene acceso a su propia ,ersi;n %
a la publicada por su superclase directa. &or ejemplo, las clases ))uenta %
))uenta)orriente inclu%en cada una su ,ersi;n del m8todo in-resoA % la subclase
))uenta)orriente)on'n 3ereda el m8todo in-reso de ))uenta)orriente. $ntonces,
))uenta)orrientec)on'n, adem+s de su propia ,ersi;n, s;lo puede acceder a la ,ersi;n de
su superclase directa por medio de la palabra super .en este caso ambas ,ersiones son la
misma/, pero no puede acceder a la ,ersi;n de su superclase indirecta ))uenta .super.super
no es una e1presi;n admitida por el compilador de 4a,a/.