Tips en Java
Tips en Java
Tips en Java
En Java, todas las variables deben declararse antes de que puedan ser utilizadas.
×El valor almacenado puede cambiarse (variar) a medida que el programa ejecuta sus
instrucciones, de ahí el término “variable“.
Por ejemplo, el tipo de dato String se puede especificar para permitir que una variable
llamada “mensaje” contenga texto con esta declaración:
String mensaje;
class PrimeraVariable
{
public static void main ( String[] args ) {
String mensaje = "Valor inicial";
System.out.println(mensaje);
mensaje = "Valor modificado" ;
System.out.println(mensaje);
}
}
Salida:
Valor inicial
Valor modificado
Los nombres de variables también deben evitar las palabras clave de Java, ya que tienen un
significado especial en el lenguaje Java.
Conoce cuales son las reglas para definir identificadores y qué son las palabras reservadas
en Java, así como ejemplos de identificadores validos.
Los únicos caracteres permitidos para los identificadores son todos los caracteres
alfanuméricos (, , ), “$” (signo de dólar) y ‘_’ (guión bajo). Por ejemplo, “java@” no es
un identificador de Java válido ya que contiene “@” – carácter especial.
Los identificadores no deben comenzar con dígitos (). Por ejemplo, “123java” no
es un identificador de Java válido.
Los identificadores de Java distinguen entre mayúsculas y minúsculas.
No hay límite en la longitud del identificador, pero es aconsejable usar solamente
una longitud óptima de 4 a 15 caracteres.
Las palabras reservadas no se pueden usar como un identificador. Por ejemplo, es
una declaración inválida ya que es una palabra reservada. Hay 53 palabras
reservadas en Java.
3. Tipos de variables
Hay tres tipos de variables en Java:
Variables locales
Variables de instancia
Variables estáticas
Salida:
Ejemplo 2:
Salida:
Como las variables de instancia se declaran en una clase, estas variables se crean
cuando un objeto de la clase se crea y se destruye cuando se destruye el objeto.
A diferencia de las variables locales, podemos usar especificadores de acceso para
variables de instancia. Si no especificamos ningún especificador de acceso, se
utilizará el especificador de acceso predeterminado.
Ejemplo:
import java.io.*;
class Points
{
//Estas variables son variables de instancia.
//Estas variables están en una clase y no están dentro de ninguna
función/método
int engPoints;
int mathsPoints;
int phyPoints;
}
class PointsDemo
{
public static void main(String args[])
{ //primer objeto
Points obj1 = new Points();
obj1.engPoints = 50;
obj1.mathsPoints = 80;
obj1.phyPoints = 90;
//segundo objeto
Points obj2 = new Points();
obj2.engPoints = 80;
obj2.mathsPoints = 60;
obj2.phyPoints = 85;
Salida:
Para acceder a variables estáticas, no necesitamos crear ningún objeto de esa clase,
simplemente podemos acceder a la variable como:
nombre_clase.nombre_variable;
Ejemplo:
import java.io.*;
class Emp {
Salida:
class Example
{
static int a; //variable estatica
int b; //variable de instancia
}
5. Creando constantes
La palabra clave “final” es un modificador que se puede usar al declarar variables para evitar
cualquier cambio posterior en los valores que inicialmente se les asignaron.
Esto es útil cuando se almacena un valor fijo en un programa para evitar que se altere
accidentalmente.
Las variables creadas para almacenar valores fijos de esta manera se conocen como
“constantes“, y es convencional nombrar constantes con todos los caracteres en
mayúsculas, para distinguirlas de las variables regulares. Los programas que intentan
cambiar un valor constante no se compilarán, y el compilador javac generará un mensaje de
error.
Ejemplo:
class Constants
{
public static void main ( String[] args ) {
//inicializamos tres constantes enteras
final int CONSTANTE1 = 6 ;
final int CONSTANTE2 = 1 ;
final int CONSTANTE3 = 3 ;
total = (td+pat+fg) ;
Salida:
Resultado: 33
×Nota: El carácter * significa una multiplicación. No se preocupe de momento, a
continuación, en este enlace, conocerá todos los Operadores en Java.
if
if-else
nested-if
if-else-if
switch-case
jump – break, continue, return
1. if
La sentencia if es la declaración de toma de decisiones más simple. Se usa para decidir si una
determinada declaración o bloque de enunciados se ejecutará o no; es decir, si una
determinada condición es verdadera (true), se ejecutará un bloque de enunciado y, de ser
falsa (false), no.
Sintaxis:
if (condición)
{
// Declaraciones para ejecutar si
// la condición es verdadera
}
Por ejemplo:
if (condicion)
declaracion1;
declaracion2;
Ejemplo:
if (i > 15)
System.out.println("10 es menor que 15");
Salida: No estoy en IF
2. if-else
La declaración if solo nos dice que, si una condición es verdadera ejecutará un bloque de
instrucciones y si la condición es falsa, no lo hará. Pero, ¿y si queremos hacer otra cosa
cuando la condición sea falsa? Aquí viene la declaración else. Podemos usar la
instrucción else con la instrucción if para ejecutar un bloque de código cuando la condición es
falsa.
Sintaxis:
if (condición)
{
// Ejecuta este bloque si
// la condición es verdadera
}
else
{
// Ejecuta este bloque si
// la condición es falsa
}
Ejemplo:
Salida:
Soy mayor de 15
3. Anidación-if
Una if anidado (nested-if) es una declaración if que se deriva de otro if o else. Las
declaraciones if anidadas significan una instrucción if dentro de una declaración if. Sí, Java
nos permite anidar las declaraciones if con if, es decir, podemos colocar una
instrucción if dentro de otra instrucción if.
Sintaxis:
if (condicion1)
{
// Ejecuta cuando condicion1 es verdadero
if (condition2)
{
// Ejecuta cuando condicion2 es verdadero
}
}
Ejemplo:
if (i == 10)
{
// Primera declaración if
if (i < 15)
System.out.println("soy menor que 15");
// Declaración if anidada
// Solo se ejecutará si la instrucción anterior
// es verdad
if (i < 12)
System.out.println("yo también soy menor que 12");
else
System.out.println("soy mayor que 15");
}
}
}
Salida:
4. Escalera if-else-if
Aquí, un usuario puede decidir entre múltiples opciones. Las sentencias if se ejecutan desde
arriba hacia abajo. Tan pronto como una de las condiciones que controlan el if sea verdadera,
se ejecuta la instrucción asociada con ese if, y el resto de la escalera se pasa por alto. Si
ninguna de las condiciones es verdadera, se ejecutará la sentencia final else.
if (condición)
declaración;
else if (condición)
declaración;
.
.
declaración
else ;
Ejemplo:
if (i == 10)
System.out.println("i es 10");
else if (i == 15)
System.out.println("i es 15");
else if (i == 20)
System.out.println("i es 20");
else
System.out.println("i no está presente");
}
}
Salida:
i es 20
5. switch-case
La instrucción switch es una declaración de bifurcación de múltiples vías (selección múltiple).
Proporciona una forma sencilla de enviar la ejecución a diferentes partes del código en función
del valor de la expresión.
Sintaxis:
switch (expresión)
{
case valor1:
declaracion1;
break;
case value2:
declaracion2;
break;
.
.
case valorN:
declaracionN;
break;
default:
declaracionDefault;
}
La expresión puede ser de tipo byte, short, int, char o una enumeración. A partir de
JDK7, la expresión también puede ser de tipo String.
Los valores duplicados de case no están permitidos.
La declaración predeterminada es opcional.
La declaración de interrupción se usa dentro del switch para finalizar una secuencia
de instrucción.
La declaración es opcional. Si se omite, la ejecución continuará en el siguiente case.
Ejemplo:
Salida:
i es mayor que 2.
6. jump o saltos
Java admite tres declaraciones de salto: break, continue y return. Estas tres declaraciones
transfieren el control a otra parte del programa.
6.1. break
En Java, break se utiliza principalmente para:
Salida:
i: 0
i: 1
i: 2
i: 3
i: 4
Bucle completo.
etiqueta:
{
declaracion1;
declaracion2;
declaracion3;
.
.
}
Ahora, la instrucción break se puede utilizar para saltar fuera del bloque objetivo. Así:
Nota: No puede romper ninguna etiqueta que no esté definida para un bloque
envolvente.
Ejemplo:
// etiqueta first
first:
{
// Declaración de la etiqueta second
second:
{
third:
{
// Antes de break
System.out.println("Antes de la sentencia break");
// break tomará el control de
// la etiqueta second
if (t)
break second;
System.out.println("Esto no se ejecutará.");
}
System.out.println("Esto no se ejecutará.");
}
// Tercer bloque
System.out.println("Esto es después del segundo bloque.");
}
}
}
Salida:
6.2. Continue
A veces es útil forzar una iteración temprana de un bucle. Es decir, es posible que desee
continuar ejecutando el bucle, pero deje de procesar el resto del código (en su cuerpo) para
esta iteración en particular. Esto es, en efecto, un goto pasando del cuerpo del bucle, al final
del bucle. La instrucción continue realiza tal acción.
Ejemplo:
Salida:
1 3 5 7 9
6.3. Return
la declaración return se usa para regresar explícitamente de un método. Es decir, hace que
un control de programa se transfiera nuevamente a quién llama del método.
Ejemplo:
if (t)
return;
Salida:
Antes de return.
Java proporciona tres formas de ejecutar los bucles. Si bien todas las formas proporcionan
una funcionalidad básica similar, difieren en su sintaxis y el tiempo de comprobación de la
condición. Veamos las 3 formas:
1. Bucle while
Un bucle while es una sentencia de control de flujo que permite que el código se ejecute
repetidamente en función de una condición booleana dada. El bucle while se puede
considerar como una instrucción if repetitiva.
Sintaxis:
Ejemplo:
Salida:
Valor de x: 1
Valor de x: 2
Valor de x: 3
Valor de x: 4
2. Bucle for
El bucle for proporciona una forma concisa de escribir la estructura de bucle. A diferencia de
un ciclo while, una sentencia for consume la inicialización, la condición y el
incremento/decremento en una línea, proporcionando así una estructura de bucle más corta y
fácil de depurar.
Sintaxis:
Ejemplo:
Salida:
Valor de x: 2
Valor de x: 3
Valor de x: 4
Sintaxis:
Tomemos un ejemplo para demostrar cómo se puede utilizar “enhanced for” para simplificar el
trabajo. Supongamos que hay una matriz de nombres y queremos imprimir todos los nombres
en esa matriz. Veamos la diferencia con estos dos ejemplos:
Salida:
Ron
Harry
Hermoine
Veamos algunos ejemplos básicos de cómo usar el bucle for y las trampas comunes al usarlo:
1. Proporcionar expresión en for es
obligatorio
El bucle for debe consistir en una expresión válida en la declaración, sino puede conducir a un
bucle infinito. La declaración es similar a
Ejemplo:
Salida:
System.out.println(x);
}
}
Salida:
0
1
2
3
4
5
6
7
10
En el código anterior, hay una variación simple en el bucle for. Dos variables son declaradas e
inicializadas en el bloque de inicialización. La variable “z” no se está utilizando. Además, los
otros dos componentes contienen una variable adicional. Entonces, se puede ver que los
bloques pueden incluir variables adicionales que no pueden ser referenciadas entre sí.
3. Redeclaración de una variable en el
bloque de inicialización
Supongamos que una inicialización de variable ya está declarada como un entero. ¿Podemos
volver a declararlo en un bucle for como otro tipo de dato? No, mira el ejemplo:
Ejemplo:
}
}
Salida:
Aquí, x ya se inicializó a cero como número entero y se vuelve a declarar en el bucle con el
tipo de datos long.
Pero este problema se puede solucionar modificando ligeramente el código. Aquí, las
variables x y y se declaran de una manera diferente.
Ejemplo:
}
}
Salida:
1 2 3 4
Ejemplo:
// Programa Java para ilustrar
// declarando una variable
// en el bloque de inicialización
public class Example4
{
public static void main(String[] args)
{
// Esto causará error;
// int x;
}
}
Ejemplo:
System.out.println(x);
}
}
Salida:
3. Bucle do while
El bucle do while es similar al while con la única diferencia de que comprueba la condición
después de ejecutar las instrucciones, y por lo tanto es un ejemplo de Exit Control Loop (Salir
del bloque de control).
1. El bucle do while comienza con la ejecución de la(s) declaración(es). No hay
verificación de ninguna condición la primera vez.
Ejemplo:
Salida:
Valor de x: 21
Ejemplo:
int x = 5;
// bucle infinito porque la actualización
// no se proporciona
while (x == 5)
{
System.out.println("En el bucle");
}
}
}
Otro inconveniente es que puede estar agregando algo en su objeto de colección a través de
un bucle y puede quedarse sin memoria. Si intenta ejecutar el siguiente programa, después
de un tiempo, se producirá una excepción de falta de memoria.
Salida:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.util.Arrays.copyOf(Unknown Source)
at java.util.ArrayList.grow(Unknown Source)
at java.util.ArrayList.ensureCapacityInternal(Unknown Source)
at java.util.ArrayList.add(Unknown Source)
at article.Integer1.main(Integer1.java:9)