Tema 2-Java
Tema 2-Java
import paquete;
class nombre_de_clase
{
//Método principal
public static void main( String[ ] args)
{
Conjunto _de _Sentencias
}
Ejemplo
class usametodo
{
double z;
z= a + b;
return z;
}
}
La palabra import se utiliza para importar las clases necesarias del paquete
indicado, en otras palabras son las librerías.
Con la palabra class se define una clase . En los lenguajes orientados a objetos,
existen terminologías como: clase, objeto, encapsulamiento, herencia,
polimorfismo, etc. (Ver tema 3).
Por otra parte, la función main recibe como parámetro un arreglo de cadenas, (el
manejo de cadenas se tratará más adelante). Para poder ejecutar un programa en
Java es necesaria la existencia de la función main() que es única.
Ejemplo
import java.io.*;
class asignacion1
{
public static void main (String [] args)
{
int x=12;
System.out.println("El valor de x es " + x);
x+=10;
System.out.println("El valor de x es " + x);
}
}
import java.io.* le indica al compilador que importe las clases necesarias del
paquete java.io proporcionado por java.
2.2 Identificadores
Por convención, en Java, los identificadores empiezan con una letra minúscula. Si
un identificador esta compuesto de más de una palabra, como 'nombreDato' las
palabras se ponen juntas y cada nueva palabra después de la primera empieza
con una letra mayúscula. Los nombres de las clases empiezan con una letra
mayúscula.
Todas las variables en Java deben tener un tipo de dato. El nombre de variable No
puede ser el mismo que una palabra clave o el nombre de un valor booleano (false
o true). No deben tener el mismo nombre que otros identificadores cuyas
declaraciones aparezcan en el mismo ámbito.
El tipo de dato de la variable determina los valores que puede contener y las
operaciones que se pueden realizar con ella. Existen dos categorías de datos
principales en Java: los tipos primitivos y los tipos referenciados.
• enteros
• reales (números de punto flotante)
• valores lógicos (false, true)
• conjunto de caracteres de escritura.
La tabla siguiente muestra todos los tipos primitivos soportados por Java, su
formato, su tamaño y una breve descripción de cada uno:
Los tipos referenciados se llaman así porque el valor de una variable es una
referencia (un apuntador) hacia el valor real. En Java los arreglos, las clases y las
interfaces son tipos de datos referenciados.
1. import java.io.*;
2. public class Asignacion{
3. public static void main(String [] argc)
4. {
5. int x = 12;
6. x = x+31;
7. System.out.println("El valor de x es " +
x);
8. }
9.}
En la línea 7 del programa, la función println recibe como parámetro una cadena
de caracteres. Pero como se observa en la línea, se suman una cadena con un
entero. Esto se le llama concatenación, lo que significa unir dos cadenas. Otro
término que se utiliza aquí es el de parámetro; esto también se verá más adelante.
1. import java.io.*;
2. public class Asignacion{
3. public static void main(String [] argc)
4. {
5. int x = 12;
6. x += 31;
7. System.out.println("El valor de x es " + x);
8. }
9. }
Existen operadores binarios y operadores monario. Los binarios son los que tienen
dos operandos y un operador, por ejemplo
a+b
el operador suma (+) es binario ya que tiene el operando a y el operando b. Los
operadores monarios son los que tiene un sólo operando, por ejemplo el operador
menos para indicar los números negativos
-8
2.4.1 Asignación
x=10;
Es regla que del lado izquierdo del operador =, en una asignación, exista una sola
variable (o identificador), en tanto que del lado derecho puede haber un número o
una expresión. Es un ERROR de asignación en programación el siguiente caso
a + b = 100
x = a - 50
x=a*8
x=a/b
x=7%2
Los operadores relacionales son operadores binarios y son utilizados para verificar
si una expresión es mayor que otra , o es menor que, o es mayor o igual, o es
menor o igual, o diferente de, o igual que. En el caso de lenguaje Java los
símbolos utilizados son:
El "mayor que" se representa con el símbolo > , por ejemplo a > b y da como
resultado un verdadero si el valor de a es mayor estrictamente que el valor de b,
es falso en caso contrario.
El "menor que" se representa con el símbolo < , por ejemplo a < b y da como
resultado un verdadero si el valor de a es absolutamente menor que el valor de b,
es falso en caso contrario.
Por otra parte el"mayor o igual" se representa con el símbolo >= , por ejemplo a >=
b y da como resultado un verdadero si el valor de a es mayor o igual que el valor
de b, es falso en caso contrario.
En cuanto al "menor o igual" se representa con el símbolo <=, por ejemplo a <= b
y da como resultado un verdadero si el valor de a es menor o igual que el valor de
b, es falso en caso contrario.
Para verificar si dos expresiones son diferentes se utiliza el operador !=, por
ejemplo a != b y da como resultado un verdadero si el valor de a es diferente a el
valor de b, es falso en caso contrario.
01 1 0 1 0
10 1 0 0 1
11 1 1 0 0
^ (exponente)
* / %
Mas baja + -
a+b/c
&&
Mas baja ||
Pero si a= 105 y b=5, primero se verifica que a==b es falso, sin verificar mas se
deduce que a==b && b!= 0 es falso, en esta ocasión es imperioso verificar que a>
100 es verdadera, por lo tanto (a==b && b!= 0 || a> 100) es verdadera.
En el caso de que a= 8 y b=5, primero se verifica que a==b es falso, sin verificar
mas se deduce que a==b && b!= 0 es falso, en seguida se verifica que a> 100 es
falso, por lo tanto (a==b && b!= 0 || a> 100) es falsa
a-b+c*d
(a - b + c) * d
Las palabras reservadas del lenguaje son las que definen al mismo y no pueden
ser utilizadas para nombrar identificadores dentro de un programa. Son ejemplos
de palabras reservadas
main
print
void
exit
switch
case
break
default
char
int
double
if
else
for
while
do
if (condición) sentencia
donde condición es una expresión que se evalúa de falsa o verdadera (en el
lenguaje Java, verdadero es diferente de cero y falso es cero). Ejemplo
if (condición)
ejecuta sentencia(s) si la condición es verdadera
else
ejecuta sentencia(s) si la condición es falsa
Ejemplo
if (n < 11)
System.out.print ("%d es menor que 11" +n);
else
System.out.print ("%d es mayor o igual que 11" + n);
En el ejemplo dependerá del valor que tome "n" para ejecutar la instrucción
indicada.
if (condición 1) then
ejecuta sentencia(s) si la condición 1 es verdadera
else if (condición 2) then
ejecuta sentencia(s) si la condición 2 es verdadera
...
else
ejecuta sentencia(s) si las condiciones de la 1 a la n fueron falsas
else
System.out.print ("%d es mayor o igual 30" + n);
Observe que el símbolo de comparación se escribe con dos signos igual (==),
mientras que el igual de asignación sólo se escribe con uno.
Un ejemplo para ver como se comporta la sentencia if puede ser: saber si el valor
que se proporciona es positivo o negativo.
1. import java.io.*;
2.
3. public class SentenciaIf{
4. public static void main(String [] argc)
5. {
6. BufferedReader entrada = new BufferedReader(
new InputStreamReader(
System.in) );
7. int x;
8. String unaLinea;
9.
10. System.out.print("Introduce un valor entero ");
11. try
12. {
13. unaLinea = entrada.readLine();
14. x = Integer.parseInt( unaLinea );
15. if (x < 0)
16. System.out.println("El valor negativo
de x es " + x);
17. if (x >= 0)
18. System.out.println("El valor positivo de
x es " + x);
19. }
20. catch (Exception e)
21. {
22. System.out.println(e);
23. }
24. }
25. }
Otro ejemplo, donde no es necesario utilizar else puede ser el siguiente problema:
Un programa que lea dos números y los compare, mostrando todas las
comparaciones que hizo.
1. import java.io.*;
2.
3. public class Compara{
4. public static void main(String []argc)
5. {
6. BufferedReader entrada = new
BufferedReader(
new InputStreamReader(
System.in) );
7. int x,y;
8. String unaLinea;
9.
10. try
11. {
12. System.out.print("Dame un valor ");
13. unaLinea = entrada.readLine();
14. x = Integer.parseInt( unaLinea );
15. System.out.print("Dame otro valor ");
16. unaLinea = entrada.readLine();
17. y = Integer.parseInt( unaLinea );
18. if(x == y) System.out.println(x + " == " +
y);
19. if(x != y) System.out.println(x + " != " +
y);
20. if(x < y) System.out.println(x + " < " + y);
21. if(x > y) System.out.println(x + " > " + y);
22. if(x < = y) System.out.println(x + " <= " +
y);
23. if(x > = y) System.out.println(x + " >= " +
y);
24. }
25. catch(Exception e)
26. {
27. System.out.println("A ocurrido un error: " +
e);
28. }
29. }
30. }
El siguiente ejemplo lee dos números de punto flotante, los compara e indica el
resultado de la comparación
import java.io.*;
class mayormenor
{
if (a > b)
System.out.println("\n\n" + a + " es mayor que " + b + "\n\n \n Fin\n");
else if(a == b )
System.out.println("\n\n"+ a + " es igual que " + b + "\n\n \n Fin\n");
else
System.out.println("\n\n" +a + " es menor que " + b + "\n \n \n Fin\n");
}
catch (Exception e)
{
System.out.println(e);
}
}
}
Uso de while
donde sentencia puede ser una sentencia vacía, una sentencia única o un bloque
de sentencias que se repetirán mientras la condición sea verdadera. La condición
es una expresión que se evalúa de falsa o verdadera cada vez que se repite el
bucle. El bucle itera mientras la condición sea verdadera. Cuando llega a ser falsa,
el control del programa pasa a la línea que sigue al bucle. Ejemplo
int con=0;
while(con != -1)
System.out.println("\n Repitiendo . El valor de cont es " + con+ "\nFin");
1. import java.io.*;
2.
3. public class SentenciaWhile{
4. public static void main(String [] argc)
5. {
6. BufferedReader entrada = new BufferedReader( new InputStreamReader(
System.in) );
7. int n,suma=0,i=1;
8. String unaLinea;
9.
10. System.out.print("Hasta que numero deseas la suma ");
11. try
12. {
13. unaLinea = entrada.readLine();
14. n = Integer.parseInt( unaLinea );
15. while ( i<=n)
16. {
17. suma += i;
18. i++;
19. }
20. System.out.print("la suma desde 1 hasta " + n + " es " + suma);
21. }
22. catch (Exception e)
23. {
24. System.out.println(e);
25. }
26. }
27. }
Observe que aquí el alcance de la sentencia while abarca 2 sentencias, es por ello
que se necesitan las llaves. Es posible reducir las líneas 17 y 18 por la línea
suma += i++;
Uso de do-while
Al contrario del while el bucle do-while examina la condición en la parte baja. Esta
característica provoca que el do-while siempre se ejecute almenos una vez . La
forma general del bucle es
do{
sentencia
} while (condición) ;
La condición es una expresión que se evalúa de falsa o verdadera cada vez que
se repite el bucle. El bucle itera mientras la condición sea verdadera. Cuando llega
a ser falsa, el control del programa pasa a la línea que sigue al bucle. Ejemplo
int con;
do {
}while(con != -1) ;
1. import java.io.*;
2.
3. public class SentenciaDoWhile{
4. public static void main(String [] argc)
5. {
6. BufferedReader entrada = new BufferedReader( new InputStreamReader(
System.in) );
7. int n,suma=0,i=1;
8. String unaLinea;
9.
10. System.out.print("Hasta que numero deseas la suma ");
11. try
12. {
13. unaLinea = entrada.readLine();
14. n = Integer.parseInt( unaLinea );
15. do
16. {
17. suma += i;
18. i++;
19. }while ( i<=n);
20. System.out.print("la suma desde 1 hasta " + n + " es " + suma);
21. }
22. catch (Exception e)
23. {
24. System.out.println(e);
25. }
26. }
27. }
Uso de for
Por otra parte el bucle for requiere de un variable inicializada con un valor, a partir
de él, la variable se actualiza según el incremento o decremento definido por el
programador, el ciclo for repetirá las sentencias definidas dentro de él, hasta que
el valor de dicha variable alcance el valor impuesto por la condición de paro dada
por el programador. A continuación se presenta la estructura en su forma más
sencilla
int contador;
for(contador =1; contador<=100; contador++)
System.out.println("\n Repitiendo . El valor de cont es " + contador+ "\nFin");
repetitivas. Una de ellas es la sentencia for, la cual utiliza las siguientes sintaxis:
Tipo 1.
for(inicio;condición;incremento)
sentencia;
Tipo 2.
for(incio;condición;incremento)
{
Cuerpo;
}
1. import java.io.*;
2.
3. public class SentenciaFor{
4. public static void main(String [] argc)
5. {
6. BufferedReader entrada = new BufferedReader( new InputStreamReader(
System.in) );
7. int n,suma=0,i;
8. String unaLinea;
9.
10. System.out.print("Hasta que numero deseas la suma ");
11. try
12. {
13. unaLinea = entrada.readLine();
14. n = Integer.parseInt( unaLinea );
15. for ( i=1 ; i<=n; i++)
16. {
17. suma += i;
18.
19. }
20. System.out.print("la suma desde 1 hasta " + n + " es " + suma);
21. }
22. catch (Exception e)
23. {
24. System.out.println(e);
25. }
26. }
27. }
Observe que aquí se utilizaron las llaves para indicar para una sentencia, dichas
llaves pueden ser eliminadas sin afectar al programa..
switch(x)
{
case 1: codigo respectivo de esta opción
break;
default
codigo respectivo
}
1. import java.io.*;
2.
3. public class SentenciaSwitch{
4. public static void main(String [] argc)
5. {
6. BufferedReader entrada = new BufferedReader( new InputStreamReader(
System.in) );
7. int x;
8. String unaLinea;
9.
10. System.out.print("Introduce el numero de dia (0-6) ");
11. try
12. {
13. unaLinea = entrada.readLine();
14. x = Integer.parseInt( unaLinea );
15. System.out.print("El dia escogido es ");
16. switch(x){
17. case 0: System.out.println("Lunes");
18. break;
19. case 1: System.out.println("Martes");
20. break;
21. case 2: System.out.println("Miercoles");
22. break;
23. case 3: System.out.println("Jueves");
24. break;
25. case 4: System.out.println("Viernes");
26. break;
27. case 5: System.out.println("Sabado");
28. break;
29. case 6: System.out.println("Domingo");
30. break;
31. default: System.out.println("No existe");
32. break;
33. }
34. }
35. catch (Exception e)
36. {
37. System.out.println(e);
38. }
39. }
40. }
Es importante recordar que la función que realiza el break es muy importante. Si el
break no estuviera, el programa se sigue a la siguiente línea.
Otro programa que podemos ver como ejemplo para el switch es uno que
llamaremos calculadora. Este programa va a recibir dos valores enteros y un
operador, ya sea '+' o '*'. Según el operador calculará el resultado.
1. import java.io.*;
2. import java.lang.*;
3.
4. public class Calculadora{
5. public static void main(String [] argc)
6. {
7. int val1,val2;
8. BufferedReader entrada = new BufferedReader( new InputStreamReader(
System.in) );
9. String unaLinea;
10. char operador;
11. try
12. {
13. unaLinea = entrada.readLine();
14. val1 = Integer.parseInt( unaLinea );
15. unaLinea = entrada.readLine();
16. val2 = Integer.parseInt( unaLinea );
17. unaLinea = entrada.readLine();
18. operador = unaLinea.charAt(0);
19. switch(operador)
20. {
21. case '+': System.out.println(val1 + " + " + val2 + " = " + (val1+val2));
22. break;
23. case '*': System.out.println(val1 + " * " + val2 + " = " + (val1*val2));
24. break;
25. default : System.out.println("No existe opcion");
26. break;
27. }
28. }
29. catch(Exception e)
30. {
31. System.out.println("Ocurre un error: " + e);
32. }
33. }
34. }
2.7 Comentarios
En Java para poner comentarios dentro de un progama puede ser de las formas
siguientes
Por ejemplo
Por ejemplo
Por ejemplo