No es un bug, es una característica no documentada

domingo, 15 de marzo de 2015

Programación. Presentación del lenguaje Java y del entorno de desarrollo Eclipse (II)

3:13 Posted by Inazio , No comments

Elementos basicos del lenguaje Java

Comentarios

è De línea: // comentario de línea
è De varias líneas: /* comentario de varias líneas */
è De documentación para la utilidad JavaDoc: /** Comentario de documentación de varias líneas

Variables

è Deben comenzar con una letra o ‘$’ o ‘_’
è Y le siguen más letras, dígitos, ‘$’ o ‘_’
è Son sensibles a mayúsculas y minúsculas

Tipo de datos

è Primitivos: Son los tipos de datos simples de otros lenguajes (int, float, double, char, boolean…)
è Referencias: Es un tipo de dato Nuevo capaz de apuntar o referirse a un objeto de una clase

Datos primitivos

è Números enteros
o   byte(1 byte)
o   short (2 bytes)
o   int (4 bytes)
o   long (8 bytes)
è Números reales
o   float (4 bytes)
o   double (8 bytes)
è Lógico
o   boolean (1 byte)
è Carácteres
o   char (2 byes en UNICODE)

Declaración y y literales válidos de tipo primitivo

è byte edad = 54;
è int numArticulo = 2900;
è long distancia = 100000000000
è double longitud = 31.5454
è float media = 7.87f; // Atención a la f
è boolean encontrado = TRUE; // O bien = false
è char letraDNI = ‘F’;
è char egne = ‘\u00F1’; // caracter de escape de la ñ
è char nuevaLinea = ‘\n’; // Caracter de nueva línea

Referencias a objetos

Declaración

nombreClase nombreReferencia
è String cadena = null; // Capaz de apuntar a objetos string
è Persona perso = null; // Capaz de apuntar a objetos Persona
è Factura f = null; // Capaz de apuntar a objetos Factura

En los ejemplos solo hemos declarado las referencias pero no se ha creado el objeto. Para ello usaremos el operador new que veremos más adelante.

Una referencia a un objeto de clase X siempre debe apntar a un objeto de dicha clase o ser NULL.

Operadores indispensables

Igual que en C:
è Asignación: =
è Aritméticos: +, -, ++, --, *, /, %
è Relacionales: <, <=, >, >=, ==, !=
è Lógicos: !, &&, ||

El operador de creación de objetos new:
è Sirve para crear un objeto de una clase en la memoria y devolver una referencia al mismo
è Forma de uso:
o   new NombreClase (parámetros para crear el objeto)
o   new String(“Hola”);
o   new Persona(“Pedro”, “Marquez Lopez”);

El operador new se suele combinar con la asignación de la siguiente forma:
è string msg1;
è msg1 = new String (“Mensaje 1”);

No existe un operador para destruir un objeto que ya no hace falta. En Java existe un recolector de basura que libera las zonas de memoria de objetos no referenciados.

El recolector de basura es un proceso que lanza la máquina virtual Java automáticamente y que no controlamos.

Por ejemplo, si ejecutamos:
String msg1 = new String (“Mensaje 1”);
String msg2 = new String (“Mensaje 2”);
msg1 = msg2; // La referencia msg1 ahora apunta al mismo objeto que msg2.

El objeto sin referenciar sería string “Mensaje 1”.

El operador de comparación == si lo usamos con referencias a objetos compara las referencias, no el contenido del objeto.

Ejemplo 1:
String cad1 = new String(“Hola”);
String cad2 = new String(“Hola”);
if (cad1 == cad2) // Da falso

Ejemplo 2:

String cad1 = new String(“Hola”);
String cad2 = cad1
if (cad1 == cad2) // Da verdadero

El operador + como concatenador de cadenas:
Crea un nuevo objeto String que es la concatenación de las expresiones que enlaza. Por ejemplo:

String nom = new String(“Pedro”);
String ap1 = new String(“Lopez”);
String ap2 = new String(“Martos”);
String nomCompleto = new String(nom+” “+ap1+” “+ap2);
// Este último es equivalente a:
// String nomCompleto = new String (nom+” ”+ap1+” “+ap2);
System.out.println(nomCompleto);
System.out.println(“Apellidos: ”+ap1+” “+ap2);

Instrucciones de salida por pantalla

Usaremos
System.out.println(expresión de tipo cadena);
System.out.print(expresión de tipo cadena);

La primera escribe un retorno de carro al terminar y la segunda no. Ejemplos:
System.out.println(“Nombre = ”+nom+” Edad = “+25); // siendo nom una referencia a un objeto string

System.out.print(“Nota media = ”+suma/numAlum); // Siendo suma una variable double y numAlum una entera

System.out.println(“Modo arrancado = ”+motorArrancado); // Siendo motorArrancado una variable de tipo boolean. Imprimirá TRUE o FALSE según sea el valor que contiene

También existe el printf tal y como se usa en C:
System.out.printf(“Nombre = %s Edad = %d”,nom,edad);

Las instrucciones de entrada de teclado las veremos más adelante.

Instrucciones de control de flujo del programa

Selectivas (exactamente igual que en C):
è Simple: if(condición lógica)…
è Doble: if(condición lógica) … else …
è Múltiple: switch(expresión entera) … case 1: … break; … default: …

Iterativas (igual que en C):
è Como condición inicial: while(condición lógica) …
è Como condición final: do … while (condición lógica);
è Controlada por contador: for(inicialización; condición de permanencia; incremento) …

Bloque s de código (igual que en C++):
è Un bloque de código está delimitado por { }
è Las variables declaradas en un bloque sólo tienen validez y existencia dentro del mismo. Ejemplo
if  (a>b){
     int aux = a;
     a = b;
     b = aux;
}
// aux sólo tiene validez y existencia dentro de este bloque. Fuera del mismo no existe


0 comentarios:

Publicar un comentario