Download - 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&

Transcript
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])