| Artículos | 01 JUL 1998

Sintaxis del lenguaje Java

Tags: Histórico
Curso de Java para Internet (3)
Jaime Peña.

En el presente artículo nos detendremos en la sintaxis básica del lenguaje Java. Si usted es programador de C/C++, verá muchas similitudes. Si conoce cualquier otro lenguaje, también notará semejanzas en las estructuras del lenguaje, aunque deberá detenerse algo más a la hora de observar detalles sintácticos.

Algunos de los aspectos más relevantes del lenguaje Java —al margen de su capacidades generales y de enfoque multiplataforma— se pueden resumir en lo siguiente. Primero, no hay funciones como tales, sólo métodos dentro de clases; no existe por tanto el concepto de función global. Segundo, el lenguaje Java es sensible a mayúsculas: no es lo mismo calcSuma que calcsuma. Tercero, no encontrará los punteros habituales del lenguaje C/C++. Cuarto, no hay destructores de clase y automáticamente se recuperará la memoria dinámica asignada.

Tipos de datos y variables

Los tipos de datos básicos en lenguaje Java son muy similares a los disponibles en el lenguaje C/C++, con la ausencia de cadenas, que se tratan como una clase específica, no como un tipo básico. Por otra parte, es reseñable la ausencia de punteros a variables y la protección de memoria que impide la corrupción por sobrepasar los límites de una matriz. Ciñéndonos ya a lo disponible en Java, los tipos básicos son entero, coma flotante, carácter, booleano y cadena de caracteres. También se definen matrices de una o varias dimensiones:

Entero: se declaran como byte, short, int y long, véase la Tabla 1, en la que se indican sus límites.
Coma flotante: Se declaran como float y double, véase la Tabla 1, en la que se indican sus límites.
Booleano: se declaran como boolean, pueden adoptar el valor de verdadero o falso —true o false—.
Carácter: se declaran como char, contienen un carácter alfanumérico o un carácter especial, tal como se recoge en la Tabla 1.
Cadena: se declaran como String, observe que realmente no se trata de un tipo de datos básico, es una clase que está enfocada a la gestión de cadenas —encapsula el tratamiento de una matriz de caracteres, que es el contenido de una cadena—. La clase String dispone de un gran número de métodos para gestionar conversiones, inserción y extracción de subcadenas, etc.
Matrices: se declara incluyendo corchetes al final de una declaración de un tipo básico o de una clase. Las matrices pueden ser multidimensionales, en la Tabla 1 se recoge, esquemáticamente, el modo de declararlas.
Caracteres especiales: tampoco es un tipo de dato, son caracteres que tienen un tratamiento y declaración peculiar. Los disponibles en Java se recogen en la Tabla 1.

La declaración de variables tiene que estar siempre dentro del ámbito de una clase, no hay, por tanto, el concepto de variable global. La sintaxis general es del tipo:

int var;
int var1, var2;

Como se aprecia, podremos declarar una variable en una línea finalizada en punto y coma, o declarar varias del mismo tipo, en una única línea, separadas por comas. También cabe la posibilidad de definir variables de ámbito más restringido, como aquellas que servirán para controlar un bucle —véase más abajo—; esto es:

for (int var=min; var < max; var++) {
// código a iterar
}

Implicaría que var tiene un ámbito de existencia sólo dentro de la iteración en el bucle for. Durante la declaración de una variable, también tenemos oportunidad de definir cuál será su ámbito de acceso; esto es, desde dónde y quién puede modificar su valor. Las posibilidades son public (la variable —o el método— será accesible por parte de todas las clases externas que utilicen objetos de esa clase), private (la variable —o el método— no será accesible por parte de las clases restantes externas, incluyendo las que de ella deriven; es el más alto nivel de restricción) o protected (la variable —o el método— será accesible por parte de las clases que deriven de en la que está declarada).

La inicialización de variables puede llevarse a cabo el momento de su declaración, de la forma int var=0; Respecto a las cadenas de caracteres —derivadas de la clase String—, hay varias posibilidades de inicializarlas. Hemos recogido todas ellas en el ejemplo del Listado 10; observe que en general se trata de las que siguen:

- Adjudicarles un valor en la declaración, al estilo:

String a3 = “Cadena 3”;

- Utilizar el operador new para reservar el espacio de memoria y, posteriormente, asignarles un contenido mediante el operador de igualdad:

String a2 = new String ();
// código del programa
a2 = “Cadena 2”;

- Inicialmente declararla y posteriormente utilizar new a la hora de asignarle un contenido:

String a1;
// código del programa
a1 = new String (“Cadena 1”);

- Finalmente, simplemente declare la cadena y asígnele un contenido con el operador de igualdad:

String a4;
// código del programa
a4 = “Cadena 4”;

Estructuras de control de flujo

Dentro de las estructuras de control, nos encontraremos con las bifurcaciones (condicionales) y los bucles. Las bifurcaciones servirán para orientar la secuencia de un programa en función de valores de variables, los bucles se emplean para iterar —repetir— procesos en tanto en cuanto se cumpla —o no se cumpla— una condición dada. El bucle más tradicional es el for, habitual en numerosos lenguajes de programación; su sintaxis es:

for (var=inicial; var < final; incremento) {
// código a iterar
}

Esto hace que se comience con un valor de la variable de control inicial, hasta que se alcance un valor final —puede que sea var < final o var=final—, incrementándose de cada vez según un patrón, que es el tercer parámetro, usualmente de uno en uno (var++, sería el código a especificar). Un ejemplo de uso se recoge en el Listado 11. Dentro de un bucle for podremos salir de él antes de que se alcance la condición final, si es que se cumple alguna otra alternativa, mediante órdenes del tipo conti

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información