Está en la página 1de 15

PROGRAMACION DIGITAL II UNIVERSIDAD NACIONAL DEL CALLAO

UNIVERSIDAD NACIONAL DEL


CALLAO
FACULTAD DE INGENIERIA ELECTRICA Y
ELECTRONICA
ESCUELA DE INGENIERIA ELECTRONICA
SEPARATA
4.- PROGRAMACIN JAVA :
REUTILIZACION DE CLASES
CURSO :
PROGRAMACION DIGITAL II
PROFESOR:
FERNANDO MENDOZA APAZA
AO : 2009
ING FERNANDO MENDOZA APAZA
1
PROGRAMACION DIGITAL II UNIVERSIDAD NACIONAL DEL CALLAO
Reutilizacin de clases
HERENCIA
Es una de las armas fundamentales de la programacin orientada a objetos. Permite
crear nuevas clases que heredan caractersticas presentas en clases anteriores. Esto
facilita enormemente el trabajo porque ha permitido crear clases estndar para todos
los programadores y a partir de ellas crear nuestras propias clases personales. Esto es
ms cmodo que tener que crear nuestras clases desde cero.
Para que una clase herede las caractersticas de otra hay que utilizar la palabra clave
extends tras el nombre de la clase. A esta palabra le sigue el nombre de la clase cuyas
caractersticas se heredarn. lo se puede tener herencia de una clase !a la clase de la
que se hereda se la llama superclase y a la clase heredada se la llama subclase".
Ejemplo:
class coche extends vehiculo {
...
} //La clase coche parte de la defnicin de eh!culo
mtodos y propiedades no heredados
Por defecto se heredan todos los m#todos y propiedades protected y public !no se
heredan los private". Adems si se define un m#todo o propiedad en la subclase con el
mismo nombre que en la superclase$ entonces se dice que se est redefiniendo el
m#todo$ con lo cual no se hereda #ste$ sino que se reemplaza por el nuevo.
Ejemplo%
public class vehiculo {
public int velocidad;
public int ruedas;
public void parar() {
velocidad = 0;
}
public void acelerar(int kmh) {
velocidad += kmh;
}
ING FERNANDO MENDOZA APAZA
2
PROGRAMACION DIGITAL II UNIVERSIDAD NACIONAL DEL CALLAO
}
class coches extends vehiculo {
int ruedas = 4;
int gasolina;
public void recargar(int litros) {
gasolina += litros;
}
}
...........................................................
public class app {
public static void main(String[] args) {
coches coche=new coches();
coches!acelerar("0);##$%todo heredado
coches!recargar(&);
}
}
Anulacin De Mtodos
&omo se ha visto$ las subclases heredan los m#todos de las superclases. Pero es ms$ tambi#n los pueden
sobrecargar para proporcionar una versin de un determinado m#todo.
Por 'ltimo$ si una subclase define un m#todo con el mismo nombre$ tipo y argumentos que un m#todo de
la superclase$ se dice entonces que se sobrescribe o anula el m#todo de la superclase.
Ejemplo%
clases internas
e llaman clases internas a las clases que se definen dentro de otra clase. Esto permite simplificar aun
ms el problema de crear programas. (a que un objeto complejo se puede descomponer en clases ms
sencillas. Pero requiere esta t#cnica una mayor pericia por parte del programador.
Al definir una clase dentro de otra$ estamos haci#ndola totalmente dependiente.
)ormalmente se realiza esta prctica para crear objetos internos a una clase !el motor de un coche por
ejemplo"$ de modo que esos objetos pasan a ser atributos de la clase.
ING FERNANDO MENDOZA APAZA

PROGRAMACION DIGITAL II UNIVERSIDAD NACIONAL DEL CALLAO


Por ejemplo%
public class coche {
public int velocidad;
public $otor motor;
public coche(int cil) {
motor=new $otor(cil);
velocidad=0;
}
public class $otor{ ##'lase interna
public int cilindrada;
public $otor(int cil){
cilindrada=cil;
}
}
public static void main(String[] args) {
coche c=new coche(&00);
S(stem!out!println(c!motor!cilindrada);##Saldr) &00
}
}
El objeto motor es un objeto de la clase Motor que es interna a Coche. i quisi#ramos acceder al objeto
motor de un coche sera%
Coche c=ne" Coche#1200$%
System.out.printlnc.motor.cilindrada!"//Saldr 1200
try & catch
*as sentencias que tratan las e+cepciones son tr& y catch. *a sinta+is es%
tr& {
instrucciones que se ejecutan salvo que haya un error
}
catch #ClaseExcepcin objetoQueCapturaa!"cepci#n$ {
instrucciones que se ejecutan si hay un error}
Puede haber ms de una sentencia catch para un mismo bloque tr&. Ejemplo%
tr& {
read#rom#ile$arch%!"
...
&
catch##ile'ot#ound()ception e! *
++archivo no encontrado
...
&
catch #,-()ception e$ {
...
}
ING FERNANDO MENDOZA APAZA
4
PROGRAMACION DIGITAL II UNIVERSIDAD NACIONAL DEL CALLAO
J!"#"$%&# '! (#) *(#)!) '! +#,!-. '! !/*!0*1.,!)
'ane(o de excepciones
iempre se debe controlar una e+cepcin$ de otra forma nuestro soft,are est a merced
de los fallos. En la programacin siempre ha habido dos formas de manejar la
e+cepcin%
Interrupcin. En este caso se asume que el programa ha encontrado un error irrecuperable. *a
operacin que dio lugar a la e+cepcin se anula y se entiende que no hay manera de regresar al
cdigo que provoc la e+cepcin. Es decir$ la operacin que dio pies al error$ se anula.
Reanudacin. e puede manejar el error y regresar de nuevo al cdigo que provoc el error.
*a filosofa de -ava es del tipo interrupcin$ pero se puede intentar emular la reanudacin
encerrando el bloque tr& en un "hile que se repetir hasta que el error deje de e+istir.
ING FERNANDO MENDOZA APAZA
2
PROGRAMACION DIGITAL II UNIVERSIDAD NACIONAL DEL CALLAO
Ejemplo%
import *ava!lang!$ath;
public class ++ {
public static void main(String[] args) {
boolean indice,o-alido=true;
int i; ##.ntero /ue tomar) nos aleatorios de 0 a 0
String te1to[]={23no2425os2426res242'uatro242'inco2};
while(indice,o-alido){
try{
i=$ath!round($ath!random()70);
##i=$ath!random()70;
S(stem!out!println(te1to[i]);
indice,o-alido=false;
}catch(+rra(8nde19ut9:;ounds.1ception e1c){
S(stem!out!println(2<allo en el =ndice2);
}}}
}
En el cdigo anterior$ el ndice i calcula un n'mero del . al / y con ese n'mero el cdigo accede al array
te"to que slo contiene 0 elementos. Esto producir muy a menudo una e+cepcin del tipo
$rray%nde"&ut&'(ounds!"ception que es manejada por el catch correspondiente. )ormalmente no
se continuara intentando. Pero como tras el bloque catch est dentro del "hile$ se har otro intento y
as hasta que no haya e+cepcin$ lo que provocar que indice)ovalido valga true y la salida$ al fin$ del
,hile.
&omo se observa en la )Error* No se encuentra el ori+en de la re,erencia.$ la clase
Exception es la superclase de todos los tipos de e+cepciones. Esto permite utilizar una serie de
m#todos comunes a todas las clases de e+cepciones%
- -trin+ +et'essa+e#$. 1btiene el mensaje descriptivo de la e+cepcin o una indicacin especfica
del error ocurrido%
tr&{
....
} catch #I.Exception ioe${
System.out.printlnioe.+et'essa+e#$!"
&
- -trin+ to-trin+#$. Escribe una cadena sobre la situacin de la e+cepcin. uele indicar la clase de
e+cepcin y el te+to de +et'essa+e#$.
- oid print-tac/0race#$. Escribe el m#todo y mensaje de la e+cepcin !la llamada informacin de
pila". El resultado es el mismo mensaje que muestra el ejecutor !la mquina virtual de -ava" cuando no
se controla la e+cepcin.
thro"s
Al llamar a m#todos$ ocurre un problema con las e+cepciones. El problema es$ si el m#todo da lugar a una
e+cepcin$ 2qui#n la maneja3 2El propio m#todo321 el cdigo que hizo la llamada al m#todo3
&on lo visto hasta ahora$ sera el propio m#todo quien se encargara de sus e+cepciones$ pero esto
complica el cdigo. Por eso otra posibilidad es hacer que la e+cepcin la maneje el cdigo que hizo la
llamada.
Esto se hace a4adiendo la palabra thro"s tras la primera lnea de un m#todo. 5ras esa palabra se
indica qu# e+cepciones puede provocar el cdigo del m#todo. i ocurre una e+cepcin en el m#todo$ el
cdigo abandona ese m#todo y regresa al cdigo desde el que se llam al m#todo. All se posar en el
catch apropiado para esa e+cepcin.
Ejemplo%
oid usarArchio #-trin+ archivo$ thro"s I.Exception1
InterruptedException {...
ING FERNANDO MENDOZA APAZA
3
PROGRAMACION DIGITAL II UNIVERSIDAD NACIONAL DEL CALLAO
En este caso se est indicando que el m#todo usar$rchivo puede provocar e+cepciones del tipo
%&!"ception y %nterrupted!"ception. Esto significar$ adems$ que el que utilice este m#todo debe
preparar el catch correspondiente para manejar los posibles errores.
ENCA2-3LA'IEN0.
6na clase puede controlar que partes de un programa puedan acceder a los miembros de su clase%
variables miembro y m#todos miembro. 6na clase bien dise4ada impide el acceso directo a sus variables
miembro proporcionado a cambio un conjunto de m#todos de acceso que sirvan como intermediarios
entre las variables miembro y el mundo e+terior. Esto permite controlar el uso correcto de la variables
miembro pues los m#todos de acceso pueden actuar como filtros que prueben los datos que se pretender
ingresar a las variables miembro
Para controlar el acceso a los miembros de una clase se usan especificadotes de acceso que se anteponen
a las declaraciones de los miembros a controlar. *os especificadotes de acceso son% public$ private y
protected.
A2LICACI4N HERENCIA
*a herencia es el mecanismo mediante el cual se puede definir una clase !subclase" en base a otra clase
!superclase" heredando aquellos miembros de la superclase !variables y m#todos" que hayan sido
declarados como public$ protected o sin especificador de acceso.
-ava permite el empleo de la herencia$ caracterstica muy potente que permite definir una clase tomando
como base a otra clase ya e+istente. Esto es una de las bases de la reutilizacin de cdigo$ en lugar de
copiar y pegar.
En java$ como ya vimos la herencia se especifica agregando la clusula e+tends despu#s del nombre de la
clase. En la clusula e+tends indicaremos el nombre de la clase base de la cul queremos heredar.
Al heredar de una clase base$ heredaremos tanto los atributos como los m#todos$ mientras que los
constructores son utilizados$ pero no heredados
6so de super
El constructor de la superclase puede invocarse desde la subclase utilizando la palabra super.
Ejemplo 7
ING FERNANDO MENDOZA APAZA
Persona
N.+4"!
A0!((1'.
Alumno
N15!(
C!,6".E'%*#615.
Empleado
N%+!".71-.)
N%+!".S!8%".S.*1#(
S%!('.
9
PROGRAMACION DIGITAL II UNIVERSIDAD NACIONAL DEL CALLAO
&lase Persona
&lase Alumno 8erencia Persona
ING FERNANDO MENDOZA APAZA
:
PROGRAMACION DIGITAL II UNIVERSIDAD NACIONAL DEL CALLAO
&rear objeto de la
clase Alumno
Ejemplo 9
&lase
Empleado
ING FERNANDO MENDOZA APAZA
EmpleadoSueldoVariable
7."#)
Sueldo
EmpleadoSueldoFijo
Sueldo
Empleado
C.'18.
N.+4"!
A0!((1'.
C#6!8."1#
9
PROGRAMACION DIGITAL II UNIVERSIDAD NACIONAL DEL CALLAO
&lase Empleadoueldo:ariable
&lase Empleadoueldo;ijo
ING FERNANDO MENDOZA APAZA
10
PROGRAMACION DIGITAL II UNIVERSIDAD NACIONAL DEL CALLAO
&rear objeto de la clase Empleadoueldo:ariable
&rear objeto de la clase Empleadoueldo;ijo
ING FERNANDO MENDOZA APAZA
11
PROGRAMACION DIGITAL II UNIVERSIDAD NACIONAL DEL CALLAO
EJEMPLOS PROPUESTOS
7. <ise4e la siguiente estructura
9. 6na Empresa vende dos tipos de productos% Artefactos y =uebles a continuacin se muestran
algunos de los productos que ofrece la empresa%
Artefactos:
Cdigo Descripci Precio
/.7 *icuadora 7>.
/.9 8orno =icroondas ?0.
/.? Equipo de onido 00.
M!e"les:
Cdigo Descripci Precio
@.7 <ormitorio ?@.
@.9 &omedor A9.
@.? Bepostero ?..
*a empresa ofrece un C de descuento por producto solo para muebles.
<ise4e un programa que registre 9 productos uno de tipo Artefacto y otro de tipo =ueble para lo
cual debe almacenar el cdigo$ cantidad y el descuento. Adems debe calcular el total a pagar por
dichos productos.
SAL#DAS
&digo Artefacto &digo =ueble
)ombre Artefacto )ombre =ueble
&antidad &antidad
5otal a Pagar ub5otal
<escuento
5otal Pagar
ING FERNANDO MENDOZA APAZA
Auto
N%+!".A)1!,6.
C#0#*1'#'T#,$%!C.,4%)614(!
V!(.*1'#'M#/1+#
Moto
C1(1,'".)
C.(."
C;#)1)
Vehiculo
M#"*#
M.'!(.
12
PROGRAMACION DIGITAL II UNIVERSIDAD NACIONAL DEL CALLAO
?. <ise4e la siguiente estructura
5ener en cuenta lo siguiente%
Desc!eto
i paga 7 pensin tendr 7.C del precio
i Paga D 7 pensin tendr 7@C!precioE)umero de Pensiones"
Total Pagar
!PrecioF&osto=atricula"G<escuento
ING FERNANDO MENDOZA APAZA
&arrera E+tensin 5urno Precio <escuento
-ava <eveloper!<esarrollador"
= 0.. @C
5 A0. 0C
) A@. >C
Administrador de Hase de <atos 5 @.. 79C
) >0. 7.C
Especialista en BedesG*inu+ = I ) ?0. 79C
)et <eveloper Especialista = ??. /C
5 I ) ?.. JC
1tros . . .
&arrera uperior 5urno Precio
&omputacin e Knformtica
= @>.
5 >..
) @0.
Electrnica <igital 5 >9.
=G) @7.
ecretariado Ejecutivo = I ) A0.
1tros . .
CarreraExtension
Precio
Descuento
TotalPagar
CarreraSuperior
C.)6.M#6"1*%(#
N%+!".P!,)1.,
Precio
Descuento
TotalPagar
Carrera
N.+4"!
T%",.
1
PROGRAMACION DIGITAL II UNIVERSIDAD NACIONAL DEL CALLAO
UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERA EL!CTRICA " ELECTR#NICA
(S./(0A D( ,'1(',(R2A (0(.3R4',.A
*$+o de las Cumbres Mundiales en el ,er-.
*$+o del /ortalecimiento de la $utoevaluaci#n.
TRABAJO F!"A# $E PRO%RAMAC!O" $!%!TA# !!
A.- R!#(1<#" %, 0".8"#+# !, -#5# %)#,'. O4-!6.) $%! )1+%(! !( *.+0."6#+1!,6. '! %, #%6. +!*=,1*. .
#%6.+=61*.> *., 6.'#) )%) 0#"6!) 0"!51#+!,6! !)*#,!#'. 0#"# !( !,*!,'1'.> *.,)1'!"! !( !)6#'. '!( +.6.">
?"!,.)> ,15!( '! 8#).(1,#> ,15!( '! 8#)> ,15!( '! 4#6!"&#> *#+41.) ;=41(!) 0#"# !( #""#,$%! !, ,!%6". .
0#"@1,8> 0%!"6#) *!""#'#). R!#(1<#,'. (# +#"*;# '!( #%6.> )! 61!,! 1,)6#(#'. %, )1)6!+# '! #(#"+# $%! !)
#*615#'. 5&# *!(%(#" !, !( *%#( )! 0%!'! #*615#" . 1,#*615#" (# #(#"+# A #0#8#'. '!( #%6.> )1!,'. !( *#).
0." ".4. . )1,1!)6".> !( #%6. '!5.(5!"= (# )!B#( #( +C51( $%! "!#(1<. (# ((#+#'# %, +!,)#-! '! 6!/6.
+!,*1.,#,'. !( +!,)#-! DALARMA ACTIVAE> P#"# '!)#*615#" (# A(#"+# )! "!#(1<# %,# ((#+#'# A !(
#%6. '!5.(5!"= %, +!,)#-! DALARMA INACTIVAE > !( 0".8"#+# +%!)6"# !( !)6#'. '!( #%6. !, 1+#8!,
'!( +1)+..
F.- R!#(1<#" %, 0".8"#+# !, -#5# ."1!,6#'. # .4-!6.)> (# *.+%,1*#*1C, '! '.) !$%10.) 6!"+1,#(!) PC> !(
*%#( "!#(1<#"# !( )18%1!,6! +!*#,1)+. '! .0!"#*1C,:
-L# .0!"#*1C, )! "!#(1<# !,6"! '.) *.+0%6#'."#).
- E( 0"1+!". !) !( S!"51'." A !( )18%1!,6! !) !( C(1!,6!.
- I,8"!). '!( )1)6!+# !, *#'# 6!"+1,#(.
- I,8"!). '! 2 U)%#"1.).
- I,8"!). '! *.,6"#)!B# 0#"# *#'# U)%#"1..
- D1#(.8. !,6"! %)%#"1.).
- E,5&. '! D#6.) 0#"# .0!"#*1C, !, (&,!#.
- R!81)6". '! .0!"#*1.,!) !, #"*;15..
- A**!). #( 0".8"#+# '! (# P"!8%,6# A> .0!"#,'. ;#)6# $%! !( %)%#"1. '!*1'# )#(1".
- R!81)6". '! '#6.) )! 8%#"'# !, #"*;15.) 0#"# *#'# +G6.'. A "!)%(6#'.) $%! 8!,!"! !, (# 0"!8%,6# A.
- U). '! !,6.",. 8"#?1*. . 6#4(#) !, !( 0".8"#+#.
E( 6!+# !, 8"%0. '! 2 0!").,#)> (# !,6"!8# )!"= ;#)6# !( -%!5!) 2 '! -%(1. '!( 2009.
L# !,6"!8# !) #( *.""!.: +#)6!"+%)1*H6!(!?.,1*#.,!6.0!.
E( !/#+!, F1,#( !) (# )!+#,# '!( 1 '! J%(1. '!( 2009.
ING FERNANDO MENDOZA APAZA
14
PROGRAMACION DIGITAL II UNIVERSIDAD NACIONAL DEL CALLAO
ING FERNANDO MENDOZA APAZA
12

También podría gustarte