java programacion

21
Universidad Pontificia de Salamanca (campus Madrid) Facultad de Informática Luis Rodríguez Baena Programación en Java Tema 2. El lenguaje de programación Java (Parte 1)

Upload: saleh-alfonso

Post on 15-Sep-2015

242 views

Category:

Documents


1 download

DESCRIPTION

Java Programacion

TRANSCRIPT

  • 1Universidad Pontificia de Salamanca (campus Madrid)Facultad de Informtica

    Luis Rodrguez Baena

    Programacin en Java

    Tema 2. El lenguaje de programacin Java(Parte 1)

  • 2Universidad Pontificia de Salamanca (campus Madrid)Facultad de Informtica Luis Rodrguez Baena, 2003 2

    Elementos del lenguaje (I)

    El juego de caracteres.z No utiliza ASCII, sino Unicode de 16 bits.z Cada carcter se puede representar por \uxxxx.

    Comentarios.z //comentario. Ignora el texto hasta final de lnea.z /*comentario*/. Multilneaz /**comentario*/. Multilnea. Se utiliza para la documentacin en

    lnea mediante javadoc.

    Identificadores.z Utilizan caracteres Unicode.z Sensibles a maysculas.

  • 3Universidad Pontificia de Salamanca (campus Madrid)Facultad de Informtica Luis Rodrguez Baena, 2003 3

    Elementos del lenguaje (II)

    Palabras reservadas.abstract default if private thisboolean do implements protected throwbreak double import public throwsbyte else instanceof return transientcase extends int short trycatch final interface static voidchar finally long strictfp volatileclass float native super whileconst for new switchcontinue goto package synchronizedz const y goto no se pueden utilizar

  • 4Universidad Pontificia de Salamanca (campus Madrid)Facultad de Informtica Luis Rodrguez Baena, 2003 4

    Tipos de datos

    Datos de referencia y tipos de datos primitivos. Datos primitivos

    Read doble precisinNmero en coma flotante de 64 bitsdoubleReal de simple precisinNmero en coma flotante de 32 bitsfloatEntero largoEntero de 64 bitslongEnteroEntero de 32 bits complemento a 2intEnteroEntero de 16 bits complemento a 2shortEntero cortoEntero de 8 bits complemento a 2byteCarcterUn carcter Unicode de 16 bitscharDato lgicotrue o falsebooleanDescripcinTamao / formatoTipo

  • 5Universidad Pontificia de Salamanca (campus Madrid)Facultad de Informtica Luis Rodrguez Baena, 2003 5

    Literales (I)

    Literales de referencia (null). Literales booleanos (true y false). Literales de carcter.z Carcter Unicode entre comillas simples.z Representacin hexadecimal \uxxxx donde xxxx es el valor

    hexadecimal del carcter.z Secuencias de escape

    \\\\t

    Slash invertido

    Comillas dobles

    Tabulador

    \r\f\b

    Retorno de carro

    Salto de pgina

    Retroceso

    Carcter en octal\dddComillas simples\Nueva lnea\n

  • 6Universidad Pontificia de Salamanca (campus Madrid)Facultad de Informtica Luis Rodrguez Baena, 2003 6

    Literales (II)

    Literales enteros.z Prefijo 0 (cero) para octal y 0x para hexadecimal.z Sufijo L o l para enteros largos.

    Literales de coma flotante.z F o f para simple precisin, D o d para doble precisin.z Las constantes sern float a no ser que se indique lo contrario.z Una constante double no se puede asignar directamente a una

    variable float aunque est dentro de su rango.

    Literales de cadena.z Serie de caracteres Unicode separados por comillas dobles.

  • 7Universidad Pontificia de Salamanca (campus Madrid)Facultad de Informtica Luis Rodrguez Baena, 2003 7

    Variables (I)

    Segn su tipo de informacin:z Variables de tipos primitivos.z Variables de referencia.z El tipo void.

    Segn su papel en el programa:z Variables de clase. Modificador static.z Variables de instancia.z Componentes de un array.z Argumentos de mtodos.z Argumentos de contructuctores.z Argumentos de controladores de excepciones.z Variables locales.

  • 8Universidad Pontificia de Salamanca (campus Madrid)Facultad de Informtica Luis Rodrguez Baena, 2003 8

    Variables (II)

    Declaracin de variables.z modificador [static] [final]tipodato identificadorz El identificador, por convencin, comienza en minsculas.

    Inicializacin de variables.z Es necesario inicializar las variables locales.z En el resto toman sus valores por omisin.z Inicializacin en la declaracin:

    tipodato identificador expresinInicializacin

    Variables final.z No cambian su valor (constantes).z final en tipos primitivos y en tipos de referencia.

  • 9Universidad Pontificia de Salamanca (campus Madrid)Facultad de Informtica Luis Rodrguez Baena, 2003 9

    Variables (III)

    Visibilidadz Variables locales: el mdulo donde han sido declaradas.z Miembros de una clase: depende del modificador.

    9 Por omisin acceso de paquete (amistoso o friendly).9Modificador public. Acceso a todas las clases.9Modificador private. Acceso a los miembros de la clase.9Modificador protected. Accesible por las clases hijas (herencia) y por

    los miembros de la clase.

    XXpaqueteXXXXpublic

    XXXprotectedXprivate

    MundoPaqueteSubclaseClaseModificador

  • 10

    Universidad Pontificia de Salamanca (campus Madrid)Facultad de Informtica Luis Rodrguez Baena, 2003 10

    Conversiones de tipos

    Conversin implcita de un tipo de menos a ms precisin.z Por ejemplo, de char a int, de int a float.z Perdida de precisin en algunos casos.

    9 Por ejemplo, de long a double ya que double tiene un rango entero menor.

    Conversin explcita: cast.z Prdida de precisin cuando el destino tiene menos dgitos

    significativos.

    Conversin a cadenas.z Siempre es posible la conversin utilizando el operador de

    concatenacin.z Representacin en cadena del dato u objeto: el mtodo toString().

  • 11

    Universidad Pontificia de Salamanca (campus Madrid)Facultad de Informtica Luis Rodrguez Baena, 2003 11

    Clases de envoltura (I)

    Los tipos primitivos tienen clases de envoltura en el paquete java.lang.z Boolean, Character, Byte, Short, Integer, Long, Float y Double.

    z Proporcionan constantes y mtodos adicionales a los tipos primitivos.

    z Permiten pasar por referencia tipos primitivos. Constructores:z Integer i = new Integer(5);z Double d = new Double(123.30);

  • 12

    Universidad Pontificia de Salamanca (campus Madrid)Facultad de Informtica Luis Rodrguez Baena, 2003 12

    Clases de envoltura (II)

    Algunos mtodosz public Tipo tipoValue(). Devuelve un dato del tipo primitivo

    definido por tipo.9 System.out.println(d.intValue()); devuelve el dato primitivo 123

    z public static Tipo valueOf(String cad). Devuelve el mismo valor que el constructor new tipo(cad).9 d1 = Double.valueOf("129.32"); //d1 = 129.32

    z public static toString(). Devuelve una representacin del objeto en forma de cadena.

  • 13

    Universidad Pontificia de Salamanca (campus Madrid)Facultad de Informtica Luis Rodrguez Baena, 2003 13

    Clases de envoltura (III)

    Algunos mtodosz public int compareTo(Tipo otro). Devuelve un valor igual,

    menor o mayor que 0, dependiendo si el objeto que lo invoca es igual mayor o menor que otro.9 System.out.println(d.compareTo(d1)); //Escribe -1

    z public int compareTo(Object obj). Si obj es de distinto tipo que el objeto actual devuelve null.

    z public boolean equals(Object obj). Devuelve true si los objetos son del mismo tipo y envuelven el mismo valor.9 Devuelven null si obj no es del mismo tipo que el objeto que lo invoca.

  • 14

    Universidad Pontificia de Salamanca (campus Madrid)Facultad de Informtica Luis Rodrguez Baena, 2003 14

    Operadores (I)

    &&,|| (producen cortocircuito)Lgicos condicionales

    &,|,^, ! (no producen cortocircuito)Lgicos

    instanceof (evala si una referencia a un objeto es una instancia de una clase o interfaz)

    =,==,!=Relacionales

    ++,-- (antes o despus de la expresin)Incrementales

    +, +=Concatenacin

    =, +=, -=,*=,/=,%=Asignacin

    +,-,*,/,%Aritmticos binarios

    +,-Aritmticos unarios

  • 15

    Universidad Pontificia de Salamanca (campus Madrid)Facultad de Informtica Luis Rodrguez Baena, 2003 15

    Operadores (II)

    =,>>>=De bits (asignacin)

    (desplaza bits a la derecha, rellenando con el ms significativo, el signo, a la izquierda), >>> (desplaza bits a la derecha rellenando con 0 a la izquierda)

    De bits (desplazamiento)

    &, |, ^,~De bits

    exprLgica?valor1:valor2?:

  • 16

    Universidad Pontificia de Salamanca (campus Madrid)Facultad de Informtica Luis Rodrguez Baena, 2003 16

    Operadores (III)

    Prioridades

    &De bits y lgico (AND)

    ==,!=Igualdad

    ,=,==,instanceofRelacionales

    ,>>>Desplazamiento

    +,-Aditivos

    *,/,%Multiplicadores

    new, (tipo)exprCreacin o tipo

    +,-,++expr,--expr,~,!Unarios

    [],.,(argumentos),expr++,expr--Sufijo

  • 17

    Universidad Pontificia de Salamanca (campus Madrid)Facultad de Informtica Luis Rodrguez Baena, 2003 17

    Operadores (IV)

    Prioridades (continuacin)

    =,+=,-=,*=,/=,%=,=,>>>=Asignacin

    ?:Condicional

    ||OR condicional

    &&AND condicional

    |De bits y lgico (OR)

    ^De bits y lgico (XOR)

  • 18

    Universidad Pontificia de Salamanca (campus Madrid)Facultad de Informtica Luis Rodrguez Baena, 2003 18

    Sentencias

    De expresin.z Terminadas en punto y coma.z De asignacin, de incremento y decremento, llamadas a mtodos y

    creacin de objetos.

    De declaracin.z Declaracin de variables locales.

    Bloques.z Agrupacin de sentencias delimitadas por llaves.z Se utilizan all donde se puede utilizar una expresin.

  • 19

    Universidad Pontificia de Salamanca (campus Madrid)Facultad de Informtica Luis Rodrguez Baena, 2003 19

    Sentencias condicionales

    if(expresin-lgica)sentencia1

    [elsesentencia2]

    switch (expresin-ordinal) {case n : sentencias [;break];case n1 : sentencias [;break];case n2 : sentencias [;break];...[default: sentencias]

    }

  • 20

    Universidad Pontificia de Salamanca (campus Madrid)Facultad de Informtica Luis Rodrguez Baena, 2003 20

    Sentencias repetitivas

    while (expresin-lgica)sentencia

    dosentencia

    while (expresin-lgica)

    for (expresin-inicial; expresin-lgica; incremento)sentencia

    En el for se puede utilizar el operador , (coma) para separar varias sentencias en la expresin inicial o en la modificacin

  • 21

    Universidad Pontificia de Salamanca (campus Madrid)Facultad de Informtica Luis Rodrguez Baena, 2003 21

    Saltos

    break [etiqueta];z Para salir de cualquier bucle o bloque de sentencias.z etiqueta, indica una sentencia identificada por etiqueta: sentencia.

    continue [etiqueta];z Permite ir al comienzo de cualquier bucle o saltar a una etiqueta.

    return [expresin];z Permite salir de un mtodo devolviendo el valor de la expresin.