Introduccin a Java - PowerPoint PPT Presentation

1 / 41
About This Presentation
Title:

Introduccin a Java

Description:

Mejora en la eficiencia de JDK 1.1, e inclusi n de productos como CORBA, JFC, etc. ... Si no se especifica 'package', se supone incluida en el 'default package' 39 ... – PowerPoint PPT presentation

Number of Views:30
Avg rating:3.0/5.0
Slides: 42
Provided by: arantx
Category:
Tags: introduccin | java | pkg

less

Transcript and Presenter's Notes

Title: Introduccin a Java


1
Introducción a Java
2
Ubicación e historia
  • http//java.sun.com/
  • JDK (Java Development Kit)
  • JDK 1.0, 1995
  • JDK 1.1, 1996. Modificación en manejo de
    eventos nuevas bibliotecas (reflexión, métodos
    remotos, ...)
  • JDK 1.2, 1998. Mejora en la eficiencia de JDK
    1.1, e inclusión de productos como CORBA, JFC,
    etc.
  • J2SE 1.2
  • Java 2 Platform, Standard Edition, v 1.2
  • Implementado por Java 2 SDK, v 1.2 (Software
    Development Kit)
  • J2SE 1.3.1, 2001
  • J2SE 1.4.0, 2002
  • J2SE 1.5.0 (septiembre 2004)

3
Características del lenguaje Java
  • Orientado a objetos
  • Sintaxis familiar para C, C
  • Fácil de usar (no punteros, no herencia múltiple,
    manejo automático de memoria)
  • Extensible para código nativo en otros lenguajes
  • Multiprocesos mediante uso de hilos (threads)
  • Independiente de la plataforma
  • Código fuente se traduce a bytecodes mediante un
    compilador, y estos son ejecutados por un
    intérprete en cada plataforma

4
Estructura del entorno JAVA
Visor de HTML Visor de applets de Java Intérprete
de Java
Compilador de Java
Programa fuente Java Programa compilado
Programa ejecutado
Archivo HTML
INTERNET
Visor de HTML
5
Introducción al lenguaje Java
  • Programa fuente
  • Ejemplo.java
  • Compilación se obtiene el fichero Ejemplo.class.
  • javac Ejemplo.java
  • Ejecución Intérprete (JVM)
  • java Ejemplo
  • Fichero Ejemplo.java
  • class Ejemplo
  • public static void main(String args)
  • System.out.println(Hola Mundo)

6
Aspectos léxicos
  • Espacios en blanco no considerados
  • Sentencias separadas por
  • Comentarios
  • // hasta final de línea
  • / / más de una línea
  • / / documentación
  • 59 palabras reservadas

7
Aspectos léxicos (cont.)
  • identificadores
  • letras, números, _,
  • no empiezan con número
  • distinción entre mayúsculas y minúsculas
  • convenciones
  • métodos, variables y objetos nextItem,
    lastIndex(3), robotConFrontera1,robot2
  • clases Robot, RobotConFrontera
  • constantes NUMERO_PI

8
Literales
  • enteros
  • base 10 ...
  • base 8 0...
  • base 16 0x...
  • punto flotante
  • notación estándar 3.14159
  • notación científica 6.022E23

9
Literales (cont.)
  • booleanos
  • true o false
  • caracteres
  • Unicode - 16 bits
  • a, \n, \\, ...
  • en octal (\ddd) o hexadecimal (\udddd). Ejemplo
    \141, \u0061 son a (97 en decimal)
    \u0391 es alfa mayúscula
  • cadenas de caracteres
  • texto entre
  • Hello World
  • Java crea objeto para cada cadena

10
Variables
  • Declaración
  • tipo identificador valor
  • int d 3, e, f 5
  • byte z 22
  • char x x
  • Alcance
  • desde declaración hasta final de bloque
  • Una variable no puede tener los mismos nombres en
    un bloque interno dentro de un bloque externo
  • En el bloque interno se puede llamar a la
    variable del bloque externo

11
TIPOS
  • Java - lenguaje strongly typed
  • tipo para cada variable y expresión
  • asignaciones se comprueba compatibilidad de
    expresiones
  • no hay conversiones automáticas de tipos en
    asignaciones (salvo que para ltvariablegtltexpresion
    gt, el valor de ltexpresióngt se pueda almacenar en
    el hueco de memoria de ltvariablegt y tenga sentido
    la asignación por ejemplo entre enteros y
    caracteres
  • intchar, siempre válido
  • charint, válido cuando int es un literal o
    combinación de literales (33, 33a, ...)
    asignables a 2 bytes sin signo
  • charshort y shortchar no válidos por el
    signo

12
Números enteros
  • tienen signo
  • byte - 8 bits
  • byte b
  • byte c 0x55
  • short - 16 bits
  • short s
  • short t 0x55aA

13
Números enteros (cont.)
  • int - 32 bits
  • int i
  • int j 0x1ac
  • long - 64 bits
  • long m
  • long n123
  • literal 123L

14
Números reales
  • float - 32 bits
  • float f
  • float f2 3.14f
  • float f3 3.14
  • (error, 3.14 se considera
  • double igual con notación
    científica)
  • Rango (/-)3.40282347E38f
  • (6-7 cifras decimales significativas)
  • double - 64 bits
  • double d
  • double pi 3.14
  • Rango (/-)1.79769313486231570E308
  • (15 cifras decimales significativas)

15
Casting
  • almacenar valor de un tipo en variable de tipo
    diferente
  • conversión automática en asignaciones si la
    variable destino tiene suficiente precisión y la
    asignación tiene sentido
  • si no gt casting
  • (tipo) valor
  • int a 100
  • byte b (byte) a
  • En una expresión con operadores se determina el
    tipo de la expresión
  • 34, -45, 5667 ? tipo int
  • 34.34, -234.45 ? tipo double

16
Ejemplo
  • class Promote
  • public static void main(String args)
  • byte b 42
  • char c a
  • short s 1024
  • int i 50000
  • float f 5.67f
  • double d .1234
  • double result (f b) (i / c) - (d s)
  • System.out.println((f b)
  • (i / c) - (d s))
  • System.out.println(result result)

17
Caracteres
  • char - 16 bits
  • Unicode
  • char c2 0xf132
  • char c3 a
  • pueden operarse como enteros
  • int three 3
  • char one 1
  • char four (char) (three one)
    (el tipo estático,es decir en tiempo de
    compilación, de una suma de char, byte, int, ...
    es siempre int)

18
Tipo booleano
  • boolean
  • boolean done false
  • true o false
  • tipo devuelto por op. de comparación
  • requerido por op. de control

19
Arrays
  • declaración
  • int diasDeMeses
  • int diasDeMeses
  • asignar espacio
  • diasDeMeses new int12
  • Tamaño puede ser una
  • expresion a evaluar
  • diasDeMeses.length" obtiene el tamaño
  • dar valor
  • diasDeMeses0 31
  • ...
  • diasDeMeses11 31

20
Arrays (cont.)
  • otra forma (los valores pueden ser expresiones a
    evaluar). Dos modos
  • 1) En declaración de tipo
  • int diasDeMeses
  • (x1),28,...,31
  • 2) En cualquier lugar
  • int diasDeMeses
  • diasDeMeses
  • new int31,(271),...,31
  • error de ejecución si intentamos acceder a
    elementos fuera de rango
  • Toman valores por defecto (variables numéricas a
    0 y objetos a null)
  • main
  • String args
  • System.out.println(args0)

21
Arrays multidimensionales
  • double matriz new double44
  • o
  • double matriz new double4
  • // hace falta la primera dimension
  • matriz0 new double4
  • matriz1 new double4
  • matriz2 new double4
  • double x 1, 2, 3, 4
  • matriz3 x

22
Operadores aritméticos
  • , -, , /, (la division de enteros es entero)
  • asignación aritmética
  • - /
  • a 4 (equivale a a a 4)
  • incremento y decremento
  • x x1 x1 x x
  • x x-1 x-1 --x x--
  • se modifica el operando en ambos casos
  • prefija 1º se modifica, después se asigna
  • postfija 1º se asigna, después se modifica

23
Ejemplo
  • class IncDec
  • public static void main(String args)
  • int a 1
  • int b 2
  • int c b
  • int d a
  • c
  • System.out.println(a a) a 2
  • System.out.println(b b)
  • b 3
  • System.out.println(c c) c 4
  • System.out.println(d d)
  • d 1

24
Operadores de bit operador de asignación
  • Operadores de bit son aplicables a tipos enteros
  • NOT ( )
  • AND ()
  • OR ()
  • XOR ()
  • desplazamiento izquierda (ltlt)
  • desplazamiento derecha (gtgt)
  • Asignación
  • ltvariablegtltexpresiongt
  • Es legal cuando el tipo de ltexpresiongt es un
    subtipo del tipo de ltvariablegt

25
Operadores lógicos
  • , !
  • aplicables a cualquier par de tipos
  • lt, gt, gt, lt
  • aplicables a números
  • AND lógico
  • AND lógico
  • evalua todos los operandos
  • OR lógico
  • OR lógico
  • evalua todos los operandos
  • ! NOT lógico

26
Operadores lógicos (cont.)
  • Operador ternario if-then-else
  • expresión ? sentencia1 sentencia2
  • sentencia1 y sentencia2 deben devolver el mismo
    tipo
  • radio (denom 0) ? 0 num / denom

27
Precedencia de operadores
  • postfijos . (params) expr expr--
  • prefijos expr --expr expr -expr !
  • Creación, casting new (type)expr
  • multiplicativos /
  • aditivos -
  • desplazamiento ltlt gtgt
  • relacionales lt gt lt gt instanceof
  • igualdad !
  • bitwise AND
  • bitwise exclusive OR
  • bitwise inclusive OR
  • lógico AND
  • lógico OR
  • condicional ?
  • asignación - /
    ltlt gtgt

28
OPERADORES DE CONTROL
  • if-else
  • if (expr-booleana) sent1 else sent2
  • else - opcional
  • sentencias pueden ser compuestas
  • expr-booleana - expr con valor booleano

29
if-else (cont.)
  • class IfElse
  • public static void main(String args)
  • int month 4
  • String season
  • if (month 12 month 1 month 2)
  • season Winter
  • else if (month 3 month 4
  • month 5)
  • season Spring
  • else if (month 6 month 7
  • month 8)
  • season Summer
  • else if (month 9 month 10
  • month 11)
  • season Autumn
  • else
  • season Error
  • System.out.println(April is in the season
  • .)

30
switch
  • switch (expresión)
  • case value1
  • ....
  • break
  • ....
  • case valuen
  • ....
  • break
  • default
  • ...
  • - expresion debe ser de tipo byte, short, int,
    char o tipo enumerado
  • - value1, .. value deben ser literales
  • - Cuando un literal coincide con expresion, ya
    no se comprueban más cases y se ejecutan todas
    las instrucciones restantes (excepto los
    cases), por lo que hay que utilizar break

31
switch (cont.)
  • class SwitchSeason
  • public static void main(String args)
  • int month 4
  • String season
  • switch (month)
  • case 12
  • case 1
  • case 2
  • season Winter
  • break
  • case 3
  • case 4
  • case 5
  • season Spring
  • break
  • .....
  • default
  • season Error

32
while, do-while
  • Sintaxis while (ltcondicióngt) ltsentenciagt
  • do ltsentenciagt while
    (ltcondicióngt)
  • class WhileDemo
  • public static void main(String args)
  • int n 10
  • while (n gt 0)
  • System.out.println(tick n)
  • n--
  • class DoWhile
  • public static void main(String args)
  • int n 10
  • do
  • System.out.println(tick n)
  • while (--n gt 0)

33
for
  • for (inicializacióncondicióniteración)
  • ltsentenciagt
  • Ejemplos de inicialización
  • int x3, y7
  • x3, y7
  • Ejemplos de iteración
  • b--
  • b--, c
  • Al principio, inicialización -gt condición
  • en adelante iteración -gt condición
  • class ForDemo
  • public static void main(String args)
  • for (int a 1, b 4 a lt b a, b--)
  • System.out.println(a a)
  • System.out.println(b b)

34
Nuevo for
  • Desde versión 1.5
  • int numeros 3,4,5
  • for (int j numeros)
  • System.out.println(j)
  • Uso también en colecciones con iteradores

35
continue, return
  • continue se puede utilizar dentro de un bucle
    para ir
  • directamente a ejecutar la línea que contiene
    la condicion
  • break saca de un bucle
  • return acaba la ejecución de una función
  • class ContinueDemo
  • public static void main(String args)
  • for (int 0 i lt 10 i)
  • System.out.print(i )
  • if (i 3 0)
  • continue
  • System.out.println()
  • class ReturnDemo
  • public static void main(String args)
  • System.out.println(Esto se ejecuta)
  • return

36
Funciones globales
  • Se puede reproducir el estilo de programación en
    un lenguaje como C mediante la definición de
    funciones static (en una o varias clases).
  • Uso de paquetes para dividir las clases en
    directorios.

37
Uso de un classpath, I
  • Un classpath es un conjunto de
  • Directorios
  • Ficheros comprimidos (archive files, de
    extensiones .zip, .jar, ) conteniendo
    clases.
  • Son una especie de directorios
  • La compilación o ejecución se realiza con
    respecto a un classpath
  • Una clase siempre debe ser accesible (usando
    import o bien llamandola directamente) a través
    del classpath. Podría
  • Estar en un directorio de la forma
  • un-directorio-del-classpath
  • \dir1\dir2\

38
Uso de un classpath, II
  • Una clase siempre se define en un paquete.
    Ejemplo
  • Fichero Ejemplo.java
  • package dir1.dir2
  • class Ejemplo
  • public static void main(String args)
  • System.out.println(Hola Mundo)

  • Si no se especifica package, se supone incluida
    en el default package

39
Uso de un classpath, III
  • En NetBeans 5.0
  • Para cada proyecto
  • Directorio del proyecto (D1)
  • Nombre del proyecto (directorio D2, que es
    subdirectorio de D1)
  • Clase con el método main (por ejemplo
    dir1.dir2.Ejemplo, que crea el fichero
    D1/D2/src/dir1/dir2/Ejemplo.java)
  • Al compilar, se genera
  • D1/D2/build/clases/dir1/dir2/Ejemplo.class
  • El classpath utilizado es
  • Compilación D1/D2/src
  • Ejecución D1/D2/build/classes

40
Uso de un classpath, I
  • El valor de un classpath puede ser el de la
    variable de entorno CLASSPATH. Por ejemplo, en
    DOS
  • set CLASSPATH.c\ejemplo1\clases.zipc\ejemp
    lo2\clases\
  • set CLASSPATHCLASSPATHc\directorio\

41
Uso de un classpath, III
  • Un classpath se utiliza, por ejemplo, para
    compilar y ejecutar con javac y java.
    Ejemplos en DOS
  • Uso de la variable de entorno CLASSPATH (si no
    está definida, el classpath es .)
  • javac programas\sencillos\Ejemplo.java
  • java programas.sencillos.Ejemplo
  • javac classpath c\c\java Ejemplo.java
  • Usa como classpath c\c\java
  • El fichero Ejemplo.java podría estar, por
    ejemplo, en el directorio c\java\programas\senci
    llos\
  • Cada fichero .java, usualmente, contendrá una
    sóla clase que se llamará igual que el fichero.
  • La restricción es que si un fichero .java
    contiene muchas clases, sólo una puede ser
    pública y, en tal caso, el fichero se debe llamar
    obligatoriamente igual que la clase pública.
Write a Comment
User Comments (0)
About PowerShow.com