Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Variables en Java
EnestecaptulosepresentanlascaractersticasgeneralesdeJavacomolenguajede
programacinalgortmico.EnesteapartadoJavaesmuysimilaraC/C++,lenguajesen
losqueestinspirado.
Unavariableesunnombrequecontieneunvalorquepuedecambiaralolargodel
programa.Deacuerdoconeltipodeinformacinquecontienen,enJavahaydostipos
principalesdevariables:
1.Variablesdetiposprimitivos.Estndefinidasmedianteunvalornico.
2.Variablesreferencia.Lasvariablesreferenciasonreferenciasonombresdeuna
informacinmscompleja:arraysuobjetosdeunadeterminadaclase.
Desdeelpuntodevistadesupapelenelprograma,lasvariablespuedenser:
1.Variablesmiembrodeunaclase:Sedefinenenunaclase,fueradecualquier
mtodopuedensertiposprimitivosoreferencias.
2.Variableslocales:Sedefinendentrodeunmtodoomsengeneraldentrode
cualquierbloqueentrellaves{}.Secreanenelinteriordelbloqueysedestruyen
alfinalizardichobloque.Puedensertambintiposprimitivosoreferencias.
1.1.NombresdeVariables
LosnombresdevariablesenJavasepuedencrearconmuchalibertad.Puedenser
cualquierconjuntodecaracteresnumricosyalfanumricos,sinalgunoscaracteres
especialesutilizadosporJavacomooperadoresoseparadores(,.*/etc.).Existeuna
seriedepalabrasreservadaslascualestienenunsignificadoespecialparaJavaypor
lotantonopuedenserutilizadascomonombresdevariables.Dichaspalabrasson:
abstract
boolean
break
byte
catch
char
class
const
continue
do
double
else
extends
final
float
for
goto
if
implements
instanceof
int
interface
long
native
null
package
private
protected
public
short
static
super
switch
synchronizedthis
throw
throws
transient
try
void
volatile
while
1.2.TiposPrimitivosenVariables
SellamantiposprimitivosdevariablesdeJavaaaquellasvariablessencillasque
contienenlostiposdeinformacinmshabituales:valoresboolean,caracteresy
valoresnumricosenterosodepuntoflotante.Javadisponedeochotiposprimitivosde
variables:untipoparaalmacenarvalorestrueyfalse(boolean)untipoparaalmacenar
caracteres(char),y6tiposparaguardarvaloresnumricos,cuatrotiposparaenteros
(byte,short,intylong)ydosparavaloresrealesdepuntoflotante(floatydouble).Los
rangosylamemoriaqueocupacadaunodeestostipossemuestranacontinuacin:
Boolean:1byte.Valorestrueyfalse
Char:2bytes.Unicode.ComprendeelcdigoASCII
Byte:1byte.Valorenteroentre128y127
Short:2bytes.Valorenteroentre32768y32767
Int:4bytes.Valorenteroentre2.147.483.648y2.147.483.647
Long:8bytes.Valorentre9.223.372.036.854.775.808y
9.223.372.036.854.775.807
Float:4bytes(entre6y7cifrasdecimalesequivalentes).De3.402823E38a
1.401298E45yde1.401298E45a3.402823E38
Double:8bytes(unas15cifrasdecimalesequivalentes).De
1.79769313486232E308a4.94065645841247E324yde4.94065645841247E
324a1.79769313486232E308
1.3.Definicindevariables
Unavariablesedefineespecificandoeltipoyelnombredelavariable.Estasvariables
puedensertantodetiposprimitivoscomoreferenciasaobjetosdealgunaclase
pertenecientealAPIdeJavaogeneradaporelusuario.
Lasvariablesprimitivasseinicializanacero(salvobooleanychar,queseinicializana
falsey\0)sinoseespecificaunvalorensudeclaracin.
Anlogamentelasvariablesdetiporeferenciasoninicializadaspordefectoaunvalor
especial:null.Esimportantedistinguirentre2tiposdedeclaracionesdevariablesde
tiporeferencia:
1.Declaracindelobjetonulo:enestetipodedeclaracinslosedeclaraeltipode
dato,queenestecasonoesuntipobsico,sinounobjeto.Ejemplo:MiObjeto
objeto
2.Declaracinconinstanciadelobjeto:enestetipodedeclaracinsecrea
explcitamenteunnuevoobjetoenlapropiadeclaracin,porlotantodesdeese
momento,lavariableestapuntandoaunadireccindememoriadondeest
almacenadaladireccindelobjetoquesehacreado.Ejemplo:MiObjetoobjeto=
newMiObjeto()
1.4Visibilidadyvidadelasvariables
1.4Visibilidadyvidadelasvariables
Seentiendeporvisibilidad,mbitooscopedeunavariable,lapartedelaaplicacin
dondedichavariableesaccesibleyporlotantopuedeserutilizadaencualquier
expresin.
EnJavatodoslasvariablesdebenestarincluidasenunaclase.Engenerallas
variablesdeclaradasdentrodeunasllaves{},esdecirdentrodeunbloque,sonvisibles
yexistendentrodeestasllaves.Porejemplolasvariablesdeclaradasalprincipiode
unafuncinexistenmientrasseejecutelafuncinlasvariablesdeclaradasdentrode
unbloqueifnosernvlidasalfinalizarlassentenciascorrespondientesadichoifylas
variablesmiembrodeunaclase(esdecirdeclaradasentrelasllaves{}delaclasepero
fueradecualquiermtodo)sonvlidasmientrasexisteelobjetodelaclase.
Lasvariablesmiembrodeunaclasedeclaradascomopublicsonaccesiblesa
travsdeunareferenciaaunobjetodedichaclaseutilizandoeloperadorpunto
(.).
Lasvariablesmiembrodeclaradascomoprivatenosonaccesiblesdirectamente
desdeotrasclases.
Lasfuncionesmiembrodeunaclasetienenaccesodirectoatodaslasvariables
miembrodelaclasesinnecesidaddeanteponerelnombredeunobjetodelaclase.
SinembargolasfuncionesmiembrodeunaclaseBderivadadeotraA,tienenaccesoa
todaslasvariablesmiembrodeAdeclaradascomopublicoprotected,peronoalas
declaradascomoprivate.Unaclasederivadaslopuedeaccederdirectamentealas
variablesyfuncionesmiembrodesuclasebasedeclaradascomopublicoprotected.
Otracaractersticadellenguajeesqueesposibledeclararunavariabledentrodeun
bloqueconelmismonombrequeunavariablemiembro,peronoconelnombredeotra
variablelocal.Lavariabledeclaradadentrodelbloqueocultaalavariablemiembroen
esebloque.Paraaccederalavariablemiembroocultaserprecisoutilizareloperador
this.
Unodelosaspectosmsimportantesenlaprogramacinorientadaaobjetos(OOP)es
laformaenlacualsoncreadosyeliminadoslosobjetos.Laformadecrearnuevos
objetosesutilizareloperadornew.Cuandoseutilizaeloperadornew,lavariablede
tiporeferenciaguardalaposicindememoriadondeestalmacenadoestenuevo
objeto.Paracadaobjetosellevacuentadeporcuntasvariablesdetiporeferenciaes
apuntado.Laeliminacindelosobjetoslarealizaeldenominadogarbagecollector,
quienautomticamenteliberaoborralamemoriaocupadaporunobjetocuandono
existeningunareferenciaapuntandoaeseobjeto.Loanteriorsignificaqueaunqueuna
variabledetiporeferenciadejedeexistir,elobjetoalcualapuntanoeseliminadosihay
otrasreferenciasapuntandoaesemismoobjeto.
2. Operadores
2.1Operadoresaritmticos
2. Operadores
2.1Operadoresaritmticos
Sonoperadoresbinarios(requierensiempredosoperandos)querealizanlas
operacionesaritmticashabituales:suma(+),resta(),multiplicacin(*),divisin(/)y
restodeladivisin(%).
2.2Operadoresdeasignacin
Losoperadoresdeasignacinpermitenasignarunvaloraunavariable.Eloperadorde
asignacinporexcelenciaeseloperadorigual(=).Laformageneraldelassentencias
deasignacinconesteoperadores:
variable=expresion;
Javadisponedeotrosoperadoresdeasignacin.Setratadeversionesabreviadasdel
operador(=)querealizanoperacionesacumulativassobreunavariable.
+= op1 op1=op1+
+= op2
op2
= op1= op1=op1
op2 op2
*= op1*= op1=op1*
op2 op2
/= op1/= op1=op1/
op2 op2
%= op1 op1=op1%
%= op2
op2
2.3.Operadoresunarios
2.3.Operadoresunarios
Losoperadoresms(+)ymenos()unariossirvenparamantenerocambiarelsigno
deunavariable,constanteoexpresinnumrica.SuusoenJavaeselestndarde
estosoperadores.
2.4.Operadorinstanceof
Eloperadorinstanceofpermitesabersiunobjetoperteneceaunadeterminadaclaseo
no.Esunoperadorbinariocuyaformagenerales,
objectNameinstanceofClassName
yquedevuelvetrueofalsesegnelobjetopertenezcaonoalaclase.
2.5.Operadorcondicional?
Esteoperadorpermiterealizarbifurcacionescondicionalessencillas.Suformageneral
eslasiguiente:
booleanExpression?res1:res2
dondeseevalabooleanExpressionysedevuelveres1sielresultadoestrueyres2si
elresultadoesfalse.Eselnicooperadorternario(tresargumentos)deJava.Como
todooperadorquedevuelveunvalorpuedeserutilizadoenunaexpresin.Porejemplo
lassentencias:
x=1;y=10;z=(x<y)?x+3:y+8;
asignaranazelvalor4,esdecirx+3.
2.6.Operadoresincrementales
Javadisponedeloperadorincremento()ydecremento().Eloperador()incrementa
enunaunidadlavariablealaqueseaplica,mientrasque()lareduceenunaunidad.
Estosoperadoressepuedenutilizardedosformas:
1.Precediendoalavariable(porejemplo:++i).Enestecasoprimeroseincrementa
lavariableyluegoseutiliza(yaincrementada)enlaexpresinenlaqueaparece.
2.Siguiendoalavariable(porejemplo:i++).Enestecasoprimeroseutilizala
variableenlaexpresin(conelvaloranterior)yluegoseincrementa.
Enmuchasocasionesestosoperadoresseutilizanparaincrementarunavariablefuera
deunaexpresin.Enestecasoambosoperadoressonequivalente.Siseutilizanen
unaexpresinmscomplicada,elresultadodeutilizarestosoperadoresenunauotra
desusformasserdiferente.Laactualizacindecontadoresenbuclesforesunade
lasaplicacionesmsfrecuentesdeestosoperadores.
2.7.Operadoresrelacionales
Losoperadoresrelacionalessirvenpararealizarcomparacionesdeigualdad,
desigualdadyrelacindemenoromayor.Elresultadodeestosoperadoresessiempre
unvalorboolean(trueofalse)segnsecumplaonolarelacinconsiderada.
== op1 siop1yop2
== soniguales
op2
!= op1 siop1yop2
!= sondiferentes
op2
2.8.Operadoreslgicos
2.8.Operadoreslgicos
Losoperadoreslgicosseutilizanparaconstruirexpresioneslgicas,combinando
valoreslgicos(truey/ofalse)olosresultadosdelosoperadoresrelacionales.Debe
notarsequeenciertoscasoselsegundooperandonoseevalaporquenoes
necesario(siambostienenquesertrueyelprimeroesfalseyasesabequela
condicindequeambosseantruenosevaacumplir).Estopuedetraerresultadosno
deseadosyporesosehanaadidolosoperadores(&)y(|)quegarantizanquelosdos
operandosseevalansiempre.
|| OR op1 truesiop1
|| uop2son
op2 true.Si
op1es
trueyano
seevala
op2
| OR op1 op2
2.9.Operadordeconcatenacindecadenasde
2.9.Operadordeconcatenacindecadenasde
caracteres(+)
Eloperadorms(+)seutilizatambinparaconcatenarcadenasdecaracteres.Por
ejemplo,paraescribirunacantidadconunrtuloyunasunidadespuedeutilizarsela
sentencia:
System.out.println("Hola,tengo"+anyos+"aos");
dondeeloperadordeconcatenacinseutilizadosvecesparaconstruirlacadenade
caracteresquesedeseaimprimirpormediodelmtodoprintln().Lavariable
numricaanyosesconvertidaautomticamenteporJavaencadenadecaracteres
parapoderlaconcatenar.