La sintaxis de un lenguaje define cómo se usarán las palabras claves, los operadores y las variables para construir y evaluar expresiones. La sintaxis de Java especifica como se escribirán los siguientes elementos:
- Comentarios.
- Identificadores.
- Palabras clave.
- Literales.
- Expresiones y operadores.
- Variables y tipos de datos.
- Bloques y sentencias.
- Comentarios.
Java ofrece tres tipos de comentarios: dos para comentarios regulares en el código fuente y uno para la documentación especial del sistema javadoc.
COMENTARIOS DE VARIAS LINEAS.
Los comentarios de varias líneas se incluyen entre los símbolos /* y */, como en C y C++.
/*
Este es un ejemplo de
un comentario de varias
líneas.
*/
COMENTARIOS DE UNA SOLA LINEA.
Para comentariar una sola línea se utiliza la doble diagonal //. El comentario se inicia cuando se encuentra la doble diagonal y continua hasta el final de la línea.
// Este es un comentario de una sola línea
//Este es otro comentario
COMENTARIOS PARA DOCUMENTACION.
Realmente este tipo de comentario es el mismo que el de varias líneas con la diferencia de que la información que contenga será usada para un procesamiento especial que lleva a cabo la herramienta javadoc.
Se distingue del comentario de varias líneas porque se agrega un asterisco adicional al inicio del comentario.
/**
Este tipo de comentarios
los utiliza la
herramienta javadoc
*/
IDENTIFICADORES
Un identificador es una secuencia de caracteres comenzando por una letra y conteniendo letras y números. Los identificadores no se limitan a los caracteres ASCII, si el editor de texto lo soporta, se pueden escribir identificadores utilizando caracteres Unicode.
Las letras Java incluyen los caracteres ASCII A-Z y a-z. Los digitos Java incluyen los digitos ASCII 0-9. Para propósitos de construir identificadores, los caracteres ASCII $ y _ son también considerados letras Java.
No hay un límite en lo concerniente al número de caracteres que pueden tener los identificadores.
Estos son algunos ejemplos de identificadores válidos:
_varx $var1 MAX_NUM var2
PALABRAS CLAVES
La siguiente tabla muestra las palabras claves de Java, éstas son reservadas y no pueden ser utilizadas como identificadores.
Abstract |
default |
if |
private |
this |
Boolean |
do |
implements |
protected |
throw |
Break |
double |
import |
public |
throws |
Byte |
else |
instanceof |
return |
transient |
Case |
extends |
int |
short |
try |
Catch |
final |
interface |
static |
void |
Char |
finally |
long |
strictfp** |
volatile |
Class |
float |
native |
super |
while |
const* |
for |
new |
switch |
|
Continue |
goto* |
package |
synchronized |
|
* Son palabras claves de Java que no son usadas actualmente.
** Palabra clave agregada en Java 2 true, false, and null no son palabras claves pero son palabras reservadas, así que tampoco pueden ser utilizadas como identificadores.
Literales
Una literal es un valor constante formado por una secuencia de caracteres. Cualquier declaración en Java que defina un valor constante -un valor que no pueda ser cambiado durante la ejecución del programa- es una literal.
Son ejemplos de literales los números, los caracteres y las cadenas de caracteres.
LITERALES NUMERICAS
Se pueden crear literales numéricas a partir de cualquier tipo de dato primitivo.
Ej.
123 //literal int
123.456 //literal double
123L //literal long
123.456F //literal float
Literales booleanas
Las literales boolenas consisten de las palabras reservadas true y false.
Literales de caracteres
Las literales de caracteres se expresan por un solo caracter entre comillas sencillas
Ej. 'a', '%', '7'
Literales de cadena
Una cadena es una combinación de caracteres. Las cadenas en Java son instancias de la clase String, por ello cuentan con métodos que permiten combinar, probar y modificar cadenas con facilidad.
Las literales de cadena se representan por una secuencia de caracteres entre comillas dobles.
Ej. "hola", "cadena123", "12345"
EXPRESIONES Y OPERADORES
EXPRESION
Una expresión es una combinación de variables, operadores y llamadas de métodos construida de acuerdo a la sintaxis del lenguaje que devuelve un valor.
El tipo de dato del valor regresado por una expresión depende de los elementos usados en la expresión.
OPERADORES
Los operadores son símbolos especiales que por lo común se utilizan en expresiones. La tabla siguiente muestra los distintos tipos de operadores que utiliza Java.
Operador |
Significado |
Ejemplo |
Operadores aritméticos
|
+ |
Suma |
a + b |
- |
Resta |
a - b |
* |
Multiplicación |
a * b |
/ |
División |
a / b |
% |
Módulo |
a % b |
Operadores de asignación
|
= |
Asignación |
a = b |
+= |
Suma y asignación |
a += b (a=a + b) |
-= |
Resta y asignación |
a -= b (a=a - b) |
*= |
Multiplicación y asignación |
a *= b (a=a * b) |
/= |
División y asignación |
a / b (a=a / b) |
%= |
Módulo y asignación |
a % b (a=a % b) |
Operadores relacionales
|
== |
Igualdad |
a == b |
!= |
Distinto |
a != b |
< |
Menor que |
a < b |
> |
Mayor que |
a > b |
<= |
Menor o igual que |
a <= b |
>= |
Mayor o igual que |
a >= b |
Operadores especiales
|
++ |
Incremento |
a++ (postincremento)
++a (preincremento) |
-- |
Decremento |
a-- (postdecremento)
--a (predecremento) |
(tipo)expr |
Cast |
a = (int) b |
+ |
Concatenación de cadenas |
a = "cad1" + "cad2" |
. |
Acceso a variables y métodos |
a = obj.var1 |
( ) |
Agrupación de expresiones |
a = (a + b) * c |
La tabla siguiente muestra la precedencia asignada a los operadores, éstos son listados en orden de precedencia. Los operadores en la misma fila tienen igual precedencia
Operador |
Notas |
. [] () |
Los corchetes se utilizan para los arreglos |
++ -- ! ~ |
! es el NOT lógico y ~ es el complemento de bits |
new (tipo)exp. |
new se utiliza para crear instancias de clases |
* / % |
Multiplicativos |
+ - |
Aditivos |
<< >> >>> |
Corrimiento de bits |
< > <= >= |
Relacionales |
== != |
Igualdad |
& |
AND (entre bits) |
^ |
OR exclusivo (entre bits) |
| |
OR inclusivo (entre bits) |
&& |
AND lógico |
|| |
OR lógico |
? : |
Condicional |
= += -= *= /= %= &= ^= |= <<= >>= >>>= |
Asignación |
Todos los operadores binarios que tienen la misma prioridad (excepto los operadores de asignación) son evaluados de izquierda a derecha. Los operadores de asignación son evaluados de derecha a izquierda.
VARIABLES Y TIPOS DE DATOS (1 de 3)
Las variables son localidades de memoria en las que pueden almacenarse datos. Cada una tiene un nombre, un tipo y valor. Java tiene tres tipos de variables: de instancia, de clase y locales.
VARIABLES DE INSTANCIA
Se utilizan para definir los atributos de un objeto.
VARIABLES DE CLASE
Son similares a las variables de instancia, con la excepción de que sus valores son los mismos para todas las instancias de la clase.
VARIABLES LOCALES
Se declaran y se utilizan dentro de las definiciones de los métodos. A diferencia de otros lenguajes, Java no tiene variables globales, es decir , variables que son vistas en cualquier parte del programa.
VARIABLES Y TIPOS DE DATOS (2 de 3)
Java es un lenguaje "fuertemente tipeado o tipificado" por lo que es necesario especificar el tipo de dato para cada una de las variables que se vayan a utilizar en un programa. El nombre de la variable debe de ser un identificador válido, y se usa para referirse a los datos que contiene una variable.
El tipo de una variable determina los valores que puede almacenar y las operaciones que se pueden hacer sobre ella. Para dar a una variable un tipo y un nombre, se escribe una declaración de una variable, que tiene la siguiente forma:
TipoDato nombreVariable;
Ej.
String nombre; // variable de tipo String
int edad; // variable de tipo int
Punto p; // variable del tipo Punto
Se pueden escribir varios nombres de variables del mismo tipo en una sola línea,
int x, y, z;
String nombre, apellido;
También se puede asignar un valor inicial a las variables al momento de crearlas,
String nombre, apellido="MiApellido";
int edad = 24;
VARIABLES Y TIPOS DE DATOS (3 de 3)
Las variables en Java pueden ser uno de los siguientes tipos:
Tipo primitivo
Una variable de tipo primitivo contiene un solo valor del tamaño y formato apropiado de su tipo: un número, un carácter, o un valor booleano. La tabla siguiente lista los tipos de datos primitivos soportados por Java.
Tipo |
Descripción |
Tamaño/Formato |
Números enteros
|
Byte |
Entero byte |
8-bit 2's |
short |
Entero corto |
16-bit 2's |
Int |
Entero |
32-bit 2's |
Long |
Entero largo |
64-bit 2's |
Números reales
|
float |
Punto flotante |
32-bit IEEE 754 |
double |
Punto flotante de doble presición |
64-bit IEEE 754 |
Otros tipos |
Char |
Un solo carácter |
16-bit caracteres Unicode |
boolean |
Un valor booleano |
true o false |
En Java, cualquier numérico con punto flotante automáticamente se considera double. Para que sea considerado float se agrega una letra "f" o "F" al final del valor.
double d = 10.50;
float f = 10.50F;
REFERENCIA
Los arreglos, las clases y las interfaces son del tipo referencia. El valor de una variable del tipo referencia es una dirección de un conjunto de valores representados por una variable. Las referencias en Java no son como en C++, éstas son identificadores de instancias de alguna clase en particular.
Ej.
String cad; //referencia a un objeto de la clase String
Punto p; //referencia a un objeto de la clase Punto
int[] var_arreglo; //referencia a un arreglo de enteros
BLOQUES Y SENTENCIAS
SENTENCIAS
Una instrucción o sentencia representa la tarea más sencilla que se puede realizar en un programa.
SENTENCIAS DE EXPRESION
Los siguientes tipos de expresiones pueden ser hechas dentro de una sentencia terminando la expresión con punto y coma (;):
* Expresiones de asignación
* Cualquier uso de los operadores ++ y --
* Llamada de métodos
* Expresiones de creación de objetos
Esta clase de sentencias son llamadas sentencias de expresión.
Ej.
valorA = 8933.234; // asignación
valorA++; // incremento
System.out.println(valorA); // llamada a un método
Integer objInt = new Integer(4); // creación de objetos
Sentencias de declaración de variables
Las sentencias de declaración de variables se utilizan para declarar variables.
Ej.
int bValue;
double aValue = 8933.234;
String varCad;
SENTENCIAS DE CONTROL DE FLUJO
Las sentencias de control de flujo determinan el orden en el cual serán ejecutadas otro grupo de sentencias. Las sentencias if y for son ejemplos de sentencias de control de flujo.
BLOQUES DE SENTECIAS
Un bloque es un grupo de cero o más sentencias encerradas entre llaves ( { y } ). Se puede poner un bloque de sentencias en cualquier lugar en donde se pueda poner una sentencia individual.
Las sentencias de control de flujo se pueden utilizar para ejecutar sentencias condicionalmente, para ejecutar de manera repetida un bloque de sentencias y en general para cambiar la secuencia normal de un programa.
LA SENTENCIA IF
La sentencia if permite llevar a cabo la ejecución condicional de sentencias.
if ( Expresion ){
sentencias;
}
Se ejecutan las sentencias si al evaluar la expresión se obtiene un valor booleano true.
if ( Expresion ){
sentenciasA;
}
else{
sentenciasB;
}
Si al evaluar la expresión se obtiene un valor booleano true se ejecutarán las sentenciasA, en caso contrario se ejecutarán las sentenciasB.
LA SENTENCIA SWITCH
Cuando se requiere comparar una variable con una serie de valores diferentes, puede utilizarse la sentencia switch, en la que se indican los posibles valores que puede tomar la variable y las sentencias que se tienen que ejecutar sí es que la variable coincide con alguno de dichos valores.
switch( variable )
{
case valor1:
sentencias;
break;
case valor2:
sentencias;
break;
...
case valorN:
sentencias;
break;
default:
sentencias;
}
Cada case ejecutará las sentencias correspondientes, con base en el valor de la variable, que deberá de evaluarse con valores de tipo byte, char, short o int.
Si el valor de la variable no coincide con ningún valor, entonces se ejecutan las sentencias por default, sí es que las hay. La sentencia break al final de cada case transfiere el control al final de la sentencia switch; de esta manera, cada vez que se ejecuta un case todos los enunciados case restantes son ignorados y termina la operación del switch.

|