PROGRAMANDO CON JAVA


¡HOLA JAVAMANÍACOS! SEGUIMOS CON EL CURSO DE JAVA YA EN SU TERCERA ENTREGA, HEMOS HABLADO DE LOS APPLETS DE JAVA Y COMO METERLOS EN UNA PÁGINA WEB, PERO ¿COMO SE PROGRAMA EN JAVA? YA ES HORA DE QUE EMPECEMOS CON EL LENGUAJE DE PROGRAMACIÓN EN SI.

ELEMENTOS BÁSICOS DEL LENGUAJE
Como en cualquier otro lenguaje de programación, un programa Java es un fichero de texto que contiene una serie de elementos léxicos propios del lenguaje dispuestos de acuerdo con una sintaxis determinada.
Las relgas que determinan la validez de los elementos léxicos, junto con las que definen qué combinaciones de esos elementos tienen una sintaxis correcta, constituyen la definición gramatical del lenguaje.

Los elementos léxicos de un lenguaje tienen un nombre muy raro y sin sentido alguno, se llaman ¡tokens!, a quien se le ocurriría llamarlos así, ¡vaya un lumbreras! Bueno, pues en Java, los "tokens" se dividen en en identificadores, palabras clave, expresiones literales, operadores y separadores.

Indentificadores
La teoría dice que un identificador hace referencia a una entidad determinada del programa, como puede ser una clase, un objeto, un método o una varialbe.
El primer carácter de un identificador en Java ha de ser necesariamente una letra mayúscula o minúscula, un subrayado ("_") o el símbolo del dolar ("$").
Los caracteres que siguen al inicial pueden ser tanto los anteriores como dígitos decimales. Dado que Java emplea el juego de caracteres Unicode (estándar que incluye muchos caracteres de idiomas distintos del ingles) es posible emplear caracteres como la "ñ". De hecho, se puede emplear cualquier carácter con un código Unicode mayor  que 00C0 (esto es hexadecimal), con una pocas excepciones.

Palabras clave
Las palabras clave o "keywords" son un conjunto de símbolos reservados por el lenguaje que no pueden ser empleados para otros propósitos que los definidos en el mismo. Si has programado en algún otro lenguaje de programación ya conoceras que significa esto de las palabras claves, ahora vamos a ver cuales son las de Java.

PALABRAS CLAVES DE JAVA

abstract, boolean, break, byte, byvalue, case, catch, char, class, const, continue, default, do, double, else, extends, false, final, finally, float, for, goto, if, implements, import, instanceof, int, interface, long, native, new, null, package, private, protected, public, return, short, static, super, switch, syncronized, this, threadsafe, throw, transient, true, try, void, while.

Expresiones literales
Las expresiones literales son conjuntos de caracteres situados en el código fuente que representan valores particulares de datos de los tipos predefinidos, y que suelen emplear en comparaciones y para inicializar variables, En Java se pueden emplear expresiones literales para datos de tipo carácter, strings, enteros, punto flotante y valores booleanos.

Ahora vamos a ver todos estos tipos... buff.

    Expresiones literales de tipo carácter.
Las de tipo caracter se pueden usar junto con el tipo predefinido "char", y representan un único caráter Unicode. La representación interna de los caracteres es un número de 16 bits. El modo normal de definir un carácter accesible desde teclado es escribirlo rodeado por comillas simples, si se va a usar como carácter aislado.
Cuando el carácter no es accesible de este modo, se puede emplear un código Unicode, octal o hexadecimal, empleándose para ello el carácter "\". El formato de los códigos de escape es \uddd (ya se que no tiene sentido eso del uddd, pero es que asi son los lumbreras de los programadores) para caracteres definidos en Unicode, \ddd para caracteres definidos en octal y \xdd para caracteres definidos en hexadecimal.
Tanto para una expresión literal de tipo carácter como para definir una expresión literal de tipo "string", puede ser necesario introducir caracteres no imprimibles o caracteres que se usan además como delimitadores. Para poder usarlos, se definen las siguientes secuencias de escape:


SECUENCIAS DE ESCAPE

CARACTER                                    SECUENCIA
\                                                         \\
'                                                         \'
"                                                         \"
Retorno del carro (CR)                         \r
Line Feed (LF)                                    \n
Form Feed (FF)                                   \f
Backspace (BS)                                   \b
Tabulador (HT)                                   \t

    Expresiones literales para cadenas de caracteres
Las cadenas de caracteres se representan en las expresiones literales correspondientes como una secuencia de cero o más caracteres flanqueados por comillas, supongo que se has programado alguna vez sabras esto de las cadenas de caracteres en Metodología de la Programación me enseñaron a escribir cadenas de caracteres asi:

Escribir "Tu abuela fuma"

La cadena de caracteres es "Tu abuela fuma" lo de escribir lo tienes que poner como te indique el lenguaje con el que estés programando.

    Expresiones literales para valores lógicos (booleanos)
Existen dos valores booleanos, true y false. Estos valores no son strings y no pueden ser convertidos a literales del tipo String. Siempre se emplean en relación con objetos de tipo boolean.
Cualquiera que haya dado un curso de informática en condiciones, (no estos que te dicen, "esto es un ratón, esto un teclado, y esto tus huevos", sino uno que te enseñe desde las matemáticas diriginas a la informática, hasta la programación.) sabrá que es esto de boolean y acabará hasta los cojones de ello.

    Expresiones literales para valores enteros
Despues del cabreo que me he llevado con el buleaaaaaan de los huevos, vamos a ver que es esto.
Java permite representar un valor entero mediante una expresión literal en tres bases distintas: Octal
(base 8), decimal (base 10) y hexadecimal (base 16).

Un entero representado en octal comienza siempre por un cero, al que le siguen uno o más dígitos de 0 a 7. Un ejemplo 0666 "Is the number of the beast"

La representación de un entero en base 10 es la de toda la vida, la única precaución  que hay que tener es no poner ningún cero a la izquierda si el resto de los dígitos del número están comprendidos entre 0 y 7, con el fin de que el compilador pueda distinguirlo de un numero octal. Un ejemplo 1999.

Para representar un número hexadecimal se empieza con 0x su secuencia de dígitos. Se emplea la notación habitual, con las letras A a F (da igual si son mayusculas o minusculas) para representar los números del 10 al 15, o sea la "a" es el 10, la "b" es el 11 y así hasta la "f". Un ejemplo puede ser 0xFFA.

El compilador emplea uno u otro de los tipos predefinidos para las expresiones literales enteras en función del número mínimo de bits que se necesitan para representar el número en binario. Así, los números que requieren hasta 8 bits se consideral del tipo "byte", los que requieren hasta 16 del tipo "short", los que necesitan hasta 32 bits se asocian al tipo "int" y los de hasta 64 bits al tipo "long".

    Expresiones literales para valores de punto flotante
En Java, las expresiones literales que representan un número en punto flotante constan de las siguientes partes:

Parte entera, secuencia de dígitos decimales
Punto decimal
Parte fraccionaria, secuencia de dígitos decimales
Exponente, una E mayúscula o minúscula seguida por un entero con signo en base 10
Un expecificador de precisión

Algunas de estas partes son opcionales, un número en punto flotante ha de tener, al menos, una parte entera y un punto decimal o un exponente.

El especificaodr de precisión es opcional y determina la precisión empleada para la representación interna del número. Cuando el especificador es F o f, o cuando no está presente, el número se considera como de precisión simple. Si el especificaodr es D o d, el número se considera como de doble precisión. En el primer caso, el tipo de datos Java correspondiente es "float", y en el segundo caso "double".

BUENO Y YA ESTÁ ESTO ES TODO POR AHORA, EN EL PROXIMO NÚMERO VAMOS A POR LOS DATOS PREDEFINIDOS, ESTOS DE TIPOS ENTEROS, PUNTO FLOTANTE Y YO QUE SE MÁS COSAS (PIDO PERDÓN POR LOS TACOS QUE HAY EN ESTE ARTÍCULO, PERO ES QUE ESTOY CABREADO POR QUE ES SÁBADO Y HACE MALÍSIMO ¡CON LO BUENO QUE HIZO AYER!).