La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Curso Programación en Java

Presentaciones similares


Presentación del tema: "Curso Programación en Java"— Transcripción de la presentación:

1 Curso Programación en Java
Tema 2 Tipos de datos, operadores y estructuras de control

2 Elementos del lenguaje (I)
El juego de caracteres. No utiliza ASCII, sino Unicode de 16 bits. Cada carácter se puede representar por \uxxxx. Comentarios. //comentario. Ignora el texto hasta final de línea. /*comentario*/. Multilínea /**comentario*/. Multilínea. Se utiliza para la documentación en línea mediante javadoc. Identificadores. Utilizan caracteres Unicode. Sensibles a mayúsculas.

3 Elementos del lenguaje (II)
Palabras reservadas. abstract default if private this boolean do implements protected throw break double import public throws byte else instanceof return transient case extends int short try catch final interface static void char finally long strictfp volatile class float native super while const for new switch continue goto package synchronized const y goto no se pueden utilizar

4 Tipos de datos boolean true o false char byte short int long float
Datos primitivos Datos de referencia y tipos de datos primitivos. El tamaño de cada tipo es estándar, independientemente del computador, un float, por ejemplo, siempre ocupará 4 bytes. Tipo Tamaño / formato Descripción boolean true o false Dato lógico char Un carácter Unicode de 16 bits Carácter byte Entero de 8 bits complemento a 2 Entero corto short Entero de 16 bits complemento a 2 Entero int Entero de 32 bits complemento a 2 long Entero de 64 bits Entero largo float Número en coma flotante de 32 bits Real de simple precisión double Número en coma flotante de 64 bits Read doble precisión

5 Literales (I) Literales de referencia (null).
Literales booleanos (true y false). Literales de carácter. Carácter Unicode entre comillas simples. Representación hexadecimal \uxxxx donde xxxx es el valor hexadecimal del carácter. Secuencias de escape \b Retroceso \t Tabulador \n Nueva línea \f Salto de página \’ Comillas dobles \” Comillas simples \r Retorno de carro \\ Slash invertido \ddd Carácter en octal

6 Literales (II) Literales enteros. Literales de coma flotante.
Prefijo 0 (cero) para octal y 0x para hexadecimal. Sufijo L o l para enteros largos. Literales de coma flotante. F o f para simple precisión, D o d para doble precisión. Las constantes serán double a no ser que se indique lo contrario. Una constante double no se puede asignar directamente a una variable float aunque esté dentro de su rango. Literales de cadena. Serie de caracteres Unicode separados por comillas dobles.

7 Variables (I) Según su tipo de información:
Variables de tipos primitivos. Por ejemplo, double r; Variables de referencia. Por ejemplo, Circulo c1; Según su papel en el programa: Variables de clase. Modificador static. Variables de instancia. Componentes de un array. Argumentos de métodos. Argumentos de contructores. Argumentos de controladores de excepciones. Variables locales.

8 Variables (II) Declaración de variables. Inicialización de variables.
modificador [static] [final]tipodato identificador El identificador, por convención, comienza en minúsculas. Inicialización de variables. Es necesario inicializar las variables locales. En el resto toman sus valores por omisión. Inicialización en la declaración: tipodato identificador = expresiónInicialización Variables final. No cambian su valor (constantes). final en tipos primitivos y en tipos de referencia.

9 Variables (III) 1. class Circulo{ 2. public void sumValor(int k) {
Ejemplos:Declaración de variables. 1. class Circulo{ static int numCir = 0; double radio; public double area() {double v = math.PI*radio*radio; return v;} 2. public void sumValor(int k) { int q = 0; // inicialización de variable local for (int i = 0; i < k; i++) { int h = 10; ... 3. final double PI = ; final int MAXCER; MAXCER = 255; // ya no puede cambiar de valor

10 Variables (IV) Visibilidad
Variables locales: el móduloo bloque donde han sido declaradas. Miembros de una clase: depende del modificador. Por omisión acceso “de paquete” (amistoso o friendly). Modificador public. Acceso a todas las clases. Modificador private. Acceso a los miembros de la clase. Modificador protected. Accesible por las clases hijas (herencia) y por los miembros de la clase. Modificador Clase Subclase Paquete Mundo private X protected public “paquete”

11 Conversiones de tipos Conversión implícita de un tipo de menos a más precisión. Por ejemplo, de char a int, de int a float. Perdida de precisión en algunos casos. Por ejemplo, de long a double ya que double tiene un rango entero menor. Conversión explícita: cast. Pérdida de precisión cuando el destino tiene menos dígitos significativos. Conversión a cadenas. Siempre es posible la conversión utilizando el operador de concatenación. Representación en cadena del dato u objeto: el método toString().

12 Conversiones de tipos(Ejemplos)
Conversión implícita de un tipo de menos a más precisión. int d; char ch = 'a'; double r; d = ch; r = 220; Conversión explícita: cast. long h = ; double radio = 45.5; int d = (int) h; float r = (float)22.50; Conversión a cadenas. String cad; cad = "Hola, te mereces " + 9; (new StringBuffer().append( "Hola, te mereces ").append(9); Date d = new Date(); System.out.println("Fecha: " + d);

13 Clases de envoltura (I)
Los tipos primitivos tienen clases de envoltura en el paquete java.lang. Boolean, Character, Byte, Short, Integer, Long, Float y Double. Proporcionan constantes y métodos adicionales a los tipos primitivos. Permiten pasar por referencia tipos primitivos. Constructores: Integer i = new Integer(5); Double d = new Double(“123.30”);

14 Clases de envoltura (II)
Algunos métodos public Tipo tipoValue(). Devuelve un dato del tipo primitivo definido por tipo. Integer d = new Integer(123); System.out.println(d.intValue()); devuelve el dato 123 public static Tipo valueOf(String cad). Devuelve el mismo valor que el constructor new tipo(cad). d1 = Double.valueOf("129.32"); //d1 = new Double(129.32) public static toString(). Devuelve una representación del objeto en forma de cadena. public tipo parseTipo(String c). Devuelve el valor numérico resultado de convertir la cadena c. Presente para cada tipo numérico en las clases envoltura correspondientes.

15 Clases de envoltura (III)
Algunos métodos 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. Float d = Float.valueOf("125.0"); Float d1 = new Float(130); System.out.println(d.compareTo(d1)); //Escribe -1 public boolean equals(Object obj). Devuelve true si los objetos son del mismo tipo y envuelven el mismo valor. Devuelven null si obj no es del mismo tipo que el objeto que lo invoca. La clase Integer dispone del método: static int parseInt(String c). Devuelve el entero resultado de convertir la cadena c. También, static int parseInt(String c, int base); int x = Integer.parseInt(entrada.readLine()); int g = Integer.parseInt("11",16); // g = 17

16 Operadores (I) Aritméticos unarios +,- Aritméticos binarios +,-,*,/,%
Asignación =, +=, -=,*=,/=,%= Concatenación +, += Incrementales ++,-- (antes o después de la expresión) Relacionales <,<=,>,>=,==,!= instanceof (evalúa si una referencia a un objeto es una instancia de una clase o interfaz) Lógicos &,|,^, ! (no producen cortocircuito) Lógicos condicionales &&,|| (producen cortocircuito)

17 Operadores (II) ?: exprLógica?valor1:valor2 De bits &, |, ^,~
De bits (desplazamiento) <<,>> (desplaza bits a la derecha, rellenando con el más significativo, el signo, a la izquierda), >>> (desplaza bits a la derecha rellenando con 0 a la izquierda) De bits (asignación) <<=,>>=,>>>=

18 Operadores (III) Prioridades Sufijo [],.,(argumentos),expr++,expr--
Unarios +,-,++expr,--expr,~,! Creación o tipo new, (tipo)expr Multiplicadores *,/,% Aditivos +,- Desplazamiento <<,>>,>>> Relacionales <,>,<=,>=,==,instanceof Igualdad ==,!= De bits y lógico (AND) &

19 Operadores (IV) Prioridades (continuación) De bits y lógico (XOR) ^
De bits y lógico (OR) | AND condicional && OR condicional || Condicional ?: Asignación =,+=,-=,*=,/=,%=,<<=,>>=,>>>=

20 Sentencias De expresión. De declaración. Bloques.
Terminadas en punto y coma. De asignación, de incremento y decremento, llamadas a métodos y creación de objetos. De declaración. Declaración de variables locales. Bloques. Agrupación de sentencias delimitadas por llaves. Se utilizan allí donde se puede utilizar una expresión.

21 Sentencias condicionales
if(expresión-lógica) sentencia1 [else sentencia2] switch (expresión-ordinal) { case n : sentencias [;break]; case n1 : sentencias [;break]; case n2 : sentencias [;break]; ... [default: sentencias] }

22 Sentencias repetitivas
while (expresión-lógica) sentencia do for (expresión-inicial; expresión-lógica; incremento) En el for se puede utilizar el operador, (coma) para separar varias sentencias en la expresión inicial o en la modificación

23 Sentencias repetitivas (Ejemplos)
1) boolean sw; sw = true; while (sw) { int k = (int)(Math.random()*45 + 5); System.out.println(k); sw = !(k % 7 == 0); } 2) int n; final int MX = 99; do { n = entrada(); while (n < 1 || n > MX); 3) for (int i = 0; i < mat.length; i++) for (int j = 0; j < mat[i].length; j++) mat[i][j] = entrada.nextInt();

24 Bucle "for each" JDK 5 proporciona una potente construcción de for para recorrer todos los elementos de un array, matriz y, en general, cualquier colección. Sintaxis: for (variable : colección) sentencia; Significado: Asigna a variable el valor de cada uno de los elementos de la colección hasta llegar al último. Es un iterador de la colección completa.

25 Bucle "for each" (Ejemplos)
Ejemplos de bucles for-each: a) int a [] = {1, 7, 9, ...}; for (int x : a) | for (int i = 0; i < a.length;i++) System.out.print(x + ","); | System.out.print(x + ","); b) double mat[][] = new double[6][4]; for (double[]fila : mat) { for (double r : fila) System .out.print(r + " "); System.out.println( ); } c) ArrayList<Racional> ar = new ArrayList<Racional> (); for (Racional r : ar) procesar r;

26 Saltos break [etiqueta]; continue [etiqueta]; return [expresión];
Para salir de cualquier bucle o bloque de sentencias. etiqueta, indica una sentencia identificada por etiqueta: sentencia. continue [etiqueta]; Permite ir al comienzo de cualquier bucle o saltar a una etiqueta. return [expresión]; Permite salir de un método devolviendo el valor de la expresión.

27 Saltos (Ejemplos) break [etiqueta];Transfiere control a siguiente sentencia del bucle o bloque que está a continuación de la etiqueta. mult7: for (int t = 11; t < (int)Math.pow(11.,4); t += 11) { for (int k = 1; k <= 10; k++) n = (int)Math.random()*t + 1; System.out.println(n + " "); if (n % 7 == 0) break mult7; } System.out.println(" n de terminación = " + n);

28 Saltos (Ejemplos) continue [etiqueta];Salta las sentencias que quedan hasta el final del cuerpo del bucle y prosigue la ejecución en la siguiente iteración del bucle que está a continuación de la etiqueta. una: for (int m = 0; m < numFilas;; m++) { for (int n = 0; n <= numColum; n++) System.out.println(n + " "); if (n == CLAVE) continue una; } System.out.println();


Descargar ppt "Curso Programación en Java"

Presentaciones similares


Anuncios Google