Вы находитесь на странице: 1из 11

IntroduccinalaProgramacinOrientadaaObjetosconJava

IvnLpezArvalo
ilopez@cinvestav.mx

LaboratoriodeTecnologasdeInformacin
CinvestavTamaulipas
Cd.Victoria,Tamaulipas,Mxico

Contenido
1.Introduccin............................................................................................................................................................................4
1.1Todoesunobjeto............................................................................................................................................................4
1.3CaractersticasgeneralesdeJava....................................................................................................................................7
1.4J2SE(Java2StandardEdition).......................................................................................................................................8
1.5JRE(JavaRuntimeEnvironment)...................................................................................................................................8
2Iniciacinalaprogramacin...................................................................................................................................................8
2.1Compilacinyejecucindeprogramas..........................................................................................................................9
2.1.1CreacinycompilacindeunprogramaJava........................................................................................................9
2.1.2EjecucindeunprogramaJava............................................................................................................................11
3AspectosfundamentalesdeJava...........................................................................................................................................12
3.1Tiposdedatos...............................................................................................................................................................12
3.1.1Operacionessobretiposprimitivos.......................................................................................................................12
3.3Literales........................................................................................................................................................................13
3.5Objetos,miembrosyreferencias...................................................................................................................................15
3.6Mtodos.........................................................................................................................................................................16
3.6.1void.......................................................................................................................................................................17
3.6.2Constructor...........................................................................................................................................................17
3.6.3Constructornoargs..............................................................................................................................................17
3.6.4Sobrecargadeconstructores.................................................................................................................................17
3.6.5Usodemtodos....................................................................................................................................................18
3.6.6Resumendemtodos............................................................................................................................................18
3.7Miembrosestticos.......................................................................................................................................................19
3.7.1Datosestticos......................................................................................................................................................19
3.7.2Mtodosestticos.................................................................................................................................................20
3.8Mtodomain.................................................................................................................................................................20
3.9Inicializadoresestticos................................................................................................................................................21
3.9ClasesOtrosaspectos.................................................................................................................................................21
3.10mbitodelasvariables...............................................................................................................................................22
3.11Recogidadebasura......................................................................................................................................................22
3.12Sobrecargademtodos...............................................................................................................................................23
3.13Lareferenciathis.........................................................................................................................................................23
3.14Lareferencianull.........................................................................................................................................................23
3.15Ocultamientodevariables...........................................................................................................................................24
4Fundamentosdeprogramacin.............................................................................................................................................25
4.1Controldelaejecucin.................................................................................................................................................25
4.1.1Ejecucincondicional...........................................................................................................................................26
4.1.2Iteracionesconwhile............................................................................................................................................26
4.1.3Iteracionesconfor................................................................................................................................................26
4.1.4Evaluacinmltiple..............................................................................................................................................27
4.1.5Devolucindecontrol...........................................................................................................................................27
4.2Expresiones...................................................................................................................................................................27
4.3Arrays............................................................................................................................................................................28
4.3.1Arraysmultidimensionales...................................................................................................................................28
5ParticularidadesdeJava........................................................................................................................................................29
5.1LaclaseString...............................................................................................................................................................29
5.1.1CreacindeStrings...............................................................................................................................................29
5.1.2ConcatenacindeStrings.....................................................................................................................................29
5.1.3OtrosmtodosdelaclaseString..........................................................................................................................30
5.1.4LaclaseStringBuffer............................................................................................................................................30
5.2Clusulapackage..........................................................................................................................................................30
5.2.1Clusulaimport....................................................................................................................................................31
5.2.2Nombresdelospackages.....................................................................................................................................32
2

5.2.3Ubicacindepackagesenelsistemadearchivos................................................................................................32
5.3Modificadores...............................................................................................................................................................33
5.3.1Modificadoresdeacceso......................................................................................................................................33
5.3.2Modificadoresdeaccesoparaclases...................................................................................................................34
5.4Herencia........................................................................................................................................................................35
5.4.1Redefinicindemtodos.Elusodesuper............................................................................................................37
5.4.2Inicializacindeclasesderivadas........................................................................................................................37
5.4.3Elmodificadordeaccesoprotected.....................................................................................................................38
5.4.4UpcastingyDowncasting..................................................................................................................................38
5.4.5Operadorcast.......................................................................................................................................................39
5.5LaclaseObject.............................................................................................................................................................39
5.6Laclusulafinal............................................................................................................................................................40
5.7Excepciones..................................................................................................................................................................40
5.7.1Generacindeexcepciones...................................................................................................................................41
5.7.2Capturadeexcepciones........................................................................................................................................42
5.8Clasesabstractas...........................................................................................................................................................43
5.8.1Declaracineimplementacindemtodosabstractos.........................................................................................43
5.9Interfaces......................................................................................................................................................................44
5.9.1Referenciasainterfaces........................................................................................................................................45
5.9.2Agrupacionesdeconstantes.................................................................................................................................45
5.10Clasesembebidas(Innerclasses)................................................................................................................................47
5.11Threads........................................................................................................................................................................49
5.11.1LaClaseThread..................................................................................................................................................49
5.11.2InterfaceRunnable..............................................................................................................................................50
5.12ElAPIdeJava.............................................................................................................................................................51

Evaluacin
20%Teora(examenesparciales)
20%Participacin(debate,preguntas)
60%Prcticas(enclase)

Bibliografa:
1. ThinkinginJava,4thEdition.BruceEckelhttp://mindview.net/Books/TIJ4
2. IntroduccinalaProgramacinconJava.UnenfoqueOrientadoaObjetos.Arnow,D.,G.Weiss,Addison
Wesley,2000.
3. CmoprogramarenJava.H.M.DeitelyP.J.Deitel.EditorialPrenticeHall.2005

Resumen

EstedocumentopresentaunbreveresumensobrelaprogramacinorientadaaobjetosmedianteellenguajeJava.Para
elloenesteapartadosedarunabreveintroduccinaelenfoquedeorientacinaobjetosparaposteriormentetrasladar
losconceptosdescritosallenguajedeprogramacinJavaenelapartadodeIniciacinalaprogramacin.Asel
alumnotendrideadecmocrearaplicacionessencillasparaaprendercmocompilaryejecutar.Posteriormentese
describirnalgunosaspectosfundamentalesdeJavaqueservirnparaqueelalumnotengaunaideabsicadeloque
esellenguajeaniveldeconceptosycmoseemplea.Posteriormentesepresentaunrepasodefundamentosde
programacin,aspectosqueestnenfocadasaJavaperoquesonsimilaresaotroslenguajesdeprogramacinyporlo
tantoelalumnonodebieratenerproblemaenabordarlos.PorltimosepresentarnalgunasparticularidadesdeJava
quecomplementarnlosconocimientosbsicosquesehayanabordadoanteriormente.
Estedocumentonopretendeseruntutorial,manualocompilacin.Esunaguarpidadereferenciaqueayudaral
estudianteaentenderleprogramacinorientadaaobjetosdesdelaperspectivadellenguajeJava.

1.Introduccin

Enesteapartadosedescribirnalgunasaspectosbsicosdelaorientacinaobjetossinentrarendetalleenalgn
lenguajeespecfico.

1.1Todoesunobjeto

Cualquiercosaenelmundorealpuedeversecomounobjeto(fsico/tangibleabstracto/intangible).Ejemplode
objetos fsicos/tangibles con automviles, telfonos, computadoras, robots, etc. Ejemplos de objetos
abstractos/intangiblessonprogramas,sentimientos,ideas,etc.Paraefectosdeilustrarlaorientacinaobjetosesms
fcilemplearobjetosfsicos,enestecasolosdispositivos.Undispositivopuededescribirsecomo:
algocompuestodepartesmspequeascuyosfuncionamientoslocalesayudanalograrunfuncionamientoglobal.
Ntesequeenlamismadefinicinsehaincluidoelenfoquedetodo/partes,dondeuntodoestformadoporpartes
mspequeas.Dichodealgunamanera,ensentidoinversolasumadelaspartesdancomoresultadoeltodo.En
escenciastaeslaideabsicadelaorientacinaobjetos.Unobjetoestformadoporpartesmspequeasquelogran
elobjetivofinaldelobjeto.
Ejemplos:
Ejemplo1.Unautomvilesunobjetoqueestformado(sinentrarendetalles)porlassiguientespartes:

motor,

ruedas,

asientos,

puertas,

sistemaelctricoy

sistemahidrulico
lasumadetodasesaspartesnosdancomoresultadounmediodetransporteparallevarmercancasopersonasdeun
ladoaotro.Cuandoseempleaunautomvilelusuarionosepreocupa(onodebierapreocuparse)cmoesque
funcionan las partes individuales del automvil, lo nico que el desea es el objetivo que cumple, transportar
mercancas/personas.
Ejemplo2.Unacomputadoraesunobjetoformado(sinentrarendetalles)porlassiguientespartes:

monitor,

CPU,
4

teclado,
mouse,
cables,
sistemaoperativo(objetoabstracto/intangible)y
paquetera(objetoabstracto/intangible)

ElCPUsecomponeasuvezdeotrosobjetosmspequeos:motherboard,memoria,discoduro,fuentedepoder,etc.
LasumadetodasestaspartesdancomoobjetivoelfuncionamientodelCPU.Lasumadetodaslaspartesdela
computadoracumplendiferentesobjetivos:clculos,edicindetextos,navegacin,programacin,etc.Estasobjetivos
puedenrealizarsesolososimultneamentesegnlasnecesidadesdelusuario.Unavezms,elusuarionosepreocupa
cmoesqueselogranlosobjetivosindividualesdelaspartesmspequeas.Enlaorientacinaobjetosslonos
preocupamosporelfuncionamientoglobaldelosobjetosynocmoesquelologran.
Apartirdelaidealizacindeobjetossellegaalconceptodeclase.Unaclasees,dichodeunmodo,untipodedato
que agrupa a ciertos objetos. Estos objetos comparten las mismas caractersticas y comportamientos bsicos.
Abstrayendo(agrupando)variosobjetosseobtieneladefinicindelaclase.Ladefinicindelaclasenoesmsquela
indicacinexplcitadequcomponentesycomportamientotienelaclase.Sepuededecirqueunaclaseesunncleo
quecompartenvariosobjetos.
Ejemplo
Laclaseautomvilseobtieneapartirdelaabstraccindevariosobjetosautomvil(porejemplomustang,jetta,
chevy,etc).Delaobservacindeestosobjetossepuedendistinguirlascaractersticasycomportamientoscomunes
quepuedeteneruntipodedatoqueenglobeatodoslosautomviles.Estetipodedatosellamaclase.Una
definicindeclasepuedetenerlaspropiedadessiguientes:
1. tipo_transmision,
2. tipo_combustible,
3. numero_puertasy
4. color
asimismo,puedetenerelsiguientecomportamiento:
1. encender,
2. apagar,
3. movimiento_adelante,
4. movimiento_atrasy
5. girar
a partir de esta definicin de clase podemos ver que todos los automviles tienen las mismas propiedades y
comportamiento.Estaesunaclasegenricaquepuedeasuvezespecializarse(refinarse)ensubclasesqueagreguen
otraspropiedadesycomportamientos.
Laclaseautomovil_carreraseraunasubclasequeademsdelaspropiedadesycomportamientosdelaclasegenrica
pudieraadicionarlassiguientespropiedades:
1. tipo_neumticoy
2. escudera
tambinlossiguientescomportamientos:
1. aceleracion_instantaneay
2. frenado_curva
Enlossiguientesapartadosseexplicarmsendetalleestosaspectos.

1.2CaractersticasdelEnfoquedeOrientacinaObjetos

Laprogramacinorientadaaobjetos(POO)puederesumirsedelasiguientemanera:
1.
2.
3.
4.
5.

Todoesunobjeto.
Unprogramaesunconjuntodeobjetosdiciendoaotrosobjetosquhacermedianteelpasodemensajes
Cadaobjetotienememoriapropiacreadamedianteotrosobjetos
Cadaobjetotieneuntipodedato(perteneceaunaclase)
Todoslosobjetosdeunmismotipopuedenrecibirlosmismosmensajes.

Abstraccin,herencia,polimorfismoyencapsulacincaracterizanaloslenguajesorientadosaobjetos.Cadaunodeestos
conceptos puede utilizarse aisladamente, incluso aparecen en otras metodologas de programacin, pero juntos se
complementanenunarelacinsinrgica.Losbeneficiosdelaprogramacinorientadaaobjetossonmsquelosquepueden
verseasimplevista.Elnfasisenlaspropiedadesesencialesdeunobjeto,fuerzaaldesarrolladorapensarcuidadosamente
queesunobjetoyqueesloquehaceconelresultadodequeelsistemaesnormalmentemspreciso,generalyrobustoque
sipusiramoselnfasisenlosprocedimientosylosdatosporseparado.Lascaractersticaspuedenresumirsecomo:
1Abstraccin. Denotalascaractersticasesenciales(clasificacin)quedistinguenaunobjetodeotros tipos de
objetos.Esuntipodeagrupacin.
Surgedelreconocimientodesimilaridadesentreciertosobjetos,situacionesoprocesosenelmundoreal.
Decideconcentrarseenestassimilaridadeseignorarlasdiferencias.
Enfatizadetallesconsignificadoparaelusuario,suprimiendoaquellosdetallesque,porelmomento,son
irrelevantesodistraendeloesencial.
Debenseguirel"principiodemnimocompromiso",quesignificaquelainterfacedeunobjetoproveesu
comportamientoesencial,ynadamsqueeso.
Ejemplos.
1. Unabicicleta,unamotocicleta,uncamin,unbarcocompartenalgunascaractersticasporlasquepueden
abstraerseenelconceptodemediodetransporte.
2. Unobrero,unasecretaria,unchofer,unprofesorpuedenabstraerseenelconceptodeempleado.
2Herencia.Estapropiedadestmuyrelacionadaconlaanterior,ambassonconsecuenciasdelaotra.Consisteenla
propagacindelosatributosylasoperacionesatravsdedistintassubclasesdefinidasapartirdeunaclasecomn.
Introduceelrefinamientosucesivodelconceptodeclase.Permitedefinirunaclaseprincipalyatravsdesucesivas
aproximaciones,cualquiercaractersticadelosobjetos.Laherenciapermitecrearestructurasjerrquicasdeclases
dondeesposiblelacreacindesubclasesqueincluyannuevaspropiedadesyatributos.Estassubclasesadmitenla
definicindenuevosatributos,ascomocrear,modificaroinhabilitarpropiedades.
Ejemplo.
Unabicicletanormalconunasolavelocidadpuedeheredarsuscaractersticasaunabicicletadecarrerasquetenga
variasvelocidadesyqueseamasliviana.Asimismo,labicicletadecarreraspuedeheredarsuscaractersticasauna
bicicletademontaaquetambintendrvariasvelocidadesperotendrlaestructuratubularmasresistente.Deunaa
otrapuedenvariareltipodemanubrio,eltipodeasiento,eltamaodelasruedas,etc.Aspues,labicicletadecarreras
ylabicicletademontaasonsubclasesdelaclasebicicleta.Todasestassubclasestienenencomnlaestructurabsica
(dosruedas,pedales,etc.)yvaransloenalgunosdesuscomponentes.
3 Polimorfismo. El polimorfismo es una nueva caracterstica aportada por la POO. Esta propiedad indica la
posibilidad de definir varias operaciones (mtodos) con el mismo nombre, diferencindolas nicamente en los
parmetros de entrada. Dependiendo del objeto que se introduzca como parmetro de entrada, se elegir
automticamentecualdelasoperacionessevaarealizar.
Ejemplo
Elcasodeloperadorsumaqueestpresenteentodosloslenguajesdeprogramacin.Sinembargo,losoperadores

sumadefraccionesysumadenmeroscomplejosnoexistenencasiningnlenguajedeprogramacin.Puesas,
dependiendodeltipodeparmetroenviadoaloperadorestepudierahacerunasumasimple,unasumadefraccioneso
unasumadenmeroscomplejos.Esposibleextenderelconceptoeinclusodefiniroperacionescomosumadebasesde
datos
4Encapsulacin.Eselprocesodecompartimentalizacindeloselementosdeunaabstraccinqueconstituyensu
estructuraycomportamiento.Laencapsulacinsirveparasepararlainterfacedeunaabstraccinysuimplementacin.
Esunconceptocomplementarioaldeabstraccin.
Laencapsulacinescondelaimplementacindelobjetoquenocontribuyeasuscaractersticasesenciales.
Laencapsulacindalugaraquelasclasessedividanendospartes:
1. Interface:capturalavisinexternadeunaclase,abarcandolaabstraccindelcomportamientocomnalos
ejemplosdeesaclase.
2. implementacin:comprendelarepresentacindelaabstraccin,ascomolosmecanismosqueconducenal
comportamientodeseado.
Ejemplo.
3. Doscocinerosdediferentesrestaurantespuedenprepararpolloempanizado(lainterfacees prepararpollo
empanizado),peroconsuspropiasrecetas(lasrecetassonlaimplementacin,lamaneracmolohacen).
4. Un autobs y un taxi pueden llegar al centro de la ciudad (interface), pero por diferentes rutas
(implementacin).

1.3CaractersticasgeneralesdeJava

Lenguajedepropsitogeneral.
LenguajeOrientadoaObjetos.
SintaxisinspiradaenladeC/C++.
Lenguajemultiplataforma:LosprogramasJavaseejecutansinvariacin(sinrecompilar)encualquier
plataformasoportada(Windows,UNIX,Alpha,Macintosh,etc.)
Lenguajeinterpretado:Elintrpreteacdigomquina(dependientedelaplataforma)sellamaJavaVirtual
Machine(JVM).Elcompiladorproduceuncdigointermedioindependientedelsistemadenominado
bytecode.
Lenguajegratuito:CreadoporSUNMicrosystems,quedistribuyegratuitamenteelproductobase,
denominadoJDK(JavaDevelopmentToolkit)oactualmenteJ2SE(Java2StandardEdition).
API(ApplicationProgramInterface)distribuidaconelJ2SEmuyamplia.CdigofuentedelaAPI
disponible.ElAPIdefineculessonlasclasesbasequecomponenellenguaje(jerarquadeclases)ascomo
cadaunodesusmtodosbase.LanavegacindelAPIeslamejorfuentedeinformacinacercadelasclases
Java,puedeconsultarseenlneaoinstalarseenlacomputadora.

1.4J2SE(Java2StandardEdition)
ElkitdeJavacontiene:

UnconjuntodeherramientasparagenerarprogramasJava.Compilador,depurador,herramientapara
documentacin,etc.
LaJVM(JavaVirtualMachine)necesariaparaejecutarprogramasJavaJRE
ElAPIdeJava(jerarquadeclases)JRE
CdigofuentedelaAPI(Opcional).
Documentacin(Opcional).

LaversinactualdeJ2SEes1.5ypuededescargarsedesdehttp://www.javasoft.comenelapartadodownloads.

1.5JRE(JavaRuntimeEnvironment)

JREeselentornomnimoparaejecutarprogramasJava2.IncluyelaJVMyelAPI.EstincluidaenelJ2SEaunque
puededescargarseeinstalarseseparadamente.Nopermitecompilarprogramasfuentesloejecutarlos.
ElJREincluyeelJavaPlugin,queeselaadidoquenecesitanlosnavegadores(Explorer,Firefox,Konqueror,etc.)
parapoderejecutarprogramasJava2.EsdecirqueinstalandoelJREsetienesoportecompletoJava2,tantopara
aplicacionesnormales(denominadas'standalone')comoparaapplets(programasJavaqueseejecutanenunapgina
web,cuandostaesaccedidadesdeunnavegador).

2Iniciacinalaprogramacin

Antesdeescribircdigopararesolverunproblemaesindispensablesabequesloquesedesearesolverycmohacerlo.
Paraellosedebeentenderperfectamenteelproblemayestablecesdetalladamentelaestrategiaaseguirpararesolverlo.Es
importantesabercmodividirelprogramaenbloquesyverquesposible reutilizardeotrasaplicaciones.Asimismose
debeentenderqutiposdedatosyclasessedebernusar.
Todoslosproblemassepuedenresolvermedianteunaseriedepasosyaccionesenunordenespecfico.Aestoselellama
algoritmo.Lamaneradedesarrollarunalgoritmoesmediantepseudocdigo.Unpseudocdigoesunlenguajeinformal
queayudaalosprogramadoresarepresentarloqueserfinalmenteunprogramamedianteunlenguajedeprogramacin.Un
Unpseudocdigoemplealenguajecotidianoconalgunaspalabraseningls,asresultamuycmodoysencilloexpresarlo
quesedeseahacermedianteelprogramafinal.Aselprogramadorpodrrazonarsobreelprogramaydetectarposibles
erroresdelgicaantesdeescribirloenellenguajedeprogramacinausar.Estoesextremadamentetilcuandosedesea
implementarprogramascomplejos.
Elentornomnimonecesarioparaescribir,compilaryejecutarprogramasJavaeselsiguiente:
J2SEy
Uneditordetextos(vi,kedit,kate,kwrite,gedit,emacs,nedit,etc.)
EntornodeDesarrolloIntegrado(IDE),porejemplo:Netbeans,JCreator,JBuilder,Eclipse,etc.
Sepuedeeditardesdelamismalneadecomandos(convioedit)oenunaventanadeeditorporaparte(kedit,kate,kwrite,
gedit,emacs,nedit,etc.)ycompilarenotraventanadelneadecomandos(tambinllamadaterminal).
Losaspectosimportantesquedebemosconocersonlossiguientes:
Lasmaysculasyminsculassonsignificativastantoenlosnombresdelosarchivoscomoenlosnombresdelas
variables, mtodos y clases. HolaMundo.java es diferente a Holamundo.java; variableEdad es diferente a
variableedad;calculaMaximosesdiferenteacalculamaximos.
NOsedebenemplearcaracteresquenosseanestndares(contildes,,,,etc.)

El;eselseparadordesentenciasenJava.
Elsmbolo//indicacomentariosdelnea./*y*/indicancomentariodebloque.
Todaslaspalabrasreservadasdellenguajevanenminsculas.
LosarchivosfuenteJavatienenlaextension.java.Porejemplo:HolaMundo.java,MinimosCuadrados.java
Elnombredelaclasedefinidaenunarchivofuentedebeseridnticoalnombredelarchivo.
LosarchivosejecutablesenJavaestnencdigobytecodeytienenlaextensin.class.Porejemplo:
Holamundo.class,MinimosCuadrados.java
ElcomandoparacompilarprogramasJavaesjavac[+NombreArchivo.java].Ntesequeesnecesarioponerla
extension.java.lossmbolos+[]sehanpuestosoloparailustrar.Porejemplo,supongamosquehemoscreadoun
programaylohemosnombradoHolaMundo.javaparacompilaresteprogramaseescribe:

javac HolaMundo.java

elcompiladorgeneracdigobytecode(cdigoejecutableenlaJVM)

ElcomandoparaejecutarprogramasJavaesjava.Paraejecutarelprogramaanterior(suponiendoquenohubo
erroresdecompilacin)seescribe:
java HolaMundo

ntesequecuandoelprogramaseejecutaNOseponelaextensin.class

Fuentesymdulosresidirnenelmismodirectorio.Lohabitualestenerunoovariospackagesquecompartan
unesquemajerrquicodedirectoriosenfuncindenuestrasnecesidades(packagesporaplicaciones,temas,
etc.).Porejemplo:
Programas
|-------Ejemplo1
|-------SaludoInicial
(por ejemplo Hola.java)
|-------SaludoMundo
(por ejemplo HolaMundo.java)
|-------SaludoMundoAsia (por ejemplo HolaMundoChinaJapon.java)
|-------SaludoTamaulipas (por ejemplo HolaTamaulipas.java)

2.1Compilacinyejecucindeprogramas
SupongamosquehemosinstaladoelJDK(J2SE)enlacomputadorayquetantoelcompilador(javac)comolaJVM(java)
estnaccesibles.SIEMPREasumiremosqueloscomandosseemitirndesdelalneadecomandosdeWindowsoLinux.

2.1.1CreacinycompilacindeunprogramaJava

UnprogramaJavapuedeserunaaplicacinounapplet(aplicacioncita).Unaaplicacinesunprogramaqueforzosamente
debecontenerunmtodomain(),mientrasqueunappletno.Porlogeneralunaaplicacincreaymanipulaobjetosdevarias
clasesyseejecutadesdelalineadecomandos.Unappletesunprogramapequeoquedebeincrustarseenunarchivohtml
parapoderejecutarse.Porlogenerallosappletseencuentranenpginaswebyseejecutancuandoesapginasedescarga
mediante un navegador. Tambin los applets pueden ejecutarse desde la lnea de comandos mediante el comando
appletviewer (visor deapplets). Se comosea lo quefinalmente ejecuta la aplicacin oel applet es la Java Virtual
Machine.Paraefectosdelcurso,nosenfocaremosendesarrollaraplicaciones,dejandodeladolosapplets.
Lospasosparacrearaplicacionessonlossiguientes:
1Conuneditordetextosimplecreamosunarchivoconelsiguientecontenido.Porelmomentonopreocuparseporlas
palabrasreservadasempleadas:
package Programas.Ejemplo1;
class HolaMundo {
public static void main ( String [] args) {
System.out.println("Hola mundo");
}
}
GuardamoselarchivofuenteconnombreHolaMundo.javaenlacarpeta../ApuntesJava/Programas/Ejemplo1ennuestra
carpetapersonal.
2AbrimosunaventanadelneadecomandosyvamosalacarpetaendondeestnlosApuntesdeJavaqueesdondehemos
guardadoelarchivofuente:
ltia_00@ltia_00:~> cd ApuntesJava
ycompilamosHolaMundo.java
ltia_00@ltia_00:~/ApuntesJava> javac Programas/Ejemplo1/HolaMundo.java

Ntese:

Elnombredelaclaseeselmismoqueelnombredelarchivo,esdecir,HolaMundo
PorelmomentoSLOseimplementarunaclaseporarchivofuente.
Paradefinirunaclaseseemplealapalabraclass
AligualqueenLenguajeC,unaaplicacinsecompondrdediversosarchivosfuente,siendoNICAMENTE
UNOelquecontengaelmtodoprincipal(main)
Enestecaso,laaplicacinHolaMundosloestcompuestadeunaclase(ellamisma)ycontieneelmtodo
main:
public static void main (String [] args) {
Elmtodomainsiempresedeclaradelamismamanera(argspuedecambiar).NUNCADEBECONTENERLA
LGICADELPROGRAMA,nicamentecrealosobjetosoinvocalasclasesqueimplementandichalgica.
Elmtodomainrecibecomoparmetrosunarraydecadenasdesdelalneadecomandos(String [] args)
quepuedenmanipularsedentrodelprograma.Porejemplo:
java HolaMundo cadena1 cadena2 cadena3
Secompildesdefueradeldirectorioendondeestelarchivofuente,perotambinpuedehacersedentrodedicho
directorio:
ltia_00@ltia_00:~/ApuntesJava/Programas/Ejemplo1/>javac HolaMundo.java
javac Programas/Ejemplo1/HolaMundo.javaindicaalcompiladorquebusqueenlaruta
Programas/Ejemplo1,apartirdeldirectorioactual;esdecir,seestespecificandolarutadeunarchivo.
Puestoquesehaempleadounpackage(paquete)package Programas.Ejemplo1;sedebetenerel
directorioProgramasydentrodesteeldirectorioEjemplo1.EstoindicaquelaclaseHolaMndoperteneceadicho
package.
LospackagesSIEMPREsedefinenenlaprimeralnea.

Nota:Esposibledefinirmsdeunaclaseenunarchivofuente,peroslounadeellaspodrserdeclaradapublic(es

decirpodrserutilizadafueradelpackagedondesedefine).Todaslasdemsclasesdeclaradasenelfuentesern
internasalpackage.Sihayunaclasepublicentonces,obligatoriamente,elnombredelfuentetienequecoincidirconel
delaclasedeclaradacomopublic.Losmodificadoresdeaccesosevernmsadelante.
EnelejemploseutilizalaclasedelAPIdeJava(System.out).Sinembargoelprogramanotieneningnimport.
Noobstanteelcompiladornodetectaningnerrorygeneraelcdigoejecutabledirectamente.Estosedebeaquela
claseSystemestdefinidaenelpackagejava.lang,queeselnicodelquenoesnecesariohacerelimport,que
eshechoimplcitamenteporelcompilador.ParacualquierclasedelAPI,definidafueradeestepackageesnecesario
hacerelimportcorrespondiente.
SUNrecomiendaunestilodecodificacinqueesseguidoenelAPIdeJavayeselqueseemplearenelcurso.
Consisteen:
Utilizarnombresdescriptivosparalasclases,evitandolosnombresmuylargos.
Paralosnombresdeclasesponerlaprimeraletraenmaysculasylasdemsenminsculas.Porejemplo:
Empleado,Computadora,etc.
Sielnombretienevariaspalabrasponerlastodasjuntas(sinsepararcono_)yponerlaprimeraletradecada
palabraenmaysculas.Porejemplo:MiClase,ServicioNominaSemestral,EmpleadoAdministrativo
Paralosnombresdemiembros(datosymtodos)seguirlamismanorma,peroconlaprimeraletradela
primerapalabraenminsculas.Porejemplo:registrarCompra,altaEmpleado,EmpleadoAdministrativo.
Paralasconstantes(datosconelmodificadorfinal)usarnombresenmaysculas,separandolaspalabrascon
_

2.1.2EjecucindeunprogramaJava
Aundesdelalneadecomandossepuedeejecutarelprogramasiempreycuandoelcompiladornohayamarcado
erroresdecompilacin.Seejecutadelasiguientemanera:
10

ltia_00@ltia_00:~/ApuntesJava> java Programas.Ejemplo1.HolaMundo

estohacequesecarguelaJVMystacarguelaclaseHolaMundoyllameasumtodomain,elcualproducirenla
ventanadelneadecomandoslasalida:
ltia_00@ltia_00:~/ApuntesJava> java Programas.Ejemplo1.HolaMundo
Hola Mundo

Ntese:

Los archivos .class son invocables directamente desde la lnea de comandos (con la sintaxis java
nombreDeClase)sitienenunmtodomaindefinidotalcomosevianteriormente.
Comoseexpliceneltemadepackages,paraejecutarlaclaseHolamundosedebeescribirlarutacompletaen
dondeseencuentralaclaseincluyendolarutadelpackage:
java Programas.Ejemplo1.HolaMundo
Cuandoseponejava Programas.Ejemplo1.HolaMundo seestindicandoalaJVMquecarguey
ejecute la clase HolaMundo del Package Programas, subpackage Ejemplo1. Para cumplir esta orden,
expresadaentrminosJavadeclasesypackages,laJVMbuscarelarchivo HolaMundo.class enlaruta
Programas/Ejemplo1queesalgoexpresadoentrminosdelsistemadearchivosdelsistemaoperativo.
SepuedeindicaralaJVMquebusquelasclasesenrutasalternativasaldirectorioactual.Estosehaceconel
parmetro classpath (abreviadamente cp)enlalneadecomandos.Porejemplosieldirectorioactuales
otro,podemosinvocarelprogramadeejemplodelaforma:
ltia_00@ltia_00:~/> java -cp ~/ApuntesJava Programas.Ejemplo1.HolaMundo
~indicaquebusqueeldirectorio/ApuntesJavaapartirdenuestrodirectorio.
Conelparmetrocpsepuedeespecificardiversasrutasalternativasparalabsquedadeclasesseparadaspor
;

11

Вам также может понравиться