Anda di halaman 1dari 12

UniversidadDistritalProgramacinMultinivel

DISEOEIMPLEMENTACINDEUNACLASEENJAVA

Cuandosevaaimplementarunaaplicacinoprogramaesnecesarioseguirunaseriedefases
que permitirn resolver los problemas planteados de forma eficiente y con un alto grado de
calidad. De acuerdo al desarrollo de software las fases bsicas son: anlisis, diseo,
implementacin y pruebas. En este documento se hace uso de algunas actividades bsicas
tomadasdelprocesoRUP(RationalUnifiedProcess)yellenguajeUML(LenguajeUnificadode
Modelado), que conforman una metodologa de desarrollo de software orientada a objetos
diseadaporIvarJacobson,GradyBoochyJamesRumbaughenlosaos90s.Estastareasson
loscasosdeusoylosdiagramasdeclase,nosevaaprofundizarenlasdemsactividadesque
involucra esta metodologa dado que el enfoque de este documento est orientado a la
programacinorientadaaobjetos.
El primer paso que todo desarrollador debe realizar es entender el problema que va a
solucionar,paraelloesnecesarioentenderbienla descripcindelmismo.A continuacinse
describeelejemplodeaplicacinquesevaadesarrollar.
Suponga que se va a implementar una aplicacin que permita capturar un valor e indicar si
esteespositivoonegativo.
Anlisis
Inicialmente es necesario realizar un pequeo anlisis que permita visualizar los posibles
procesosqueseconvertirnenlosmtodos(funciones)aimplementaryluegoidentificarlos
posiblesobjetosquedeberndefinirse.Unaformaderealizarestaaccinesutilizarloscasos
de uso, que corresponde a un diagrama que permite visualizar los posibles procesos que un
usuario potencial de la aplicacin (programa) podr realizar con este, a continuacin se
presenta el posible diagrama del problema expuesto. Lo importante es saber cules son los
procesos que debe realizar el usuario. Si la descripcin del problema indica que se debe
capturar un valor dicho valor deber ser ingresado por el usuario, por lo tanto el primer
proceso que deber realizarse es ingresar el numero a evaluar, el siguiente proceso que
deber realizarse es aquel que permita encontrar la respuesta en este caso conocer si el
numeroingresadoespositivoonegativo,estoindicaqueelusuariopodrconsultarelsigno
delnumero.Lasiguientefiguracorrespondealdiagramadecasosdeusoquerepresentalos
procesosdescritos.

SoniaPinzn

UniversidadDistritalProgramacinMultinivel

Diseo
Basadoeneldiagramadecasosdeusosepuedeidentificarlaposibleclasequedebedefinirse
dentrodelprogramayestacorrespondeaunNmero,dadoquelosdosprocesostienenque
veroactansobreeste.
LaClasellamadaNumerodebeposeeruncomportamientoelcualestdefinidoporelmtodo
signo (accin de evaluar en nmero para indicar si es positivo o negativo) y el estado o
informacin que puede definirse con el atributo valor. Esta clase contendr la lgica de la
aplicacinporlocualparaunamejorimplementacinesnecesarioqueseencuentreseparada
delasaccionesquecorrespondenacapturadedatosyvisualizacindelosresultadosoloque
se denomina interfaz de usuario, para tal efecto se definen dos capas que en java se
convierten en paquetes (directorios lgicos donde se almacenaran las clases) el primero
llamado Lgica donde se almacenara la clase Numero y el segundo se llamara Presentacin
dondesealmacenaranlasclasesquevanaservirdeinterfazdeusuariolascualespuedenser
un programa autnomo de java (progNumero), un Applet o una aplicacin tipo formulario
Swingdejava(JFNumero),deacuerdoalodescritoenapartadosanteriores.

En la figura se puede observar que las clases progNumero y JFNumero contienen como
atributos un objeto objN de tipo Numero, es decir la clase Numero puede ser utilizada en
cualquiertipodeaplicacinJava.

SoniaPinzn

UniversidadDistritalProgramacinMultinivel

Implementacin:
Para Implementar las clases se puede utilizar el API de java con cualquier editor de cdigo,
aunqueNetbeansesunentornodedesarrolloqueactualmenteesmuyutilizado,porlotantoa
continuacin se describe como se puede crear la aplicacin planteada utilizando esta
herramienta.
LoprimeroquehayquehacerescrearelproyectoenNetbeans,enestecasoelproyectose
denominaraproyNumero,adicionalmenteesnecesariocrearlospaquetesquecomoyaseha
explicadoalmacenaranlalgicaylapresentacindelaaplicacin.Paracrearlospaquetesse
puede seleccionar el proyecto y hacer clic derecho sobre este, luego seleccionar la opcin
NuevoyPaqueteJava.

Alrealizarestaaccinapareceruncuadrodedialogoquesolicitaraelnombredelpaquetey
lascaractersticasdeubicacindelmismo,talcomoseobservaacontinuacin.

SoniaPinzn

UniversidadDistritalProgramacinMultinivel

1. ClasedelacapaLgica
CuandosehacreadoelpaqueteelsiguientepasoescrearlaclaseNumero,paratalfinsedebe
seleccionarelpaqueteyhacerclicderechosobreeste,luegoseleccionarlaopcinNuevoyla
opcinClaseJava.

Netbeansgeneraautomticamenteelsiguientecdigo:

Losiguientequedeberealizarseesdefinirlosatributos,generarlosconstructores,losmtodos
setyget,elmtodotoStringyelmtodosigno.

Definicindeatributos:

Losatributoscomoyasehamencionadocorrespondenalapartedeinformacindelaclase,
para la clase Numero el atributo principal corresponde al valor de dicho numero, para el
ejemploesteatributosedefinircomoint.Losatributosdebenestarencapsulados,paraello
se agrega el modificador de acceso private, para garantizar que el contenido no sea

SoniaPinzn

UniversidadDistritalProgramacinMultinivel

manipuladodesdeotraclaseoprograma,estaclausuladebeagregarseantesdeltipodedato
delatributocomoseobservaenlasiguientelneadecdigo.
privateintvalor;

Definicindeconstructores:

Los constructores garantizan la instanciacin de la clase (creacin de objetos a partir de la


clase),porlotantoesrequisitoquelaclasetengadefinidoalmenosunconstructor.
Netbeans permite generar automticamente estos mtodos, haciendo clic derecho sobre el
readecdigodelaclaseyseleccionandolaopcinInsertarcdigo.

LuegosedebeseleccionarlaopcinConstructor.

SoniaPinzn

UniversidadDistritalProgramacinMultinivel

Sisequieregenerauncostructorparamtrico,esdecirquerecibadatosquecorrespondena
losatributosdelaclase,sedebenseleccionarlosatributosdelaclasetalcomoseobservaa
continuacin.

ElcdigogeneradoporNetbeanscorresponderalosiguiente:

MtodosGetySet

Yasehamencionadoqueparagarantizarelprincipiodeencapsulamientolosatributosdela
clasedebenestardefinidosporlosmodificadoresdeaccesoprvate,esdecirquelosatributos
sondatosprivados(solopuedenseraccedidospormiembrosdelaclase,yaseanmtodoso
claseshijas),entoncesunaformadepermitirenciertamedidadichoaccesosonlosmtodos
get y set o mtodos de acceso y modificadores, los cuales permiten obtener el valor del
atributooenviarunvalorparaqueseamodificado.
Para generar estos mtodos se debe hacer clic derecho en el
readecdigodelaclaseyseleccionarlaopcinInsertarcdigo
yluegoGetterySetter.

SoniaPinzn

UniversidadDistritalProgramacinMultinivel

Sisedeseagenerarlosmtodosgetysetdetodoslosatributosesnecesarioseleccionarlosen
lasiguienteventana.

AlrealizarestaaccinelcdigogeneradoparaelatributoValorcorrespondealosmtodos
getValor()ysetVAlor(),talcomoseobservaacontinuacin.

Mtodosdelaclase

Finalmentelaclasedebeproporcionaralgunaformadeconocerelcontenidodelobjeto,es
decirelvalordecadaunodelosatributosdeeste,porlotantotodaslasclasescontienenel
mtodotoString()quecorrespondeaunafuncinqueretornaenformadecadenael
contenidodelosatributosdelaclase.
EstemtodotambinpuedegenerarseenNetbeansal
seleccionarlaopcinInsertarcdigo,laopcinRedefinirmtodo
yluegoseleccionandoelmtodotoString().

SoniaPinzn

UniversidadDistritalProgramacinMultinivel

Elcdigogeneradocorresponderalosiguiente:
@Override
publicStringtoString(){
returnsuper.toString();
}

Aunqueesnecesariosobreescribirelmtodo,paraqueretorneelatributodelaclase,tal
comoapareceenelsiguientecdigo:
@Override
publicStringtoString(){
returnValor+this.valor;
}

FinalmenteparaquelaclaseNumeroquedecompletaesnecesarioimplementarelmtodo
queformapartefundamentaldelprograma,enestecasolafuncinqueevalaelnumeroe
indicasiesnegativoono.Elcdigodedichafuncinsemuestraacontinuacin.

SoniaPinzn

UniversidadDistritalProgramacinMultinivel

2. ClasesdelacapadePresentacin
Hastaelmomentosehadefinidolaclasequevaalmacenarelvalorqueelusuarioingresaray
la operacin que evaluara el contenido para generar los resultados que sern consultados,
peroesnecesarioimplementarlasclasesquepermitirnhacerlainteraccinconestalgica,
estasclasespuedenserprogramasautnomos,talcomoseobservaenelcdigoproyNum.java
oformulariosporejemploJFrames,elcualsevaexplicarcmoimplementaracontinuacin.
DiseodelaInterfaz
Paradisearunaaplicacinqueutiliceformularios(opcinNuevo,luegoFormularioJFrame)
sepuedeimplementarlasiguienteinterfazllamadaJFNumero.java:

Observequeelformulariocontienelossiguientesobjetos:
JLabel1,controlutilizadoparamostrarmensajesqueelusuarionopuedemodificar,eneste
casoseutilizacomounaetiquetaqueacompaaalacajadetextoJTextField1queindicaque
datosedebeingresar.
JTextField1,eselcontrolquepermitealusuarioingresareldatorequeridoporlaaplicacin,
enestecasoelvalordeunnmero.
JButton1, control utilizado para accionar la funcin principal del programa, es decir, la
ejecucindelafuncinsigno.
JTextArea1, control que se utiliza para mostrar texto en varias lneas, en este caso se usara
para mostrar el contenido del objeto nmero y la respuesta que genera la ejecucin de la
funcinsigno.

SoniaPinzn

UniversidadDistritalProgramacinMultinivel

Cambiodepropiedadesdeloscontroles:
Cada control posee una serie de propiedades (atributos) que pueden ser modificados por
medio del cuadro de propiedades de NetBeans, la ms comn es la propiedad text, que
permitemodificarelcontenidodelcontrol,enlasiguientefiguraseobservacomoelcontenido
delaetiquetaJLabelsehamodificadoporlapalabraNumeroutilizandolapropiedadtext.

Asignacindenombresaloscontroles
Para identificar los controles que contiene el formulario, es necesario asignar nombres que
correspondanalobjetivodelusodentrodelcdigo,porejemploelbotnJButton1,sellamara
btnEjecutar,dadoqueeselbotn(prefijobtn)queejecutalaaccindelprogramaylacajade
textoJTextFieldsellamaratxtNumero,yaqueesunaCajadeTexto(prefijotxt)quecapturara
el Numero digitado por el usuario y finalmente el rea de texto JTextArea1, se denominara
Salida.
Entonceslanuevainterfazpuedetenerlasiguienteapariencia.

SoniaPinzn

UniversidadDistritalProgramacinMultinivel

Implementacindelcdigo
Creacindelosobjetoslgicos(usandolaclaseNumero).
Paraqueelprogramaejecutelaaccinrequeridaesnecesariodefinirunobjetodenominado
objNumdelaclaseNumeroqueyafuedefinida,paraelloenelconstructordelformulariose
realiza esta accin. En la siguiente Figura se puede apreciar el cdigo que define el objeto
descrito.

Ntesequesehaagregadolalnea
ImportLogica.Numero;
LacualindicaqueseesthaciendousodelaclaseNumeroqueseencuentraenel paquete
Logica.
Implementacindelcdigodelbotn
Dado que el botn btnNumero es el que accionara el cdigo a ejecutar, se implementara el
cdigoenelmtodoactionPerformeddeeste,solosedebehacerclicderechosobreelbotn,
seleccionarlaopcinEventos,luegoActionyfinalmenteActionPerformed.Deestamanejase
activaraelcdigodedichomtodo,alcualseledebeagregarlassiguientesinstrucciones:

Observe que se est utilizando el mtodo setValor() del objeto objNum para enviar el
contenido de la caja de texto txtNumero por medio de su mtodo getText(), pero se est
utilizandoelmtodoparseInt()delaclaseIntegerparaconvertireltextoqueesunStringen
unenteroqueeseltipodedatodelatributovalordelaclaseNumero.

SoniaPinzn

UniversidadDistritalProgramacinMultinivel

AdicionalmenteseestutilizandoelmtodoappenddelobjetoJTextAreallamadoSalidapara
agregarlasrespuestasquecorrespondenal contenidodelobjetoobjNumusandoel mtodo
toString()yalaevaluacindelnumerousandoelmtodosigno().

Finalmente,alejecutarelarchivoestegeneraralasiguienterespuesta:

ProgramaAutonomo
ProyNum.java:ProgramaautnomoqueusalaclaseNumero.

SoniaPinzn

Anda mungkin juga menyukai