el lenguaje java taller de sistemas de programas sandra zabala, marilenis olivera ivette martínez,...
TRANSCRIPT
![Page 1: El Lenguaje Java Taller de Sistemas de Programas Sandra Zabala, Marilenis Olivera Ivette Martínez, Pedro García](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070416/5665b48e1a28abb57c922608/html5/thumbnails/34.jpg)
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