UNIDAD 2 Introduccion Java
UNIDAD 2 Introduccion Java
UNIDAD 2:
IDENTIFICACIÓN DE LOS ELEMENTOS
DE UN PROGRAMA INFORMÁTICO EN JAVA
1
Programación 1ºDAW
2
Programación 1ºDAW
♦ La línea public static void main(String args[]), sirve para indicar el inicio del
método main. Es la función por donde el programa empezará la ejecución.
Este método contiene las instrucciones que se ejecutarán cuando el programa
arranque. Es decir lo que está tras las llaves del main, es el programa en sí.
3
Programación 1ºDAW
EJEMPLO1:
Creamos una carpeta EjerciciosJava en C o D. En ella creamos un fichero en
cualquier editor de textos con el nombre PrimerPrograma.java
EJEMPLO2:
Creamos un fichero en cualquier editor de textos con el nombre
VisualMensaje.java ¿Qué haría este programa al ejecutarse?
public class VisualMensaje {
public static void main(String[] args) {
System.out.println("Este programa se puede ejecutar en diferentes
entornos");
System.out.println("Fin del programa");
}
}
EJEMPLO3:
Crea con el bloc de notas un archivo con extensión .java que tenga el código java
necesario para mostrar en pantalla tu nombre y apellidos, curso y ciclo que estás
estudiando, de modo que la clase y el archivo reciban el nombre de MisDatos.
java archivo
Estos comandos hay que escribirlos desde la línea de comandos en la carpeta en la
que se encuentre el programa. Pero antes hay que asegurarse de que los programas
del kit de desarrollo son accesibles desde cualquier carpeta del sistema. Para ello
hay que haber configurado adecuadamente las variables del sistema (Path y
Classpath).
4
Programación 1ºDAW
3 IDENTIFICADORES
REGLAS:
• El primer carácter debe ser una letra, _ o $
• El lenguaje java distingue entre mayúsculas y minúsculas.
• Permite que el nombre del identificador esté acentuado y la letra ñ
• Se permite el uso de _ y números, pero nunca al principio.
• No se permiten espacios en blanco como parte del identificador.
• No se permiten símbolos que no se consideren letras: +, -, %, /,..
• Existen una serie de palabras reservadas
CONVENIOS:
5
Programación 1ºDAW
PALABRAS RESERVADAS
Las variables son contenedores que sirven para almacenar los datos que utiliza un
programa. Dicho más sencillamente, son nombres que asociamos a determinados
datos. La realidad es que cada variable ocupa un espacio en la memoria RAM del
ordenador para almacenar el dato al que se refiere. Es decir cuando utilizamos el
nombre de la variable realmente estamos haciendo referencia a un dato que está
en memoria.
Antes de poder utilizar una variable, ésta se debe declarar. Lo cual se debe hacer
de esta forma:
tipo nombreVariable;
Donde tipo es el tipo de datos que almacenará la variable (texto, números
enteros,...) y nombreVariable es el nombre con el que se conocerá la variable.
Ejemplos:
int días; // días es un número entero, sin decimales
boolean decisión; //decisión sólo puede ser verdadera o falsa
También se puede hacer que la variable tome un valor inicial al declarar:
int días=365;
Y se puede declarar más de una variable a la vez del mismo tipo en la misma línea si
las separamos con comas
int días=365, año=23, semanas;
Al declarar una variable se puede incluso utilizar una expresión:
int a=13, b=18;
int c=a+b; //es válido, c vale 31
6
Programación 1ºDAW
4.1 Asignación
En Java para asignar valores a una variable, basta con utilizar el signo =. Ya se ha
visto en el apartado anterior que al declarar se puede asignar un valor:
int x=7;
Toda variable tiene un ámbito. Esto es la parte del código en la que una variable se
puede utilizar. De hecho las variables tienen un ciclo de vida:
(1) En la declaración se reserva el espacio necesario para que se puedan comenzar
a utilizar (digamos que se avisa de su futura existencia)
Ejemplo:
{ int x=9;
}
int y=x; //error, ya no existe x
7
Programación 1ºDAW
Las variables miembro (de toda la clase), al ser declaradas toman valores por
defecto; Las variables numéricas toman el valor 0, los caracteres null(\0), las
booleanas false, y las referenciadas a null.
4.3 CONSTANTES
5 TIPOS DE DATOS
8
Programación 1ºDAW
NUMÉRICOS ENTEROS
Se usan para representar números enteros con signo. Hay cuatro tipos: byte,
short, int y long.
Los literales enteros se almacenan por defecto en el tipo int, (4 bytes con signo), o
si se trabaja con números muy grandes, con el tipo long, (8 bytes con signo),
añadiendo una L ó l al final del número
EJEMPLO: Variables1
public class Variables1 {
9
Programación 1ºDAW
int i=1200;
byte b=(byte) i; //El valor de b no tiene sentido
Los decimales se almacenan en los tipos float y double. Se les llama de coma
flotante por como son almacenados por el ordenador. Los decimales no son
almacenados de forma exacta por eso siempre hay un posible error. En los
decimales de coma flotante se habla, por tanto de precisión. Es mucho más preciso
el tipo double que el tipo float.
Para asignar valores literales a una variable de coma flotante, hay que tener en
cuenta que el separador decimal es el punto y no la coma. Es decir para asignar el
valor 2,75 a la variable x se haría: x=2.75;
A un valor literal (como 1.5 por ejemplo), se le puede indicar con una f al final del
número que es float (1.5f por ejemplo) o una d para indicar que es double. Si no se
indica nada, un número literal siempre se entiende que es double, por lo que al usar
tipos float hay que convertir los literales.
Los valores decimales se pueden representar en notación decimal: 1.345E+3
significaría 1,345·103 o lo que es lo mismo 1345.
Lógicamente no podemos asignar valores decimales a tipos de datos enteros:
int x=9.5; //error
Sí podremos mediante un cast:
int x=(int) 9.5;
pero perderemos los decimales (en el ejemplo, x vale 9).
10
Programación 1ºDAW
EJEMPLO: Variables2
Añade, declara e inicializa una variable tipo double.
public class Variables2 {
public static void main(String[] args) {
float varFloat;
varFloat=3.46f;
System.out.println (" El valor de la variable es="+varFloat);
}
}
BOOLEANA
Los valores booleanos (o lógicos) sirven para indicar si algo es verdadero (true) o
falso (false). boolean b=true;
A diferencia del lenguaje C, no se pueden en Java asignar números a una
variable booleana (en C, el valor false se asocia al número 0, y cualquier valor
distinto de cero se asocia a true).
Tampoco tiene sentido intentar asignar valores de otros tipos de datos a variables
booleanas mediante casting:
EJEMPLO: Variables3.
11
Programación 1ºDAW
CARACTERES
Los valores de tipo carácter sirven para almacenar símbolos de escritura (en Java
se puede almacenar cualquier código Unicode). Los valores Unicode son los que Java
utiliza para los caracteres. Ejemplo: Crea una clase Variables4 para comprobarlo
char letra;
letra=’C’; //Los caracteres van entre comillas
letra=67; //El código Unicode de la C es el 67. Esta línea
//hace lo mismo que la anterior
int a=1;
byte b;
b= (byte) a; //correcto
En el siguiente ejemplo:
byte n1=100, n2=100, n3;
n3= n1 * n2 /100;
12
Programación 1ºDAW
Aunque el resultado es 100, y ese resultado es válido para un tipo byte; lo que
ocurrirá en realidad es un error. Eso es debido a que la multiplicación 100 * 100
da como resultado 10000, es decir un número de tipo int. Aunque luego se divide
entre 100, no se vuelve a convertir a byte; ya que ante cualquier operación el tipo
resultante siempre se corresponde con el tipo más grande que intervenga en la
operación. Lo correcto sería: n3 = (byte) (n1 * n2 / 100);
float double
Conversiones sin pérdidas de información
EJEMPLO: Ejemplo de conversión implícita:
public class ConverImplicita {
13
Programación 1ºDAW
Conversión explícita: Cuando hacemos una conversión de un tipo con menos bits a
otro con más bits.
Formato:
variable_donde_se_guarda = (tipo_variable_donde_se_guarda)
variable_contiene_dato_convertir;
El tamaño de los tipos que queremos convertir es muy importante. No todos los
tipos se convertirán de forma segura. Por ejemplo, al convertir un long en un int, el
compilador corta los 32 bits superiores del long (de 64 bits), de forma que encajen
en los 32 bits del int, con lo que si contienen información útil, esta se perderá.
14
Programación 1ºDAW
Un tipo de dato referenciado no guarda el valor real del dato, sino que almacena
una dirección en memoria. En Java los objetos y los arrays entre otros.
int[] arrayDeEnteros;
Cuenta cuentaCliente;
ARRAYS(VECTORES)
Se puede observar que los corchetes son opcionales en este tipo de declaración de
vector, tanto después del tipo de variable como después del identificador.
STRINGS (CADENAS)
En Java se tratan como una clase especial llamada String. Las cadenas se gestionan
internamente por medio de una instancia de la clase String. Una instancia de la
clase String es un objeto que ha sido creado siguiendo la descripción de la clase.
15
Programación 1ºDAW
Cadenas constantes
Cuando Java encuentra una constante de cadena, crea un caso de la clase String y
define su estado, con los caracteres que aparecen dentro de las comillas dobles.
Los tipos enumerados son un vector de números naturales {0,...,n} lo que ocurre es
que para facilitar la comprensión del código, cambias la forma de representar los
números {0,1,2,...,n} por otra más representativa {Lunes, Martes,...,Domingo}. Pero
no debes olvidar que los elementos no son String ni nada por el estilo son números.
Piensa por ejemplo los números romanos, donde no debes ver V como una letra sino
como el número 5.
diaSemana.ordinal() devolverá 0.
16
Programación 1ºDAW
6.1 OPERADORES
OPERADOR DESCRIPCIÓN
+ Suma
– Resta
* Multiplicación
/ División
Hay que tener en cuenta que el resultado de estos operadores varía notablemente
si usamos enteros o si usamos números de coma flotante.
Por ejemplo:
double resultado1, d1=14, d2=5;
int resultado2, i1=14, i2=5;
resultado1= d1 / d2;
resultado2= i1 / i2;
Es más incluso:
double resultado;
int i1=7,i2=2;
resultado=i1/i2; //Resultado valdrá --
resultado=(double)i1/i2; //Resultado valdrá --
EJEMPLO:
int resultado, i1=14, i2=5;
resultado = i1 % i2; //El resultado será --
17
Programación 1ºDAW
operador significado
< Menor
> Mayor
De RELACIÓN
18
Programación 1ºDAW
El operador && (AND) sirve para evaluar dos expresiones de modo que si ambas
son ciertas, el resultado será true sino el resultado será false. Ejemplo:
boolean carnetConducir=true;
int edad=20;
boolean puedeConducir= (edad>=18) && carnetConducir;
//Si la edad es de al menos 18 años y carnetConducir es true,
// puedeConducir es true
El operador || (OR) sirve también para evaluar dos expresiones. El resultado será
true si al menos uno de las expresiones es true. Ejemplo:
boolean nieva =true, llueve=false, graniza=false;
19
Programación 1ºDAW
OPERADORES DE ASIGNACIÓN
Permiten asignar valores a una variable. El fundamental es “=”.
x += 3;
En el ejemplo anterior lo que se hace es sumar 3 a la x (es lo mismo x+=3, que
x=x+3).
Eso se puede hacer también con todos estos operadores:
+= -= *= /= &= |= ^= %= >>= <<=
20
Programación 1ºDAW
Ejemplo:
int x=5, y=5, z;
z=x++; //z vale 5, x vale 6
z=++y; //z vale 6, y vale 6
21
Programación 1ºDAW
OPERADOR ?
Este operador (conocido como if de una línea) permite ejecutar una instrucción u
otra según el valor de la expresión. Sintaxis:
expresionlogica?valorSiVerdadero:valorSiFalso;
EJEMPLO:
paga=(edad>18)?6000:3000;
En este caso si la variable edad es mayor de 18, la paga será de 6000, sino será de
3000. Se evalúa una condición y según es cierta o no se devuelve un valor u otro.
Nótese que esta función ha de devolver un valor y no una expresión correcta. Es
decir, no funcionaría:
EJEMPLO:
1. Realiza un programa utilizando el operador? que compare dos números
distintos dados por el programador y devuelva el mayor
22
Programación 1ºDAW
6.2 PRECEDENCIA
A veces hay expresiones con operadores que resultan confusas. Por ejemplo en:
resultado = 8 + 4 / 2;
Es difícil saber el resultado. ¿Cuál es? ¿seis o diez? La respuesta es 10 y la razón
es que el operador de división siempre precede en el orden de ejecución al de la
suma. Es decir, siempre se ejecuta antes la división que la suma. Siempre se pueden
usar paréntesis para forzar el orden deseado:
resultado = (8 + 4) / 2;
Los operadores con mayor precedencia son evaluados antes que los operadores con
una precedencia relativa menor. Cuando en una sentencia aparecen operadores con
la misma precedencia:
23
Programación 1ºDAW
x + y / 100
24