Story Transcript
18/01/12
Contenidos
Sintaxis básica, variables y 7pos Curso de Programación en Java Jesús Montes Sánchez jmontes@fi.upm.es
! Sintaxis básica ! Variables y 7pos ! Entrada/Salida básica ! Operadores y expresiones
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
Estructura de un programa Java ! Un programa en Java es un conjunto de archivos .java que con7enen la implementación de una o mas clases java
Sintaxis básica
! El programa debe tener una clase principal, que defina un punto de entrada ! Cuando se ejecuta el programa, la JVM ejecuta el punto de entrada de la clase principal
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
Clase principal
Programa de ejemplo
! Se indica como parámetro cuando se ejecuta la JVM
// Esto es un comentario de una linea
! Debe haber sido compilada y su fichero .class debe exis7r dentro del CLASSPATH
*/
! Posee un punto de entrada
public class holaMundo {
/*
// Clase holaMundo
! Comienza con las palabras reservadas
Comentarios
Esto es un comentario de multiples lineas
Clase principal
/* El metodo main es el punto de comienzo del programa */
public static void main (String[] args)
public static void main(String[] args) {
! Seguido de esto hay un bloque { } que con7ene el código que se ejecuta al comenzar el programa.
System.out.println("Hola mundo"); } }
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
Punto de entrada
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
1
18/01/12
Comentarios
Bloques de código
! Sirven para explicar porciones del código a nosotros mismos (para el futuro) y a otros
! Zonas de texto entre { } ! Sucesión de sentencias
sentencia1;
! Muy ú7l en zonas complejas
! Las sentencias terminan en ;
sentencia2;
! Tan importante como escribir buen código ! Ignorado por el compilador
! Preferiblemente una sentencia por línea
! De una línea: precedido por //
! Se pueden anidar bloques
{
{ // Comentario sentencia3; }
! Múl7ples líneas: entre /* y */ } Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
Otros elementos del lenguaje ! Palabras reservadas ! Palabras propias del lenguaje Java ! Con significado específico ! El resaltado de sintaxis las iden7fica !
Variables y 7pos
class, public, void, int…
! Sensibilidad a mayúsculas y minúsculas (case sensi4ve) ! Java hace dis7nción entre mayúsculas y minúsculas ! Importante tanto para palabras reservadas como para iden7ficadores
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
Variables
Tipo y valor
! Representan can7dades, cualidades y/o objetos del programa ! Es una región de memoria donde se guarda un valor que posteriormente será u7lizado por el programa ! Antes de usarlas debemos declararlas para que el compilador conozca: ! Su nombre ! Su ámbito de vida ! Su visibilidad ! Su 7po asociado
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
Tipo: Valor:
Zapatos El par de zapatos concreto que contenga
Tipo: Valor:
Líquido El líquido concreto que contenga
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
2
18/01/12
Declaración de variables ! Simple tipo identificador; ! Múl7ple tipo identificador1, identificador2;
Tipos básicos ! Booleano:
verdadero, falso
! Carácter:
a, A, z, Z, 1, 9, #, ?, …
! Número entero:
-‐1, 33
! Número real:
3.14, 5E-‐10
! Con asignación tipo identificador = valor; Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
Booleano ! Para representar valores lógicos: cierto o falso ! Se u7liza para representar el resultado de las operaciones lógicas y de comparación ! Tipo boolean
Carácter ! Valores numéricos que se usan para representar caracteres (letras, números, símbolos) usando la tabla ACII o La7n 1 ! Tipo char ! Se expresan entre comillas simples: ‘a’, ‘4’, ‘#’
! Valores true o false
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
Número entero ! Para contar o numerar
Número real ! Números reales, posi7vos o nega7vos y con o sin decimales
! Diferentes bases de representación Decimal (10):
0, -‐1, 65184
Octal (8):
00, -‐01, 0177240
Hexadecimal (16):
0x0, -‐0x1, 0xFEA0
! Tres niveles de precisión: short, int y long
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
! Coma flotante ! Representación interna dis7nta a la de los enteros
! Notación decimal o cienqfica ! Dos niveles de precisión: float y double
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
3
18/01/12
Tipos básicos Tipo
Tamaño en bits
Valores true o false
boolean
Declaraciones de ejemplo int i;
char
16
De \u0000 a \uFFFF
float i, j, k;
byte
8
De -‐128 a 127
short
16
Número entero de -‐32768 a 32767
char a = ‘x’, b = ‘4’, c = a;
int
32
Número entero de -‐231 a 231 -‐ 1
long
64
Número entero de -‐263 a 263 -‐ 1
float
32
Número real en coma flotante
double
64
Numero real en coma flotante
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
boolean b = false; double k = -0.25;
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
¿Son a y b iguales? ! Caso 1 int a = 1; char b = ‘1’; ! Caso 2 int a = 1; long b = 1; ! Caso 3 int a = 1; double b = 1.0;
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
Conversión automá7ca ! La hace automá7camente el compilador ! Es segura ! Solo entre 7pos compa7bles ! Se realiza por promoción: de un 7po “menor” a uno “mayor” int a = 2;
Conversión de 7pos ! ¿Qué pasa cuando combinamos 7pos diferentes? ! Tipos compa7bles: Aquellos que almacenan información similar ! Tipos incompa7bles: Aquellos que almacenan información diferente
! 2 mecanismos ! Conversión automá7ca ! Conversión explícita
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
Conversión explícita ! Cas7ng: mecanismo para explicitar el cambio de 7po de una expresión o variable ! Le indicamos al compilador que asumimos la responsabilidad ! Sintaxis: (tipo nuevo) expresión
float valor = a; Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
4
18/01/12
Conversión de 7pos long a = 1; int b = a;
Entrada/salida básica
! Forma correcta: long a = 1; int b = (int)a;
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
Entrada/salida estándar ! Mecanismos sencillos para leer y escribir información por la terminal
Salida de datos básica ! Para mostrar una línea de texto por la terminal se usa: System.out.print(expr) System.out.println(expr)
! La clase String: ! Representa una cadena de caracteres ! Ser verá en profundidad más adelante ! Se pueden definir y usar variables (objetos) de clase String:
! Donde expr es una expresión de Java que queramos mostrar. ! Ejemplo: int a = 0; String cadena = “Hola”; System.out.println(a);
String cadena = “mi cadena de texto”;
System.out.print(cadena);
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
Secuencias de escape ! Sirven para tener mayor control sobre el formato de la salida de los datos ! Secuencias especiales de caracteres en las cadenas de texto \n
Salto de línea
\t
Tabulador
\r
retorno de carro
\\
Barra inver7da
\”
Comillas dobles
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
Entrada de datos básica ! Clase de biblioteca java.u7l.Scanner import java.util.Scanner;
public class EntradaInteractiva { public static void main(String [] args) { /∗ stdIn es un identificador, puede llamarse como queramos. Recordad llamarlo igual después ∗/ Scanner stdIn = new Scanner(System.in); System.out.print(”Escribe un número:”); int num = stdIn.nextInt(); System.out.println(num); }
}
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
5
18/01/12
Entrada de datos básica ! Leyendo cadenas de caracteres con java.u7l.Scanner import java.util.Scanner; public class EntradaInteractiva {
Operadores y expresiones
public static void main(String [] args) { Scanner stdIn = new Scanner(System.in); System.out.print(”Dime tu nombre:”); String nombre = stdIn.next(); System.out.println(nombre); } }
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
Operadores ! Permiten realizar operaciones sobre las variables y su valor ! Operador de asignación = variable = valor ! Asigna el valor a una variable ! Se puede usar en la declaración de una variable
Operadores aritmé7cos ! Se usan para calcular operaciones matemá7cas entre datos y variables del mismo 7po ! El resultado se puede almacenar en otra variable del mismo 7po ! Expresión: Uso conjunto de uno o mas valores, variables y/o operadores que se evalúa para obtener su valor final
int a = 0, b; b = 10; a = b; Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
suma
-
resta
*
multiplicación
/
división
%
módulo (resto)
++
auto-incremento
(pre ó post)
--
auto-decremento
(pre ó post)
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
Auto-‐incremento y auto-‐ decremento
Expresiones aritmé7cas !
+
int a = 5 - (2 * 2);
! Son operadores unarios (se aplican sobre una única variable)
! a++;
/* a = a + 1 */
! a=3; b=a++;
/* a=4
b=3 */
! a=3; b=++a;
/* a=4
b=4 */
! a=3; b=a--;
/* a=2
b=3 */
! f=4/3;
/* == 1 Div. entera */
! b=4%3;
/* == 1 == (4 – (4/3)*3) */
! f=4.0/3;
/* == 1.333 Div. real */
! f=(float)4/3;
/* == 1.333 Div. real */
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
! Suman o restan 1 al valor de la variable ! Los ‘pre’ se aplican antes de evaluar la expresión y los ‘post’ después int a = 0; a++; // Ahora a vale 1 a--; // Ahora a vale 0 int b = (2*a++) // b vale 0 y a 1 int c = 2*(++a) // c vale 4 y a 2 Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
6
18/01/12
Precedencia de operador
Asignación combinada
! Tiene preferencia *, /, % frente a +, -‐
! Se combina un operador aritmé7co binario con una asignación
! Se evalúa de izquierda a derecha
variable op= expresión; // op es +,-,*,/,%
! Se pueden usar paréntesis
! Equivale a
num = 2 * 10 + 5; num = 2 * (10 + 5);
variable = variable op expresión;
// num = 25 // num = 30
! Ejemplos int a = 10; a += 10; a /= 5; a %= 6;
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
Operadores de comparación ! Se usan para comparar datos y variables de 7pos compa7bles
==
igual
!=
dis7nto
! Producen expresiones de 7po boolean
>
Mayor
<
menor
>=
mayor o igual
b); e = (b b ? 5 : 6; d = c < a ? ‘X’ : ‘Y’; Sintaxis básica, variables y 7pos -‐ Jesús Montes Sánchez (jmontes@fi.upm.es)
8