El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez,...

34
El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García

Transcript of El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez,...

Page 1: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

El Lenguaje Java

Taller de Sistemas de Programas

Sandra Zabala, Marilenis Olivera

Ivette Martínez, Pedro García

Page 2: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Qué es Java?

• Un lenguaje de programación Orientado por Objetos desarrollado por Sun Microsystems

• Una máquina virtual (ambiente de ejecución) que puede ser embebido en navegadores del web y diversos sistemas operativos

• Un conjunto estandarizado de librerías de Clases.

Page 3: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Por qué Java?

• Es independiente de la plataforma

• Es Orientado por Objetos

• Pequeño -> Fácil de aprender

• Seguro

• Robusto

• Permite recursión

• Multi-Thread

Page 4: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Sintaxis

• Muy similar a C/C++

• Fácil de aprender

• Pocos conceptos– No aritmética de apuntadores– No structs, typedef ni #define– No se necesita liberar memoria– No core dumps (Fallas de acceso a memoria)

Page 5: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Identificadores

• Son “case sensitive”

• Los identificadores de clases comienzan con mayúcula.

• Los identificadores de variables y métodos comienzan con minúsculas.

• Si el identificador tiene más de 2 palabras, de la segunda en adelante comienzan con mayúscula.

Page 6: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Tipos Simples

• boolean (1bit)

• byte (8 bits, con signo)

• char (16 bits, sin signo, UNICODE

• short (16 bits, con signo)

• int (32 bits, con signo)

Page 7: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Tipos Simples (cont.)

• long (64 bits, con signo)

• float (32 bits, IEEE 754)

• double (64 bits, IEEE 754)

Page 8: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Más sobre tipos

• boolean es realmente un tipo, no es un entero

• null es una palabra clave

• los enteros no son apuntadores

• Chequeo adicional de tipos -> Es fuertemente tipeado.

Page 9: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Declaración de variables y constantes

• Todas las variables y constantes deben ser declaradas antes de su uso

• Para declarar constantes, se utiliza la palabra reservada final.

• <tipo> <identificador> [=] <valor>Ej:

Page 10: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Operadores: Aritméticos

• Binarios– + Suma

– - Resta

– * Multiplicación

– / División

– % Módulo

• Unarios– + Positivo

– - Negativo

– ++ Auto-incremento 1

– -- Auto-decremento 1

** Tanto el ++ como el -- pueden ser prefijos o postfijos

Page 11: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Operadores: Relacionales y Lógicos

• Relacionales– > Mayor

– < Menor

– >= Mayor o igual

– <= Menor o igual

– == Igual

– != Diferente

• Lógicos– && And

– || Or

– ! Not

Page 12: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Operadores: Asignación

• += v += 5 v = v + 5

• -= v -= 5 v = v - 5

• *= v *= 5 v = v * 5

• /= v /= 5 v = v / 5

• %= v %= 5 v = v % 5

• …

• No pueden sobrecargarse.

Page 13: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Operadores: Casting

• Permite la conversión de un tipo a otro• Desde un tipo pequeño a uno grande provoca pérdida

de información. • Sintaxis y ejemplo:

(nombre del tipo) valor

(int) (x/y)

Page 14: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Flujo de Control

• if (expr) instrucción else instrucción• for (expr; expr; expr) instrucción• while (expr) instrucción• do instrucción while (expr)• switch (expr) {…}

Page 15: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Clases

• Implementación simple de herencia

• Herencia múltiple de interfaces

• Información de tipos disponible a tiempo de corrida

• Todos los métodos son virtuales o estáticos

• No hay funciones, sólo métodos.

Page 16: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Ejemplo de clasesclass Car{

void beep(){System.out.println(“beep”);

}int maxSpeed(){

return 55;}

}

class Porsche extends Car{int maxSpeed(){

return 200;}

}

Page 17: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Ejemplo de clases (cont.)Car c = new Car();Porsche p = new Porsche();

c.beep();p.beep();

int s1 = c.maxSpeed();int s2 = p.maxSpeed();

Page 18: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Arreglos

• Son objetos

• Son dinámicos

• Se pasan por referencia

• Se chequean los límites

Page 19: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Arreglos (cont.)

int rgb[] = new int[3];rgb[0] = 255;rgb[1] = 100;rgb[2] = 100;

int avg = sum(avg) / rgb.length;

int err = rgb[4] //error

Page 20: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Vectores

• Implementan Arreglos de tamaño variable

• Constructores– Vector(), Vector(n), Vector(n,m); donde n es la

capacidad y m el incremento de la capacidad

• addElement();

• contains(Object); indexOf(Object);

• elementAt(int); setElementAt(Object, int);

• …

Page 21: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Strings

• Los Strings son objetos

• 16 bits UNICODESystem.out.println (“Hello World”);

String hello = “Hello”;String world = “World”;System.out.println (hello + “ “ + world);

int len = hello.length;String str = hello.substring(1,len);System.out.println(“j” + str);

char ch = hello.charAt(0);

Page 22: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Interfaces• Definen una interfaz que una clase debe

implementar

• Una clase puede implementar varias interfaces

Page 23: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Interfaces (cont.)interface Imprimible{

void imprimir();}

class Cosa implements Imprimible{void imprimir(){

System.out.println(“Cosa”);}

}

Page 24: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Lista Imprimiblevoid imprimirTodo(Imprimible list{

for (int i = 0 ; i < list.length; i++){ list[i].imprimir();

}

Imprimible lista[] = {new Cosa(),new OtraCosa()

}

imprimirTodo(lista);

Page 25: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Modificadores de Acceso

• public - Cualquiera puede tener acceso

• protected - Sólo pueden tener acceso las subclases

• private - Sólo puede tener acceso la clase misma.

• El acceso por defecto es por cualquier clase en el mismo paquete (package).

Page 26: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Restringiendo el acceso a las variables

class Punto{private int x, y;

public Punto(int x; int y){this.x = x;this.y = y;

}public getX(){

return x;}public getY(){

return y;}

}

Page 27: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Paquetes

• Permiten agrupar clases e interfaces.

• Los nombres son palabras separadas por puntos y se almacenan en directorios que coinciden con esos nombres.

Ejemplo:Los archivos Applet.java, AppletContext.java, AppletStub.java, AudioClip.java tienen la siguiente líneapackage java.lang.applet

Page 28: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Paquetes

• Se cargan con la palabra import

import java.Date;import java.awt.*;

• Si un archivo no pertenece a un paquete se coloca en el mismo directorio y se carga con la sentenciaimport MiClase

Page 29: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Paquetes• Java.lang - Object, Thread, Exception, String,

System, Number, …• java.util - Hashtable, Vector, BitSet, Date, Cache, …• java.io - InputStream, OutputStream,

BufferedInputStream, PrintStream, …• java.tools - Compilation, Debuggin, Documentation,

Profiling,…• Networking• Abstract window toolkit

Page 30: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Manejo de Errores• Soportado mediante excepciones.• El modelo usado es el de C++.

Try{a = 10; b = 0;result = a/b;return result;

}catch (ArithmeticException e){System.out.println(“División por cero”);return -1;

}finally{

System.out.println(“Siempre se ejecuta”);}

Page 31: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Manejo de Errores

• Generación de excepciones:– Implícita: El programa hace algo ilegal– Explícita: throw

throw ObjetoExcepcion;

class ExcepcionLimiteDeVelocidad extends Exception{}

try{if (velocidad > 300)

throw ExcepcionLimiteDeVelocidad;}catch(ExcepcionLimiteDeVelocidad e){

System.out.println(“Vas muy rápido”);return;

}

Page 32: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Manejo de Errores• Excepciones Predefinidas

– ArithmeticException– NullPointerException– ClassCastException– NegativeArraySizeException– OutOfMemoryException– ArrayIndexOutOfBoundsException– ...

Page 33: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Haciendo que funcione...

• Para compilar: javacclass prueba{

public static void main(String args[]){…}

}

• Para ejecutar: java

• Documentación automática: javadoc

Page 34: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García.

Tags de javadoc

Tag Descripción Aplica a

@see Nombre de clase asociada Clases, métodos ovariables

@author Nombre del autor Clases

@version Versión Clases

@param Nombre y descripción delparámetro

Métodos

@return Descripción del valor deretorno

Métodos

@exception Nombre y descripción de laexcepción.

Métodos