el lenguaje java taller de sistemas de programas sandra zabala, marilenis olivera ivette martínez,...
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