2.1. Sintaxis básica - Laboratorio SS.OO. [Sistemas...

8
18/01/12 1 Sintaxis básica, variables y 7pos Curso de Programación en Java Jesús Montes Sánchez jmontes@fi.upm.es Contenidos 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) Sintaxis básica 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 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 Se indica como parámetro cuando se ejecuta la JVM Debe haber sido compilada y su fichero .class debe exis7r dentro del CLASSPATH Posee un punto de entrada Comienza con las palabras reservadas public static void main (String[] args) Seguido de esto hay un bloque { } que con7ene el código que se ejecuta al comenzar el programa. Sintaxis básica, variables y 7pos Jesús Montes Sánchez (jmontes@fi.upm.es) Programa de ejemplo // Esto es un comentario de una linea /* Esto es un comentario de multiples lineas */ // Clase holaMundo public class holaMundo { /* El metodo main es el punto de comienzo del programa */ public static void main(String[] args) { System.out.println("Hola mundo"); } } Clase principal Punto de entrada Comentarios Sintaxis básica, variables y 7pos Jesús Montes Sánchez (jmontes@fi.upm.es)

Transcript of 2.1. Sintaxis básica - Laboratorio SS.OO. [Sistemas...

Page 1: 2.1. Sintaxis básica - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/.../java/2012/sintaxis_basica.pdfCurso&de&Programación&en&Java & & Jesús&Montes&Sánchez jmontes@fi.upm.es&

18/01/12  

1  

Sintaxis  básica,  variables  y  7pos  

Curso  de  Programación  en  Java      

Jesús  Montes  Sánchez  [email protected]  

 

Contenidos  

!   Sintaxis  básica  

!   Variables  y  7pos  

!   Entrada/Salida  básica  

!   Operadores  y  expresiones  

 

Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

Sintaxis  básica  

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  

!   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  ([email protected])  

Clase  principal  

!   Se  indica  como  parámetro  cuando  se  ejecuta  la  JVM  

!   Debe  haber  sido  compilada  y  su  fichero  .class  debe  exis7r  dentro  del  CLASSPATH  

!   Posee  un  punto  de  entrada  !   Comienza  con  las  palabras  reservadas  

public static void main (String[] args)  

!   Seguido  de  esto  hay  un  bloque  {  }  que  con7ene  el  código  que  se  ejecuta  al  comenzar  el  programa.  

Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

Programa  de  ejemplo  

// Esto es un comentario de una linea /* Esto es un comentario de multiples lineas */ // Clase holaMundo public class holaMundo { /* El metodo main es el punto de comienzo del programa */ public static void main(String[] args) { System.out.println("Hola mundo"); } }

Clase  principal  

Punto  de  entrada  

Comentarios  

Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

Page 2: 2.1. Sintaxis básica - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/.../java/2012/sintaxis_basica.pdfCurso&de&Programación&en&Java & & Jesús&Montes&Sánchez jmontes@fi.upm.es&

18/01/12  

2  

Comentarios  

!   Sirven  para  explicar  porciones  del  código  a  nosotros  mismos  (para  el  futuro)  y  a  otros  

!   Muy  ú7l  en  zonas  complejas  

!   Tan  importante  como  escribir  buen  código  

!   Ignorado  por  el  compilador  

!   De  una  línea:  precedido  por  //  

!   Múl7ples  líneas:  entre  /*  y  */  

Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

Bloques  de  código  

!   Zonas  de  texto  entre  {  }  

!   Sucesión  de  sentencias  

!   Las  sentencias  terminan  en  ;  

!   Preferiblemente  una  sentencia  por  línea  

!   Se  pueden  anidar  bloques  

{

sentencia1;

sentencia2;

{

// Comentario

sentencia3;

}

}

Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

Otros  elementos  del  lenguaje  

!   Palabras  reservadas  !   Palabras  propias  del  lenguaje  Java  !   Con  significado  específico  !   El  resaltado  de  sintaxis  las  iden7fica  ! 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  ([email protected])  

Variables  y  7pos  

Variables  

!   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  ([email protected])  

Tipo  y  valor  

Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

Tipo:  Zapatos  Valor:  El  par  de  zapatos  concreto  

 que  contenga  

Tipo:  Líquido  Valor:    El  líquido  concreto  que  

 contenga  

Page 3: 2.1. Sintaxis básica - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/.../java/2012/sintaxis_basica.pdfCurso&de&Programación&en&Java & & Jesús&Montes&Sánchez jmontes@fi.upm.es&

18/01/12  

3  

Declaración  de  variables  

!   Simple  

 tipo identificador;

!   Múl7ple  

 tipo identificador1, identificador2;  

!   Con  asignación  

 tipo identificador = valor;

 

Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

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      

Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

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

!   Valores  true o  false

Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

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’,  ‘#’  

Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

Número  entero  

!   Para  contar  o  numerar  

!   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  ([email protected])  

Número  real  

!   Números  reales,  posi7vos  o  nega7vos  y  con  o  sin  decimales  

!   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  ([email protected])  

Page 4: 2.1. Sintaxis básica - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/.../java/2012/sintaxis_basica.pdfCurso&de&Programación&en&Java & & Jesús&Montes&Sánchez jmontes@fi.upm.es&

18/01/12  

4  

Tipos  básicos  

Tipo   Tamaño  en  bits   Valores  

boolean true  o  false

char 16   De  \u0000  a  \uFFFF  

byte 8   De  -­‐128  a  127  

short 16   Número  entero  de  -­‐32768  a  32767  

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  ([email protected])  

Declaraciones  de  ejemplo  

int i;

float i, j, k;

char a = ‘x’, b = ‘4’, c = a;

boolean b = false;

double k = -0.25;

Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

¿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  ([email protected])  

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  ([email protected])  

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;

float valor = a;  

 

Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

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  

Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

Page 5: 2.1. Sintaxis básica - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/.../java/2012/sintaxis_basica.pdfCurso&de&Programación&en&Java & & Jesús&Montes&Sánchez jmontes@fi.upm.es&

18/01/12  

5  

Conversión  de  7pos  

long a = 1; int b = a;

 

!   Forma  correcta:   long a = 1; int b = (int)a;  

Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

Entrada/salida  básica  

Entrada/salida  estándar  

!   Mecanismos  sencillos  para  leer  y  escribir  información  por  la  terminal  

!   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:  

String cadena = “mi cadena de texto”;

Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

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)

!   Donde  expr  es  una  expresión  de  Java  que  queramos  mostrar.  

!   Ejemplo:   int a = 0;

String cadena = “Hola”;

System.out.println(a);

System.out.print(cadena);

 Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

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  ([email protected])  

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  ([email protected])  

Page 6: 2.1. Sintaxis básica - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/.../java/2012/sintaxis_basica.pdfCurso&de&Programación&en&Java & & Jesús&Montes&Sánchez jmontes@fi.upm.es&

18/01/12  

6  

Entrada  de  datos  básica  

!   Leyendo  cadenas  de  caracteres  con  java.u7l.Scanner    import java.util.Scanner; public class EntradaInteractiva {

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  ([email protected])  

Operadores  y  expresiones  

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  

int a = 0, b;

b = 10;

a = b;

Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

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  

+ 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  ([email protected])  

Expresiones  aritmé7cas  

! int a = 5 - (2 * 2);

!   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  ([email protected])  

Auto-­‐incremento  y  auto-­‐decremento  

!   Son  operadores  unarios  (se  aplican  sobre  una  única  variable)  

!   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  ([email protected])  

Page 7: 2.1. Sintaxis básica - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/.../java/2012/sintaxis_basica.pdfCurso&de&Programación&en&Java & & Jesús&Montes&Sánchez jmontes@fi.upm.es&

18/01/12  

7  

Precedencia  de  operador  

!   Tiene  preferencia  *,  /,  %  frente  a  +,  -­‐  

!   Se  evalúa  de  izquierda  a  derecha  

!   Se  pueden  usar  paréntesis  

num = 2 * 10 + 5; // num = 25 num = 2 * (10 + 5); // num = 30  

 

Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

Asignación  combinada  

!   Se  combina  un  operador  aritmé7co  binario  con  una  asignación  

variable op= expresión; // op es +,-,*,/,%

!   Equivale  a  

variable = variable op expresión;  

!   Ejemplos   int a = 10; a += 10; // a = a + 10 a /= 5; // a = a / 5 a %= 6; // a = a % 6  

 Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

Operadores  de  comparación  

!   Se  usan  para  comparar  datos  y  variables  de  7pos  compa7bles  

!   Producen  expresiones  de  7po  boolean

==  igual  

!=  dis7nto  

>  Mayor  

<  menor  

>=  mayor  o  igual  

<=  menor  o  igual  

Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

Operadores  lógicos  

!   Se  usan  para  operar  con  datos  y  variables  de  7po  boolean  

!   Producen  expresiones  de  7po  boolean

!   Se  pueden  combinar  con  otras  expresiones  de  7po  boolean  

&&  y  (and)  

||  o  (or)  

!  no  (not)  

Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

Operadores  lógicos  

A  &&  B   A  ||  B  

A   B   Resultado  

true   true   true  

true   false   false  

false   true   false  

false   false   false  

A   B   Resultado  

true   true   true  

true   false   true  

false   true   true  

false   false   false  

Java  es  un  lenguaje  “perezoso”:  Si  conociendo  el  primer  término  ya  se  sabe  el  resultado,  no  se  

evalúa  el  segundo  

Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

Expresiones  lógicas  

int a = 10; int b = 20, c = 30; boolean d, e, f, g; d = (a > b); // d es false e = (b <= c); // e es true f = d || e; // f es true g = (a != b) && ((c < b) || (c == a))

Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])  

Page 8: 2.1. Sintaxis básica - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/.../java/2012/sintaxis_basica.pdfCurso&de&Programación&en&Java & & Jesús&Montes&Sánchez jmontes@fi.upm.es&

18/01/12  

8  

Operador  condicional  

!   A  ?  B  :  C  

!   Si  (A)  entonces  vale  B,  si  no  vale  C  

int a = 10; int b = 20, c; char d;

c = a > b ? 5 : 6;

d = c < a ? ‘X’ : ‘Y’;

Sintaxis  básica,  variables  y  7pos  -­‐  Jesús  Montes  Sánchez  ([email protected])