Upload
angela-macias-murillo
View
212
Download
0
Embed Size (px)
Citation preview
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