You are on page 1of 8

3.

ElementosformalesdellenguajeJava(I)
Enestedocumentopodrsencontrarinformacinrelacionadaconlasintaxisgeneral
necesariaparalaconstruccindeprogramasenJavabasadosenasignaciones.

Notacin
Entodoslosdocumentosdesintaxisseusarunanotacinsencillaqueusteddebe
conocerparaentenderrpidamentelaestructuradeloselementosdescritos.
Elementosobligatorios:sonelementosquedebenserespecificadosparaconstruiruna
estructura.Serepresentanusando<y>
Elementosopcionales:sonelementosqueesposibledefinir,peronosondeuso
obligatorio.Serepresentanusando(y)
Usodefuentesdetexto:alusaresta fuente,nosreferimosaque,paraqueel
procesodecompilacinseaexitoso,eltextosedebeescribirexactamenteigualacomose
presenta.Conesta fuenteescribiremoselcdigoenJava.
Aclaracinimportante:Javaesunlenguajesensiblealusodemaysculasyminsculas,
porlotantoFloatesdiferenteafloat.Muchasvecescomoenesteejemplo,las
dospalabrastienenusosyunaconnotacindistinta.Poreso,esimportanteusarcada
elementodellenguajetalycomoesdefinidoenestedocumento.

3.1.Tiposdedatos
EnJavaexistentiposdedatosbsicosorientadosalaconstruccindeexpresionesquenos
sirvenparahallarelresultadodeoperaciones.Estostiposdedatossebasanenlostipos
definidosparalasexpresionesqueconocemos(Enteros,Realesetc)ysediferenciande
acuerdoconsuusoysuprecisinoelrangodevaloresquepermitenalmacenar.

POLITCNICO GRANCOLOMBIANO EN ALIANZA CON WHITNEY INTERNATIONAL UNIVERSITY SYSTEM

AdrianNicolsMalaverBarrera

Tipodedato

Entero

TipoenJava

Rangodevalores

byte

De128(2 )a127(2 1)

short

De32768(2 )a32767(2 1)

int

De2147483648(2 )a2147483647(2 1)

long

De9223372036854775808(2 )a
63
9223372036854775807(2 1)

64bits

float

Elnmeromspequeoquesepuede
representares1.40129846432481707e45.El
msgrandees3.40282346638528860e+38

32bits

double

Elnmeromspequeoquesepuede
representares4.94065645841246544e324.El
msgrandees1.79769313486231570e+308.

64bits

boolean

false y true

char

De0a65535,dondecadavalorrepresentaun
carcterdetextodeacuerdoconlacodificacin
usada.

16bits

Usodememoria
7

15

8bits
15

31

16bits
31

63

Real

Booleano
Carcter

32bits

Tabla1.TiposdedatosbsicosenJava

3.2. Definicindevariables
Deacuerdoconlanecesidad,esposibledefinirvariablesquealmacenarnelresultadode
operaciones,parmetrosyotrosvaloresqueserequieranparalasolucinalgortmicade
problemas.Lasintaxiseslasiguiente:
<Tipodedato><Nombredelavariable>(=<Valorinicial>);
Porejemplo:

float f;
int i;
int y, z, t, w;

Nombresdevariables:losnombressonunasecuenciadecaracteresdetextoquepueden
comenzarconletras,conelsigno$oconelsigno_.Haypalabrasquenopuedenusarse
paradefinirnombresdevariables,dadoquesonpalabrasqueusaellenguajeJavapara
AdrianNicolsMalaverBarrera

definirsuspropiasestructuras.Estaspalabrassonllamadaspalabrasreservadasysonlas
siguientes:
abstract
assert
boolean
break
byte
case
catch
char
class
const

continue
default
do
double
else
enum
extends
final
finally
float

for
goto
if
implements
import
instanceof
int
interface
long
native

new
package
private
protected
public
return
short
static
strictfp
super

switch
synchronized
this
throw
throws
transient
try
void
volatile
while

Valorinicial:Aldefinirunavariableesposibleasignarleunvalorinicial,deacuerdoconel
tipodedato.Notaimportante:Lasvariablesdefinidasdentrodemtodos,enestecaso,
dentrodelmtodomain,enelquedefinimoslalgicadelosprogramas,requierendeun
valorinicial,yaqueJavanolesasignauno.

Datosenteros:Valoresnumricosenterospositivosonegativos.Pordefectoestn
enbasedecimal.Paradefinirvaloresenbaseoctalseanteponeun0alvalor.Para
definirvaloresenbasehexadecimalseantepone0x.
int x = 12;
long personas = 94674242;
byte dato = -123;
int h = 0x19fe; //6654 en base hexadecimal

Datosreales:valoresnumricosrealespositivosynegativos.Lapartedecimalse
separadelaenteraconpunto..Paradefinirvaloresdetipoflotanteesnecesario
colocarfalfinaldelnmero.Esposibleusarnotacincientfica.Porejemplo,el
nmero4326.783puedeserescritocomo4.326783x103.EnJava:4.326783e3;
float valor = 1.452f;
double dato = 1.45e-6;
double numeroGrande = 9.87e230;

Datosbooleanos:falseotrue.
boolean llueve = true;
boolean cieloRojo = false;
double resultado = true;

Caracteresdetexto:sedefinenentrecomillassencillas('').Esposible,adems,
usarelcdigounicodeespecfico:\u00F1esiguala.

AdrianNicolsMalaverBarrera

Unicodeesunestndarinternacionalqueasignaunvalornumricoacadaunode
losposiblessmbolosquepodemosrepresentar;nosoloenespaol,sinoen
muchosotrosidiomas.
char letra = 'A';
char arroba = '\u0041';
char otraLetra = 65;

Enestecaso,sepresentantresformasposiblesdehacerreferenciaalsmbolo'A'.

Cadenasdetexto:sedefinenentrecomillasdobles("").Lasutilizaremos
inicialmenteparamostrarinformacinalusuariodenuestrasaplicaciones.
String palabra = Hola;
String otraPalabra = Hola mundo;

3.3 Asignaciones
Paraasignarunavariable,seusaeloperadordeasignacin'='deformasimilarala
asignacindevalorinicial.
<Nombredelavariable>=<Valor>;
SiemprequeescribamosasignacionesenellenguajeJava,usaremospuntoycoma(;)para
definirsufinalizacin.Nosoloaldefinirasignaciones,sinotambinaldefinirvariableso
hacerllamadoamtodosespecficos.
Porejemplo:
f = 1.45f;
i = 23;
letra = 'W';

Lasreglasparalosvaloresusadossonlasmismasqueparalosvaloresiniciales.Las
variablesdebenhabersidodefinidaspreviamente.

3.4 Expresiones
LaescrituradelasexpresionesenJavasiguelasmismasreglasdefinidasparalas
expresionesenpseudocdigo.Acontinuacinserelacionanlosoperadoresprincipales
queusaremosalolargodelcurso.Unalistamsdetalladapuedeencontrarseaqu
http://java.sun.com/docs/books/tutorial/java/nutsandbolts/operators.html.Los
operadoressepresentanenordendeprioridad(delmsimportantealmenosimportante
enelordendeevaluacin).
AdrianNicolsMalaverBarrera

Operador
Operadores
unitariosde
incremento
postfijos
(x++, x--)

Descripcin
Incrementan(++)odisminuyen(--)elvalordeunavariabledespusde
laevaluacindelaexpresinqueloscontiene.Porejemplo:
1
2

int x = 10, y;
y = 15 + x++;

Lavariablexvaleinicialmente10.Elresultadodelalnea2es25yluego
sehaceelincremento.Estosignificaqueenlaslneassiguientes,xvale
16.
Cumplenlamismafuncinquelosanteriores,conlaexcepcindeque
Operadores
primeromodificanelvalorantesdelclculodelaexpresin
unitariosde
correspondiente.
incremento
Paraelejemploanterior,elvaloralmacenadoenlavariableysera26y
infijos
(x++, x--)
no25.
Operadoresbinariosdemultiplicacin,divisinymdulo.Esteltimo
Operadores
multiplicativos funcionademaneraequivalentealoperadorMODusadopreviamente
(*, /, %)
enexpresiones.
Operadores
Operadoresbinariosderestaysumausadosentiposdedatosnumricos.
aditivos
(+,-)
Operadoresaplicadosatiposdedatosquedefinenrelacionesdeorden,
Operadores
comotiposnumricosycaracteresdetexto.Elresultadodeestos
relacionales
(<,>,<=,>=) operadoresesdetipobooleano.
Operadores
Operadoresdeequivalencia.Elresultadodeestosoperadoresesdetipo
deigualdad
booleano.
(==,!=)
Operador
Permiterealizarlaoperacinlgica'Y'vistaenexpresionesbooleanas.Se
lgicoY
puedeaplicaraoperandosdetipobooleano.
(&&)
Operador
lgicoO
(||)

Operadores
deasignacin
(=,+=,=,*=,/=)

Permiterealizarlaoperacinlgica'O'vistaenexpresionesbooleanas.Se
puedeaplicaraoperandosdetipobooleano
Permitenrealizaroperacionesaritmticasyasignacinalmismotiempo.
Porejemplo:
1
2
3

int x = 10;
x += 15;
x *= 3;

Lalnea2esequivalenteax = x + 15;
Lalnea3esequivalenteax = x * 3;

4 Referenciadeoperacionesdelecturayescrituraporconsola
AdrianNicolsMalaverBarrera

Conelobjetivodecapturarinformacindeunusuarioodepresentarinformacinen
pantalla,sehandefinidooperacionesenJavaquepermitenrealizarestatareaenforma
sencilla.
Presentacindeinformacinenlaconsoladetexto
Cuandoseanecesariopresentarelresultadodeunaoperacinocualquierinformacinal
usuario,usaremoslosmtodosprintyprintln quepertenecenalafuncionalidad
bsicaqueofreceJava.
Porejemplo:
1
2
3
4

int x = 10;
float f = 1.45f;
long l = 34543566;
String s = Hola;

5
6
7
8
9

System.out.println(f);
System.out.println(l);
System.out.println(x);
System.out.println(s);
System.out.println(El resultado es: + f);

Alejecutarestecdigo,lasalidaenlaconsoladetextosera:
1.45
34543566
10
Hola
El resultado es: 1.45

Laslneas5,6,7y8muestranelcontenidodelasvariablesenpantalla.Tambines
posiblemostrarcadenasdetextoqueacompaenalcontenidodelasvariables,como
sucedeenlalnea9.
Cuandoseusaelmtodoprintenvezdeprintln,nosebajalalneadespusdeescribir
cadavariable.Siseusaraprintlasalidasera:
1.453454356610HolaEl resultado es: 1.45

Lecturadeinformacindeconsola
Cuandoseanecesariocapturarinformacindelusuario,porejemploparaestablecer
valoresparalasvariablesdeentradadeunalgoritmo,debemoshacerlosiguiente:
1. DefinirunobjetoScanner,quecuentaconmtodosparaleerinformacindeteclado:
Scanner scanner = new Scanner(System.in);
2. Definiryasignarvaloresparalasvariablesqueseannecesarias,usandolosmtodos
adecuadosdelobjetodelaclaseScanner:
n = scanner.nextInt(); //Para leer valores enteros
f = scanner.nextFloat(); //Para leer valores de tipo float
d = scanner.nextDouble(); //Para leer valores de tipo double

AdrianNicolsMalaverBarrera

b = scanner.nextBoolean(); //Para leer valores de tipo boolean

Despusdelaejecucindecadalnea,quedaralmacenadoelvalorledoencada
variable.Paramsinformacin,puedeconsultarseladocumentacindelaclase
scannerdeJava:http://java.sun.com/j2se/1.5.0/docs/api/java/util/Scanner.html.

5 Invocacindemtodos
Esposibleconstruirexpresionesqueinvolucrenlarealizacindetareascomunescomo
racescuadradas,valoresabsolutos,entreotras.Loharemosdelasiguienteforma:
<Variabledetipoadecuado>=<Nombredelmtodo>(<Parmetros>);
Esnecesarioidentificareltipodevariablequedeberaserusado,deacuerdoconeltipo
dedatoqueretornaunmtodoparticular.Deigualmanera,haymtodosquenotienen
valorderetornoy,porlotanto,nopodranserusadosparaasignarvaloresavariables.
Losmtodosrelacionadosconfuncionesmatemticas,puedenserencontradosenlaclase
Mathyseusandeacuerdoconlosparmetrosquerequieren1.Porejemplo,sise
requierecalcularlarazcuadradade95738,loqueseharaeslosiguiente:
double x = 0.0f;
x = Math.sqrt(95738);

Siempre,alusarmtodoscomoeste,esrecomendableleerlareferenciasobreeluso,
parmetrosyvalorderetornoparaestarsegurosdequeeselmtodomsadecuado.
Esposibleusarestetipodemtodosenexpresionesquepermitanrealizaroperaciones
mscomplejas:
d = x*x + Math.sqrt(y * y) + 98 * z;

6 Comentarios
EnJava,comoenlamayoradelenguajesdeprogramacin,esposiblehacercomentarios
paraexplicarseccionesdecdigo,oagregaranotacionesparafuturasmodificaciones.
Loscomentariospuedenhacerseparaunasolalneaoparaunbloquedetexto.
Comentariosdeunalnea:Sehacenusando"//".Todoeltextosubsiguientehastaelfinal
delalneanosetieneencuentaalcompilarelcdigopresenteenelarchivo.

ParainformacinsobrelosmtodosdefinidosenlaclaseMath:
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Math.html[Recuperado:15deEnerode2010]

AdrianNicolsMalaverBarrera

int x = 8; //x almacenar el nmero de personas que inicialmente es 8


float t = 3.45; //La temperatura t ser inicialmente 3.45C
//x = 10;

Comentariosdebloque:Sehacenusando"/*"y"*/".Cualquiertextoencerradoentre
estosdoselementosnosertenidoencuentaalcompilarelcdigopresenteenelarchivo.
/*El propsito del siguiente bloque de cdigo es calcular la ruta ptima
para llegar del punto (x,y) al punto (x1,y1) en coordenadas planas*/
int x = 10, y = 30;
int x1 = 100, y1 = 54;
.
.
.
/*
Cdigo generado por:
Fecha:
*/
.
.
.

nmalaver
30-02-08

Usandocomentarios,adems,esposibleocultartemporalmenteunbloquedecdigoque
norequerimosoquenoestlistoparasuejecucin:
/*
y = 17 * 1.6180 + z;
x = 100*34 + 18*(45+5)/y
*/

AdrianNicolsMalaverBarrera

You might also like