##
PROGRAMACION EN JAVA

Cuando se programa en Java, se coloca todo el código en métodos, de la misma forma que se escriben funciones en lenguajes como C.

### Comentarios

En Java hay tres tipos de comentarios:

        // comentarios para una sola línea

        /* comentarios de una o
            más líneas
        */

        /** comentario de documentación, de una o más líneas
        */

Los dos primeros tipos de comentarios son los que todo programador conoce y se utilizan del mismo modo. Los comentarios de documentación, colocados inmediatamente antes de una declaración (de variable o función), indican que ese comentario ha de ser colocado en la documentación que se genera automáticamente cuando se utiliza la herramienta de Java, javadoc. Dichos comentarios sirven como descripción del elemento declarado permitiendo generar una documentación de nuestras clases escrita al mismo tiempo que se genera el código.

En este tipo de comentario para documentación, se permite la introducción de algunos tokens o palabras clave, que harán que la información que les sigue aparezca de forma diferente al resto en la documentación.

### Identificadores

Los identificadores nombran variables, funciones, clases y objetos; cualquier cosa que el programador necesite identificar o usar.

En Java, un identificador comienza con una letra, un subrayado (_) o un símbolo de dólar ($). Los siguientes caracteres pueden ser letras o dígitos. Se distinguen las mayúsculas de las minúsculas y no hay longitud máxima.

Serían identificadores válidos:

        identificador
        nombre_usuario
        Nombre_Usuario
        _variable_del_sistema
        $transaccion

y su uso sería, por ejemplo:

        int contador_principal;
        char _lista_de_ficheros;
        float $cantidad_en_Ptas;

Palabras clave
Las siguientes son las palabras clave que están definidas en Java y que no se pueden utilizar como indentificadores:

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

Palabras Reservadas
Además, el lenguaje se reserva unas cuantas palabras más, pero que hasta ahora no tienen un cometido específico. Son:

        cast        future      generic     inner
        operator    outer       rest        var

### Literales

Un valor constante en Java se crea utilizando una representación literal de él. Java utiliza cinco tipos de elementos: enteros, reales en coma flotante, booleanos, caracteres y cadenas, que se pueden poner en cualquier lugar del código fuente de Java. Cada uno de estos literales tiene un tipo correspondiente asociado con él.

Enteros:

        byte  		8 bits  		complemento a dos
        short  		16 bits  		complemento a  dos
        int  		32 bits  		complemento a dos
        long  		64 bits  		complemento a dos
        Por ejemplo:	21      077     0xDC00

Reales en coma flotante:

        float  		32 bits  		IEEE 754
        double  		64 bits  		IEEE 754
        Por ejemplo:	3.14    2e12    3.1E12

Booleanos:

        true
        false

Caracteres:

        Por ejemplo:	a       \t      \u????    [????] es un número unicode

Cadenas:

        Por ejemplo:	"Esto es una cadena literal"

### Arrays

Se pueden declarar en Java arrays de cualquier tipo:

        char s[];
        int iArray[];

Incluso se pueden construir arrays de arrays:

        int tabla[][] = new int[4][5];

Los límites de los arrays se comprueban en tiempo de ejecución para evitar desbordamientos y la corrupción de memoria.

En Java un array es realmente un objeto, porque tiene redefinido el operador []. Tiene una función miembro: length. Se puede utilizar este método para conocer la longitud de cualquier array.

        int a[][] = new int[10][3];
        a.length;         /* 10 */
        a[0].length;      /*  3 */

Para crear un array en Java hay dos métodos básicos. Crear un array vacío:

        int lista[] = new int[50];

o se puede crear ya el array con sus valores iniciales:

        String nombres[] = {
            "Juan","Pepe","Pedro","Maria"
            };

Esto que es equivalente a:

        String nombres[];
        nombres = new String[4];
        nombres[0] = new String( "Juan" );
        nombres[1] = new String( "Pepe" );
        nombres[2] = new String( "Pedro" );
        nombres[3] = new String( "Maria" );

No se pueden crear arrays estáticos en tiempo de compilación:

        int lista[50];  // generará un error en tiempo de compilación

Tampoco se puede rellenar un array sin declarar el tamaño con el operador new:

        int lista[];
        for( int i=0; i < 9; i++ )
            lista[i] = i;

Es decir, todos los arrays en Java son estáticos. Para convertir un array en el equivalente a un array dinámico en C/C++, se usa la clase vector, que permite operaciones de inserción, borrado, etc. en el array.

### Operadores

Los operadores de Java son muy parecidos en estilo y funcionamiento a los de C. En la siguiente tabla aparecen los operadores que se utilizan en Java, por orden de precedencia:

        .       []      ()
        ++      --
        !       ~       instanceof
        *       /       %
        +       -
        <<      >>      >>>
        <       >       <=       >=       ==       !=
        &       ^       |
        &&      ||
        ?  :
        =       op=     (*=     /=      %=      +=      -=      etc.)    ,

Los operadores numéricos se comportan como esperamos:

        int + int = int

Los operadores relacionales devuelven un valor booleano.

Para las cadenas, se pueden utilizar los operadores relacionales para comparaciones además de + y += para la concatenación:

        String nombre = "nombre" + "Apellido";

El operador = siempre hace copias de objetos, marcando los antiguos para borrarlos, y ya se encargará el garbage collector de devolver al sistema la memoria ocupada por el objeto eliminado.

### Separadores

Sólo hay un par de secuencias con otros caracteres que pueden aparecer en el código Java; son los separadores simples, que van a definir la forma y función del código. Los separadores admitidos en Java son:

> () - paréntesis. Para contener listas de parámetros en la definición y llamada a métodos. También se utiliza para definir precedencia en expresiones, contener expresiones para control de flujo y rodear las conversiones de tipo.

> {} - llaves. Para contener los valores de matrices inicializadas automáticamente. También se utiliza para definir un bloque de código, para clases, métodos y ámbitos locales.

> [] - corchetes. Para declarar tipos matriz. También se utiliza cuando se referencian valores de matriz.

> ; - punto y coma. Separa sentencias.

> , - coma. Separa identificadores consecutivos en una declaración de variables. También se utiliza para encadenar sentencias dentro de una sentencia for.

> . - punto. Para separar nombres de paquete de subpaquetes y clases. También se utiliza para separar una variable o método de una variable de referencia.

|  | ##### [Anterior] [Indice] [Siguiente]