Tema 3 Introduccion Java
Tema 3 Introduccion Java
DW 1º
En este tema, por cada uno de nuestros programas, crearemos una nueva clase, y dentro de la misma, un método
main, que será el primero en ejecutarse al poner nuestro programa en marcha.
2. TIPOS DE DATOS
Las variables en Java deben tener un tipo de dato asociado. El tipo de dato de una variable limitará los valores que
puede contener y las operaciones que se pueden realizar con ella.
Podemos dividir los tipos de datos en Java en dos categorías de datos principales:
• tipos primitivos y
• tipos referenciados
Los tipos primitivos contienen un sólo valor e incluyen los enteros, coma flotante (números reales), caracteres y
booleanos
Los tipos referenciados (que veremos más adelante)s se llaman así porque referencian valores reales. Algunos ejemplos
de datos referenciados son los arrays, las clases, los interfaces, etc.
De momento no nos ocuparemos de ellos
1
Programación. DW 1º
• Carácter: char
Un valor booleano
boolean true o false
(verdadero o falso)
Hay que destacar que los tipos de datos primitivos no son objetos y que se definen de forma (casi) idéntica en
cada máquina en la que se ejecuta Java, algo que no ocurre en otros lenguajes de programación.
2
Programación. DW 1º
3. DATOS: Tipos
variableNumero1
_VariableNumero2
$variable_numero_3
• Se puede declarar en una misma instrucción más de una variable del mismo tipo, separadas por una coma
• Se puede inicializar una variable en el momento de declararla.
Inicializar una variable consiste en almacenar un determinado valor en el espacio de memoria reservado para
ella.
Ejemplo
Java es un lenguaje de programación fuertemente tipado, es decir, cada variable debe ser obligatoriamente de
un tipo declarado
3
Programación. DW 1º
Coma Flotante/Reales
0.78
Los números en coma flotante se expresan como números decimales con punto decimal -608.32
opcional, seguidos opcionalmente por un exponente. Deben contener como mínimo un 0.0
dígito: 18., 1.8e1, .18E2 2.7f
-32.7D
El número puede ir seguido por f o F para denotar una constante float, o por d o D para
las constantes double: 1.8F , 1.8D.
El cero puede ser positivo, +0.0, o negativo, -0.0. Ambos son iguales a efectos de
comparación
Todas las secuencias de escape para los literales tipo carácter son válidas para las cadenas
de caracteres.
4
Programación. DW 1º
Ejemplo
4. LOS OPERADORES
+ Suma
- Resta
* Multiplicación
/ Cociente de la división
% Resto de una división entera
• La división entera produce un cociente entero. Cualquier parte fraccionaria se desecha, no hay redondeo:
17 / 5 produce 3
• El operador módulo produce el resto de la división entera. Sólo puede usarse con tipos enteros. El signo es
el del numerador : 17 % 5 produce 2
• Reglas de precedencia:
1. Las expresiones contenidas entre paréntesis se evalúan primero, aplicando primero los operadores
del par de paréntesis más interno.
2. A continuación se aplican las operaciones de multiplicación, división y residuo de izquierda a
derecha.
3. A continuación se aplican las operaciones de suma y resta de izquierda a derecha.
Ejemplo: Si el valor de x es 5,
→ la instrucción j = x++ * 2, asignaría un 10 a la variable j
→ la instrucción j = ++x * 2, asignaría un 12 a la variable j.
5
Programación. DW 1º
Ejemplos:
c += 7 equivale a c = c + 7
d -= 4 equivale a d = d - 4
e *= 5 equivale a e = e * 5
f /= 3 equivale a f = f / 3
g %= 9 equivale a g = g % 9
Ejemplos:
if (!(calificación < 5))
System.out.println (“Aprobado”);
La evaluación en cortocircuito es una forma de evaluar condiciones muy común en los lenguajes de
programación modernos. Consiste en que en cuanto se conoce el valor final de la expresión no se evalúan el
resto de condiciones.
Ejemplo 1:
(sexo == ‘m’) && (edad >= 65) →Si sexo no es mujer, no se evalúa la segunda condición edad >= 65.
Ejemplo 2:
(notaLab == noApto) || (notaTeoría < 5) → Si notaLab es noApto no se evalúa la segunda condición
Deducimos de los ejemplos que:
• En expresiones con &&, si las condiciones son independientes, conviene colocar primero la que tenga
mayores probabilidades de ser falsa.
• En expresiones con ||, si las condiciones son independientes, conviene colocar primero la que tenga
mayores probabilidades de ser verdadera.
Ejemplo:
int counter;
int media;
if (counter != 0 && media/counter > 5) { ... }
6
Programación. DW 1º
Variable = expresión;
Ejemplos:
aux = 5;
preciofinal = precio – (precio * 20/100);
Ejemplo:
int operando1;
int operando2;
float operando3;
7
Programación. DW 1º
El casting implícito es el que utiliza Java automáticamente para convertir de un tipo más restringido a un tipo
más amplio. Es posible asignar by te -> short -> int -> long -> float -> double
Sin embargo, se requiere casting explícito cuando existe una potencial pérdida de exactitud, o cuando lo desea
expresamente el usuario. El casting explícito se codifica con el operador paréntesis
int num1=1000;
short num2= (short) num1;
* Si se sustituyera la primera línea int num1=100 por int num1=1000000, el código compilaría bien, pero
habría pérdida de datos, pues el 1000000 se sale del rango de short [-32768, 32767]. Al mostrar por consola el
valor se obtendría un resultado incongruente.
int a = 5;
int b = 4;
a / b toma el valor 1
(float) (a/b) toma el valor 1.0
(float) a / b toma el valor 1.25
8
Programación. DW 1º
System.out.print (…………)
System.out.println ( ………….)
La diferencia entre print y println es que println introduce un salto de línea al final de la expresión visualizada
Ejemplos:
System.out.print(“Introduce tu edad”);
System.out.println(“El máximo es “ + max + “ y el mínimo es “ + min);
9
Programación. DW 1º
9. INSTRUCCIONES CONDICIONALES
if (condicion)
{
instrucciones_si_condicion_verdadera ;
}
else
{
instrucciones_si_condicion_falsa ;
}
9.2. EL OPERADOR ? :
Se utiliza, generalmente, para dar un valor u otro a una variable, en función de una condición.
Evalúa la Condición. Si es verdadera se evalúa la Expresión1, sino la Expresión2
Ejemplo:
boolean haceCalor;
if (temperatura >= 30)
boolean haceCalor;
haceCalor=true; es equivalente a
haceCalor=(temperatura>=30 ? true : false);
else
haceCalor=false;
10
Programación. DW 1º
switch (expresión)
{
case valor1: instrucciones1;
break;
case valor2: instrucciones2;
break;
............
............
case valorN: instruccionesN;
break;
default: instrucciones_por_defecto;
}
Después de evaluarse la expresión se ejecutan las instrucciones de la rama cuyo valor coincida con el de la
expresión.
La parte default es opcional y se ejecuta cuando ninguno de los valores enumerados, de valor1 a valorN, ha
coincidido con el valor de la expresión.
Ejemplo
Programa que reciba un número de día de la semana y escriba su nombre.
public static void main(String[] args) {
int dia;
dia = Consola.leeInt();
switch (dia)
{
case 1: System.out.print (“Lunes\n”);
break;
case 2: System.out.print (“Martes\n”);
break;
case 3: System.out.print (“Miércoles\n”);
break;
case 4: System.out.print (“Jueves\n”);
break;
case 5: System.out.print (“Viernes\n”);
break;
case 6: System.out.print (“Sábado\n”);
break;
case 7: System.out.print (“Domingo\n”);
break;
default: System.out.print (“El día tiene que estar entre 1 y 7\n”);
}
}
Si la variable día hubiera sido declarada como char (char dia;), las sentencias case habrían sido de la forma:
11
Programación. DW 1º
while ( condicion )
{
Instrucciones_que_se_repiten ;
}
Ejemplo: Programa que pida un número y escriba todos sus divisores en orden descendente:
Al igual que en la instrucción if, es posible omitir las llaves cuando el while tiene una única sentencia.
do
{
instrucciones_que_se_repiten ;
} while (condición);
12
Programación. DW 1º
Ejemplo
Programa que lee una línea, carácter a carácter, y visualiza cuántas veces aparece la letra X
donde:
• La Inicialización es una instrucción, o varias separadas por comas, que se ejecutan tan sólo la primera vez.
Suele usarse para inicializar variables de control del bucle.
• La Condición_para_continuar (al igual que en la instrucción while) provoca el fin del bucle cuando su valor
es falso
• El Cambio es una instrucción, o varias separadas por comas, que se ejecutan una vez en cada iteración del
bucle antes de evaluar la condición de fin. Suele ser la instrucción de incremento de la variable índice, como,
por ejemplo,
i = i + 3;
i ++ ;
pero puede ser cualquier tipo de instrucción.
Ejemplos
13
Programación. DW 1º
• Programa que lea dos números y escriba parejas de números formados por cada uno de los leídos
incrementando el primero y decrementando el segundo en dos unidades hasta que el primero sea mayor
o igual que 10 y el segundo sea menor o igual que 10.
main ( )
{
int i, j;
System.out.println(“Introduzca dos números:”);
i = Consola.leeInt( );
j = Consola.leeInt( );
for ( ; (i < 10) && (j > 10); i = i + 2, j = j – 2)
{
System.out.println ( i + “\t” + j );
}
}
3 15
5 13
7 11
14