Fundamentos de Java

Estructura básica

Toda aplicación de consola en Java contiene una clase principal con un método (o función) main, al igual que en C++, la función main es lo primero que se ejecuta cuando se inicia la aplicación desde la línea de comandos. De esta forma podemos deducir que cualquier llamado, declaración o método que no sea llamado de manera directa o indirecta desde el método main nunca se ejecutará. En Java el método main recibe como argumento un arreglo de String. Este arreglo contiene los argumentos enviados por la línea de comandos para la invocación del programa.



Resultado de imagen para Estructura básica java



Resultado de imagen para Estructura básica java

Tipos de datos en Java

Todo lenguaje de programación consta de elementos específicos que permiten realizar las operaciones básicas de la programación: tipos de datos, operadores e instrucciones o sentencias. En este apartado se introducen los distintos tipos de dato que pueden emplearse en la programación con Java.

Tipos de dato primitivos de Java


VARIABLE

Una variable es un espacio de la memoria correspondiente a un dato cuyo valor puede modificarse durante la ejecución de un programa y que está asociado a un identificador. Toda variable ha de declararse antes de ser usada en el código de un programa en Java. En la declaración de una variable debe indicarse explícitamente el identificador de la variable y el tipo de dato asociado. El tipo de dato determina el espacio reservado en memoria, los diferentes valores que puede tomar la variable y las operaciones que pueden realizarse con ella. La declaración de una variable en el código fuente de un programa de Java puede hacerse de la siguiente forma:
tipo_de_dato identificador_de_la_variable;
O bien, la declaración de múltiples variables (con los correspondientes identificadores separados por comas) del mismo tipo:
tipo_de_dato ident_1, ident_2, . . . , ident_n;
Por ejemplo:
int n;
double x, y;
VARIABLES FINAL O CONSTANTES

Las variables finales en Java son similares a las constantes empleadas en otros lenguajes de programación. Una vez inicializada una variable final su valor no puede ser modificado. La declaración de variables finales o constantes se realiza empleando la palabra reservada final antes del identificador del tipo de dato. Por ejemplo:
final int MAXIMO = 15;


Identificador

Los identificadores son los nombres que el programador asigna a variables, constantes, clases, métodos, paquetes, etc. de un programa.

Características de un identificador Java:

  1. Están formados por letras y dígitos. 
  2. No pueden empezar por un dígito. 
  3. No pueden contener ninguno de los caracteres especiales.
  4. No puede ser una palabra reservada de Java.

Palabras reservadas JAVA


Las palabras reservadas son identificadores predefinidos que tienen un significado para el compilador y por tanto no pueden usarse como identificadores creados por el usuario en los programas.

Las palabras reservadas en Java ordenadas alfabéticamente son las siguientes:
Resultado de imagen para palabras reservadas java





Comentarios

Cuando escribimos código en general es útil realizar comentarios explicativos. Los comentarios no tienen efecto como instrucciones para el ordenador, simplemente sirven para que cuando un programador lea el código pueda comprender mejor lo que lee.

Comentario multilínea: se abre con el símbolo /* y se cierra con el símbolo */
Comentario en una línea o al final de una línea: se introduce con el símbolo //
/*
  * Este es el primer programa en un IDE del curso Java
  * Creado el 29/03/2017
  * aprenderaprogramar.com
*/

// A continuación el código del programa
public class Ejemplo {
      public static void main(String[ ] arg) {
                  System.out.println("Hola Java");  //Usamos esta sintaxis para mostrar mensajes por pantalla
      }
}

Operadores:

Operador Asignación

El operador asignación =, es un operador binario que asigna el valor del término de la derecha al operando de la izquierda. El operando de la izquierda suele ser el identificador de una variable. El término de la derecha es, en general, una expresión de un tipo de dato compatible; en particular puede ser una constante u otra variable. Como caso particular, y a diferencia de los demás operadores, este operador no se evalúa devolviendo un determinado valor.
Operador asignación




Operadores Aritméticos



El lenguaje de programación Java tiene varios operadores aritméticos para los datos numéricos enteros y reales. En la siguiente tabla se resumen los diferentes operadores de esta categoría.





Operadores Aritméticos Incrementales

Los operadores aritméticos incrementales son operadores unarios (un único operando). El operando puede ser numérico o de tipo char y el resultado es del mismo tipo que el operando. Estos operadores pueden emplearse de dos formas dependiendo de su posición con respecto al operando.


Operadores Aritméticos Combinados


Combinan un operador aritmético con el operador asignación. Como en el caso de los operadores aritméticos pueden tener operandos numéricos enteros o reales y el tipo específico de resultado numérico dependerá del tipo de éstos. En la siguiente tabla se resumen los diferentes operadores de esta categoría.


Operadores de Relación
Realizan comparaciones entre datos compatibles de tipos primitivos (numéricos, carácter y booleanos) teniendo siempre un resultado booleano. Los operandos booleanos sólo pueden emplear los operadores de igualdad y desigualdad.




Operadores Lógicos o Booleanos

Realizan operaciones sobre datos booleanos y tienen como resultado un valor booleano. En la siguiente tabla se resumen los diferentes operadores de esta categoría.




Prioridad entre Operadores

Si dos operadores se encuentran en la misma expresión, el orden en el que se evalúan puede determinar el valor de la expresión. En la siguiente tabla se muestra el orden o prioridad en el que se ejecutan los operadores que se encuentren en la misma sentencia. Los operadores de la misma prioridad se evalúan de izquierda a derecha dentro de la expresión



Clase Math

La clase Math representa la librería matemática de Java. Las funciones que contiene son las de todos los lenguajes, parece que se han metido en una clase solamente a propósito de agrupación, por eso se encapsulan en Math, y lo mismo sucede con las demás clases que corresponden a objetos que tienen un tipo equivalente (Character, Float, etc.). El constructor de la clase es privado, por los que no se pueden crear instancias de la clase. Sin embargo, Math es public para que se pueda llamar desde cualquier sitio y static para que no haya que inicializarla.

Esta clase ya viene incluida en nuevas versiones de Java, por lo que no habrá que importar ningún paquete para ello.

Para utilizar esta clase, debemos escribir Math.método(parámetros); donde método sera uno de los siguientes y parámetros aquellos que tengamos que usar. Un método puede estar sobrescrito para distintos tipos de datos.




En el ejemplo anterior devuelve un numero aleatorio.

Sentencias de control del flujo de un programa

Cuando se escribe un programa, se introduce la secuencia de sentencias dentro de un archivo. Sin sentencias de control del flujo, el intérprete ejecuta las sentencias conforme aparecen en el programa de principio a fin. Las sentencias de control de flujo se emplean en los programas para ejecutar sentencias condicionalmente, repetir un conjunto de sentencias o, en general, cambiar el flujo secuencial de ejecución.

Sentencia if / if - else / if - else if
Es una bifurcación o sentencia condicional de una o dos ramas. La sentencia de control evalúa la condición lógica o booleana. Si esta condición es cierta entonces se ejecuta la sentencia o sentencias (1) que se encuentra a continuacion. En caso contrario, se ejecuta la sentencia (2) que sigue a else (si ésta existe). La sentencia puede constar opcionalmente de una o dos ramas con sus correspondientes sentencias.
Sintaxis:
if (expresionLogica) {
    sentencia_1;}
o bien (con dos ramas):
if (expresionLogica) {
    sentencia_1;
} else {
    sentencia_2;
}
La expresionLogica debe ir entre paréntesis. Las llaves sólo son obligatorias si las sentencias (1) ó (2) son compuestas (las llaves sirven para agrupar varias sentencias simples).

La parte else y la sentencia posterior entre llaves no son obligatorias. En este caso quedaría una sentencia selectiva con una rama.

Un ejemplo muy sencillo que muestra este tipo de sentencia es el siguiente:
// Codigo autoexplicativo
if (a>b) {
    System.out.println("a es mayor que b");
}else {
    System.out.println("a no es mayor que b");
}

Sentencias repetitivas, iterativas o bucles
Los bucles, iteraciones o sentencias repetitivas modifican el flujo secuencial de un programa permitiendo la ejecución reiterada de una sentencia o sentencias. En Java hay tres tipos diferentes de bucles: forwhile y do-while.
Sentencia for
Es un bucle o sentencia repetitiva que
  • ejecuta la sentencia de inicio.
  • verifica la expresión booleana de término.
Sintaxis:
  • si es cierta, ejecuta la sentencia entre llaves y la sentencia de iteración para volver a verificar la expresión booleana de término.
  • si es falsa, sale del bucle.


Sintaxis:
for (inicio; termino; iteracion)
    sentencia;
O si se desean repetir varias sentencias:
for (inicio; termino; iteracion) {
    sentencia_1;

    sentencia_2;

    sentencia_n;
}

Las llaves sólo son necesarias si se quieren repetir varias sentencias, aunque se recomienda su porque facilita la lectura del código fuente y ayuda a evitar errores al modificarlo. Habitualmente, en la expresión lógica de término se verifica que la variable de control alcance un uso determinado valor. Por ejemplo:
for (i = valor_inicial; i <= valor_final; i++) {
    sentencia;
}
Es completamente legal en Java declarar una variable dentro de la cabecera de un bucle for. De esta forma la variable (local) sólo tiene ámbito dentro del bucle. Ejemplo sencillo:
System.out.println("Tabla de multiplicar del 5");
for (int i =0 ; i <= 10; i++) {
    System.out.println(5 + " * " + i + " = " + 5 * i);
}
Salida por pantalla al ejecutar el código anterior:
5 * 0 = 0
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
5 * 10 = 50
Sentencia while


Es un bucle o sentencia repetitiva con una condicion al principio. Se ejecuta una sentencia mientras sea cierta una condición. La sentencia puede que no se ejecute ni una sola vez.
Sintaxis:
[inicializacion;]while (expresionLogica) {
    sentencias;
    [iteracion;]
}

Sentencia do - while

Es un bucle o sentencia repetitiva con una condicion al final. Se ejecuta una sentencia mientras sea cierta una condición. En este caso, la sentencia se ejecuta al menos una vez.


Sintaxis:

¿Qué es un Array en Java?

Un array es una estructura de datos que nos permite almacenar una gran cantidad de datos de un mismo tipo. El tamaño de los arrays se declara en un primer momento y no puede cambiar en tiempo de ejecución como puede producirse en otros lenguajes.


La declaración de un array en Java y su inicialización se realiza de la siguiente manera:

tipo_dato nombre_array[];
nombre_array = new tipo_dato[tamaño];
Por ejemplo, podríamos declarar un array de caracteres e inicializarlo de la siguiente manera:

char arrayCaracteres[];
arrayCaracteres = new char[10];

Los arrays se numeran desde el elemento cero, que sería el primer elemento, hasta el tamaño-1 que sería el último elemento. Es decir, si tenemos un array de diez elementos, el primer elemento sería el cero y el último elemento sería el nueve.

Para acceder a un elemento especifico utilizaremos los corchetes de la siguiente forma. Entendemos por acceso, tanto el intentar leer el elemento, como asignarle un valor.

arrayCaracteres[numero_elemento];

Por ejemplo, para acceder al tercer elemento lo haríamos de la siguiente forma:

// Lectura de su valor. char x = arrayCaracteres[2]; // Asignación de un valor: arrayCaracteres[2] = 'b'

El objeto array, aunque podríamos decir que no existe como tal, posee una variable, la cual podremos utilizar para facilitar su manejo.



¿Qué son las colecciones?

Una colección representa un grupo de objetos. Esto objetos son conocidos como elementos. Cuando queremos trabajar con un conjunto de elementos, necesitamos un almacén donde poder guardarlos. En Java, se emplea la interfaz genérica Collection para este propósito. Gracias a esta interfaz, podemos almacenar cualquier tipo de objeto y podemos usar una serie de métodos comunes, como pueden ser: añadir, eliminar, obtener el tamaño de la colección… Partiendo de la interfaz genérica Collection extienden otra serie de interfaces genéricas.


Array y Colecciones


No hay comentarios.:

Publicar un comentario

JavaScript

JavaScript