el lenguaje java taller de sistemas de programas sandra zabala, marilenis olivera ivette martínez,...

Post on 23-Jan-2016

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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.

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

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)

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.

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)

Tipos Simples (cont.)

• long (64 bits, con signo)

• float (32 bits, IEEE 754)

• double (64 bits, IEEE 754)

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.

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:

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

Operadores: Relacionales y Lógicos

• Relacionales– > Mayor

– < Menor

– >= Mayor o igual

– <= Menor o igual

– == Igual

– != Diferente

• Lógicos– && And

– || Or

– ! Not

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.

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)

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) {…}

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.

Ejemplo de clasesclass Car{

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

}int maxSpeed(){

return 55;}

}

class Porsche extends Car{int maxSpeed(){

return 200;}

}

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

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

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

Arreglos

• Son objetos

• Son dinámicos

• Se pasan por referencia

• Se chequean los límites

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

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);

• …

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);

Interfaces• Definen una interfaz que una clase debe

implementar

• Una clase puede implementar varias interfaces

Interfaces (cont.)interface Imprimible{

void imprimir();}

class Cosa implements Imprimible{void imprimir(){

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

}

Lista Imprimiblevoid imprimirTodo(Imprimible list{

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

}

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

}

imprimirTodo(lista);

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).

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;}

}

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

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

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

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”);}

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;

}

Manejo de Errores• Excepciones Predefinidas

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

Haciendo que funcione...

• Para compilar: javacclass prueba{

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

}

• Para ejecutar: java

• Documentación automática: javadoc

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

top related