Está en la página 1de 8

3.


Elementos
formales
del
lenguaje
Java
(I)

En
este
documento
podrás
encontrar
información
relacionada
con
la
sintaxis
general

necesaria
para
la
construcción
de
programas
en
Java
basados
en
asignaciones.


Notación


En
todos
los
documentos
de
sintaxis
se
usará
una
notación
sencilla
que
usted
debe

conocer
para
entender
rápidamente
la
estructura
de
los
elementos
descritos.


Elementos
obligatorios:
son
elementos
que
deben
ser
especificados
para
construir
una

estructura.
Se
representan
usando
‘<’
y
’>’


Elementos
opcionales:
son
elementos
que
es
posible
definir,
pero
no
son
de
uso

obligatorio.
Se
representan
usando
‘(’
y
’)’


Uso
de
fuentes
de
texto:
al
usar
esta fuente,
nos
referimos
a
que,
para
que
el

proceso
de
compilación
sea
exitoso,
el
texto
se
debe
escribir
exactamente
igual
a
como
se

presenta.
Con
esta fuente
escribiremos
el
código
en
Java.


Aclaración
importante:
Java
es
un
lenguaje
sensible
al
uso
de
mayúsculas
y
minúsculas,

por
lo
tanto
“Float”
es
diferente
a
“float”.
Muchas
veces
como
en
este
ejemplo,
las

dos
palabras
tienen
usos
y
una
connotación
distinta.
Por
eso,
es
importante
usar
cada

elemento
del
lenguaje
tal
y
como
es
definido
en
este
documento.


3.1.
Tipos
de
datos


En
Java
existen
tipos
de
datos
básicos
orientados
a
la
construcción
de
expresiones
que
nos

sirven
para
hallar
el
resultado
de
operaciones.
Estos
tipos
de
datos
se
basan
en
los
tipos

definidos
para
las
expresiones
que
conocemos
(Enteros,
Reales
etc)
y
se
diferencian
de

acuerdo
con
su
uso
y
su
precisión
o
el
rango
de
valores
que
permiten
almacenar.



POLITÉCNICO GRANCOLOMBIANO EN ALIANZA CON WHITNEY INTERNATIONAL UNIVERSITY SYSTEM

Adrian
Nicolás
Malaver
Barrera

1


Tipo
de
dato
 Tipo
en
Java Rango
de
valores
 Uso
de
memoria



7 7
byte De
‐128
(‐2 )
a
127
(2 ‐1)
 8
bits

15 15
short De

‐32768
(‐2 )
a
32767
(2 ‐1)
 16
bits

Entero
 31 31
int De
‐2147483648
(‐2 )
a
2147483647
(2 ‐1)
 32
bits

63
De
‐9223372036854775808
(‐2 )a

long 63 64
bits

9223372036854775807
(2 ‐1)


El
número
más
pequeño
que
se
puede

float representar
es
±1.40129846432481707e‐45.
El
 32
bits

más
grande
es
±3.40282346638528860e+38

Real

El
número
más
pequeño
que
se
puede

double representar
es
±4.94065645841246544e‐324.
El
 64
bits

más
grande
es
±1.79769313486231570e+308.


Booleano
 boolean false y true
 


De
0
a
65535,
donde
cada
valor
representa
un

Carácter
 char carácter
de
texto
de
acuerdo
con
la
codificación
 16
bits

usada.


Tabla
1.
Tipos
de
datos
básicos
en
Java


3.2. Definición
de
variables


De
acuerdo
con
la
necesidad,
es
posible
definir
variables
que
almacenarán
el
resultado
de

operaciones,
parámetros
y
otros
valores
que
se
requieran
para
la
solución
algorítmica
de

problemas.
La
sintaxis
es
la
siguiente:


<Tipo
de
dato>
<Nombre
de
la
variable>
(=<Valor
inicial>);


Por
ejemplo:

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


Nombres
de
variables:
los
nombres
son
una
secuencia
de
caracteres
de
texto
que
pueden

comenzar
con
letras,
con
el
signo
‘$’
o
con
el
signo
‘_’.
Hay
palabras
que
no
pueden
usarse

para
definir
nombres
de
variables,
dado
que
son
palabras
que
usa
el
lenguaje
Java
para


Adrian
Nicolás
Malaver
Barrera

2

definir
sus
propias
estructuras.
Estas
palabras
son
llamadas
palabras
reservadas
y
son
las

siguientes:


abstract continue for new switch


assert default goto package synchronized
boolean do if private this
break double implements protected throw
byte else import public throws
case enum instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp volatile
const float native super while

Valor
inicial:
Al
definir
una
variable
es
posible
asignarle
un
valor
inicial,
de
acuerdo
con
el

tipo
de
dato.
Nota
importante:
Las
variables
definidas
dentro
de
métodos,
en
este
caso,

dentro
del
método
main,
en
el
que
definimos
la
lógica
de
los
programas,
requieren
de
un

valor
inicial,
ya
que
Java
no
les
asigna
uno.



• Datos
enteros:
Valores
numéricos
enteros
positivos
o
negativos.
Por
defecto
están

en
base
decimal.
Para
definir
valores
en
base
octal
se
antepone
un
‘0’
al
valor.
Para

definir
valores
en
base
hexadecimal
se
antepone
‘0x’.

int x = 12;
long personas = 94674242;
byte dato = -123;
int h = 0x19fe; //6654 en base hexadecimal

• Datos
reales:
valores
numéricos
reales
positivos
y
negativos.
La
parte
decimal
se

separa
de
la
entera
con
punto
‘.’.
Para
definir
valores
de
tipo
flotante
es
necesario

colocar
‘f’
al
final
del
número.
Es
posible
usar
notación
científica.
Por
ejemplo,
el

número

4326.783
puede
ser
escrito
como
4.326783
x
103.
En
Java:
4.326783e3;

float valor = 1.452f;
double dato = 1.45e-6;
double numeroGrande = 9.87e230;


• Datos
booleanos:
false
o
true.

boolean llueve = true;
boolean cieloRojo = false;
double resultado = true;


• Caracteres
de
texto:
se
definen
entre
comillas
sencillas
('
').
Es
posible,
además,

usar
el
código
unicode
específico:
‘\u00F1’
es
igual
a
‘ñ’.


Adrian
Nicolás
Malaver
Barrera

3

Unico
de
es
un
estándar
internacional
que
asigna
un
valor
numérico
a
cada
uno
de

los
posibles
símbolos
que
podemos
representar;
no
solo
en
español,
sino
en

muchos
otros
idiomas.

char letra = 'A';
char arroba = '\u0041';
char otraLetra = 65;

En
este
caso,
se
presentan
tres
formas
posibles
de
hacer
referencia
al
símbolo
'A'.

• Cadenas
de
texto:
se
definen
entre
comillas
dobles
("
").
Las
utilizaremos

inicialmente
para
mostrar
información
al
usuario
de
nuestras
aplicaciones.

String palabra = “Hola”;
String otraPalabra = “Hola mundo”;

3.3 Asignaciones

Para
asignar
una
variable,
se
usa
el
operador
de
asignación
'='
de
forma
similar
a
la

asignación
de
valor
inicial.


<Nombre
de
la
variable>
=<Valor>;


Siempre
que
escribamos
asignaciones
en
el
lenguaje
Java,
usaremos
punto
y
coma
(;)
para

definir
su
finalización.
No
solo
al
definir
asignaciones,
sino
también
al
definir
variables
o

hacer
llamado
a
métodos
específicos.



Por
ejemplo:

f = 1.45f;
i = 23;
letra = 'W';


Las
reglas
para
los
valores
usados
son
las
mismas
que
para
los
valores
iniciales.
Las

variables
deben
haber
sido
definidas
previamente.


3.4 Expresiones

La
escritura
de
las
expresiones
en
Java
sigue
las
mismas
reglas
definidas
para
las

expresiones
en
pseudocódigo.
A
continuación
se
relacionan
los
operadores
principales

que
usaremos
a
lo
largo
del
curso.
Una
lista
más
detallada
puede
encontrarse
aquí

http://java.sun.com/docs/books/tutorial/java/nutsandbolts/operators.html.
Los

operadores
se
presentan
en
orden
de
prioridad
(del
más
importante
al
menos
importante

en
el
orden
de
evaluación).


Adrian
Nicolás
Malaver
Barrera

4

Operador
 Descripción


Incrementan
(++)
o
disminuyen
(--)
el
valor
de
una
variable
después
de

Operadores
 la
evaluación
de
la
expresión
que
los
contiene.
Por
ejemplo:

unitarios
de
 1 int x = 10, y;
incremento
 2 y = 15 + x++;
postfijos

(x++, x--)
 La
variable
x
vale
inicialmente
10.
El
resultado
de
la
línea
2
es
25
y
luego

se
hace
el
incremento.
Esto
significa
que
en
las
líneas
siguientes,
x
vale

16.

Operadores
 Cumplen
la
misma
función
que
los
anteriores,
con
la
excepción
de
que

unitarios
de
 primero
modifican
el
valor
antes
del
cálculo
de
la
expresión

incremento
 correspondiente.

infijos

 Para
el
ejemplo
anterior,
el
valor
almacenado
en
la
variable
y
sería
26
y

(x++, x--)
 no
25.


Operadores
 Operadores
binarios
de
multiplicación,
división
y
módulo.
Este
último

multiplicativos
 funciona
de
manera
equivalente
al
operador
“MOD”
usado
previamente

(*, /, %)
 en
expresiones.

Operadores

aditivos
 Operadores
binarios
de
resta
y
suma
usados
en
tipos
de
datos
numéricos.

(+,-)

Operadores
 Operadores
aplicados
a
tipos
de
datos
que
definen
relaciones
de
orden,

relacionales
 como
tipos
numéricos
y
caracteres
de
texto.
El
resultado
de
estos

(<,>,<=,>=)
 operadores
es
de
tipo
booleano.

Operadores
 Operadores
de
equivalencia.
El
resultado
de
estos
operadores
es
de
tipo

de
igualdad
 booleano.

(==,!=)

Operador

lógico
Y
 Permite
realizar
la
operación
lógica
'Y'
vista
en
expresiones
booleanas.
Se

(&&)
 puede
aplicar
a
operandos
de
tipo
booleano.


Operador

lógico
O
 Permite
realizar
la
operación
lógica
'O'
vista
en
expresiones
booleanas.
Se

(||)
 puede
aplicar
a
operandos
de
tipo
booleano


Permiten
realizar
operaciones
aritméticas
y
asignación
al
mismo
tiempo.

Por
ejemplo:

Operadores

de
asignación
 1 int x = 10;
(=,+=,- 2 x += 15;
=,*=,/=)
 3 x *= 3;

La
línea
2
es
equivalente
a
x = x + 15;
La
línea
3
es
equivalente
a
x = x * 3;

4 Referencia
de
operaciones
de
lectura
y
escritura
por
consola

Adrian
Nicolás
Malaver
Barrera

5

Con
el
objetivo
de
capturar
información
de
un
usuario
o
de
presentar
información
en

pantalla,
se
han
definido
operaciones
en
Java
que
permiten
realizar
esta
tarea
en
forma

sencilla.


Presentación
de
información
en
la
consola
de
texto


Cuando
sea
necesario
presentar
el
resultado
de
una
operación
o
cualquier
información
al

usuario,
usaremos
los
métodos
print
y
println que
pertenecen
a
la
funcionalidad

básica
que
ofrece
Java.


Por
ejemplo:

1 int x = 10;
2 float f = 1.45f;
3 long l = 34543566;
4 String s = “Hola”;

5 System.out.println(f);
6 System.out.println(l);
7 System.out.println(x);
8 System.out.println(s);
9 System.out.println(“El resultado es: ” + f);

Al
ejecutar
este
código,
la
salida
en
la
consola
de
texto
sería:

1.45
34543566
10
Hola
El resultado es: 1.45

Las
líneas
5,
6,
7
y
8
muestran
el
contenido
de
las
variables
en
pantalla.
También
es

posible
mostrar
cadenas
de
texto
que
acompañen
al
contenido
de
las
variables,
como

sucede
en
la
línea
9.



Cuando
se
usa
el
método
print
en
vez
de
println,
no
se
baja
la
línea
después
de
escribir

cada
variable.
Si
se
usara
print
la
salida
sería:

1.453454356610HolaEl resultado es: 1.45


Lectura
de
información
de
consola

Cuando
sea
necesario
capturar
información
del
usuario,
por
ejemplo
para
establecer

valores
para
las
variables
de
entrada
de
un
algoritmo,
debemos
hacer
lo
siguiente:

1. Definir
un
objeto
Scanner,
que
cuenta
con
métodos
para
leer
información
de
teclado:

Scanner scanner = new Scanner(System.in);

2. Definir
y
asignar
valores
para
las
variables
que
sean
necesarias,
usando
los
métodos

adecuados
del
objeto
de
la
clase
Scanner:

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

Adrian
Nicolás
Malaver
Barrera

6

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

Después
de
la
ejecución
de
cada
línea,
quedará
almacenado
el
valor
leído
en
cada

variable.
Para
más
información,
puede
consultarse
la
documentación
de
la
clase

scanner
de
Java:
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Scanner.html.


5 Invocación
de
métodos

Es
posible
construir
expresiones
que
involucren
la
realización
de
tareas
comunes
como

raíces
cuadradas,
valores
absolutos,
entre
otras.
Lo
haremos
de
la
siguiente
forma:


<Variable
de
tipo
adecuado>
=
<Nombre
del
método>(<Parámetros>);


Es
necesario
identificar
el
tipo
de
variable
que
debería
ser
usado,
de
acuerdo
con
el
tipo

de
dato
que
retorna
un
método
particular.
De
igual
manera,
hay
métodos
que
no
tienen

valor
de
retorno
y,
por
lo
tanto,
no
podrían
ser
usados
para
asignar
valores
a
variables.


Los
métodos
relacionados
con
funciones
matemáticas,
pueden
ser
encontrados
en
la
clase

“Math”
y
se
usan
de
acuerdo
con
los
parámetros
que
requieren1.
Por
ejemplo,
si
se

requiere
calcular
la
raíz
cuadrada
de
95738,
lo
que
se
haría
es
lo
siguiente:

double x = 0.0f;

x = Math.sqrt(95738);

Siempre,
al
usar
métodos
como
este,
es
recomendable
leer
la
referencia
sobre
el
uso,

parámetros
y
valor
de
retorno
para
estar
seguros
de
que
es
el
método
más
adecuado.


Es
posible
usar
este
tipo
de
métodos
en
expresiones
que
permitan
realizar
operaciones

más
complejas:

d = x*x + Math.sqrt(y * y) + 98 * z;

6 Comentarios

En
Java,
como
en
la
mayoría
de
lenguajes
de
programación,
es
posible
hacer
comentarios

para
explicar
secciones
de
código,
o
agregar
anotaciones
para
futuras
modificaciones.



Los
comentarios
pueden
hacerse
para
una
sola
línea
o
para
un
bloque
de
texto.


Comentarios
de
una
línea:
Se
hacen
usando
"//".
Todo
el
texto
subsiguiente
hasta
el
final

de
la
línea
no
se
tiene
en
cuenta
al
compilar
el
código
presente
en
el
archivo.
































































1

Para
información
sobre
los
métodos
definidos
en
la
clase
Math:

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Math.html
[Recuperado:
15
de
Enero
de
2010]


Adrian
Nicolás
Malaver
Barrera

7

int x = 8; //x almacenará el número de personas que inicialmente es 8
float t = 3.45; //La temperatura t será inicialmente 3.45ºC
//x = 10;

Comentarios
de
bloque:
Se
hacen
usando
"/*"
y
"*/".
Cualquier
texto
encerrado
entre

estos
dos
elementos
no
será
tenido
en
cuenta
al
compilar
el
código
presente
en
el
archivo.

/*El propósito del siguiente bloque de código 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;
.
.
.

/*
Código generado por: nmalaver
Fecha: 30-02-08
*/
.
.
.

Usando
comentarios,
además,
es
posible
ocultar
temporalmente
un
bloque
de
código
que

no
requerimos
o
que
no
está
listo
para
su
ejecución:

/*
y = 17 * 1.6180 + z;
x = 100*34 + 18*(45+5)/y
*/

Adrian
Nicolás
Malaver
Barrera

8


También podría gustarte