Académique Documents
Professionnel Documents
Culture Documents
Lenguaje de programación
• Características de Java
– Portabilidad ( medio compilado y medio interpretado )
– Robusto ( manejo de excepciones )
– Orientado a Objeto
– Seguro ( no hay punteros )
– “Simple” ( lo más simple tomando en cuenta la OO )
Introducción a Java
• Herramientas de desarrollo
– JDK de SUN Microsystem
• Tipo de programas
– Aplicaciones
– Applet
– Servlets
– etc..
Introducción a Java
• Comparación
Introducción a Java
• Java Virtual Machine ( JVM )
– Compilación tradicional
Introducción a Java
• Java Virtual Machine ( JVM )
– Compilación JVM
El lenguaje Java
• Nuestro primer programa en Java
• public class HolaMundo {
• public static void main(String[] args) {
• System.out.println("Hola Mundo!!!");
• System.out.print("....en java");
• System.out.println(" en el 2005");
• }
• }
– El archivo debe llamarse HolaMundo.java
– Se compila con: javac HolaMundo.java
– Se ejecuta con: java HolaMundo
• ver: HolaMundo.java
El lenguaje Java
• El compilador de JAVA necesita que todas
las clases ejecutables contengan el método
main, para poderlo distinguir de otros:
– ver: IncDec.java
El lenguaje Java
• Separadores
•Separador Descripción
•() Contienen listas de parámetros. También se utilizan
para modificar la precedencia en una expresión,
contener expresiones para control de flujo y realizar
conversiones de tipo.
{} Se utilizan para definir bloques de código.
• Palabras claves
• abstract continue for new switch
• boolean default goto null synchronized
• break do if package this
• byte double implements private threadsafe
• byvalue else import protected throw
• case extends instanceof public transient
• catch false int return true
• char final interface short try
• class finally long static void
• const float native super while
El lenguaje Java
• Expresiones
– int i = 45;
– double j = 1.5;
➲ Ejercicio:
Haga un programa que recorra los 100 primeros
números, los imprima en pantalla y diga a su lado si es
impar o par
ver: Numeros.java
Arreglos
– o bien
importjava.io.*;
public class ......
public static void main(String[ ]args) throws IO Exception{
BufferedReader input ;
input = new BufferedReader(new InputStream Reader(System.in));
String s = input.readLine();
Interactuando con nuestro
programa
• Esta última manera acarrea ciertas rigideces que
se apreciarán en el ejemplo:
– En general se tiene:
Clase variable = new Clase(Parametros constructor);
Programación OO con Java
• Constructores
– Un objeto se crea usando constructores.
• Que es la herencia?
– Permite crear una clase a través de una clase
existente, y esta clase tendrá todas las
variables y los métodos de su ”superclase”, y
además se le podrán añadir otras variables y
métodos propios.
Programación OO con Java
– super() ;
• Paquete (Package)
– Los paquetes son grupos relacionados de clases
e interfaces y proporcionan un mecanismo
conveniente para manejar un gran juego de
clases e interfaces y evitar los conflictos de
nombres. Además de los paquetes de Java
puede crear sus propios paquetes y poner en
ellos definiciones de clases y de interfaces
utilizando la sentencia package.
Programación OO con Java
• El paquete de lenguaje Java, también
conocido como java.lang, contiene las
clases que son el corazón del lenguaje
Java.
• Para utilizar un paquete, se utiliza la
sentencia import nombrePackage;
• Esta sentencia debe estar al comienzo del
archivo.
Programación OO con Java
• Control de accesos a atributos y metodos
– public
• Cualquier clase puede acceder a las propiedades y
métodos públicos.
– protected
• Sólo las clases heredades y aquellas situadas en el
mismo paquete pueden acceder a las propiedades
y métodos protegidos.
– private
• Las variables y métodos privados sólo pueden ser
accedidos desde dentro de la clase.
Programación OO con Java
• private protected
– Sólo las clases heredades pueden acceder a las
propiedades y métodos protegidos.
Programación OO con Java
• Clases Public, Abstract, y Final
– Public:
• El modificador public declara que la clase puede
ser utilizada por objetos que estén fuera del
paquete actual. Por defecto, una clase sólo puede
ser utilizada por otras clases del mismo paquete en
el que están declaradas.
– Abstract:
• El modificador abstract declara que la clase es una
clase abstracta. Una clase abstracta podría
contener métodos abstractos (métodos sin
implementación). Una clase abstracta está
diseñada para ser una superclase.
Programación OO con Java
– Final:
–Utilizando el modificador final se puede declarar que
una clase es final, que no puede tener subclases.
Existen (al menos) dos razones por las que se podría
querer hacer esto:
– razones de seguridad.
– razones de diseño.
Programación OO con Java
• Implementación de clases abstractas
– abstract class Geometria{
• El cuerpo de la clase
• Variables y métodos, incluyendo tipo de retorno;
– }
• Implementación de subclases
– class Circulo extends Geometria {
• El cuerpo de la clase
• implementación de métodos superiores ( pisarlas )
• implementación de otros métodos
– }
Programación OO con Java
• Ejercicios:
– Implementar la Clase Geometria ( abstracta )
– La clase debe tener los siguientes métodos:
• calculaArea();
• calculaPerimetro();
– Implementar las clases Rectangulo,Circulo y Triangulo que
extienden la clase Geometria.
– Haga un programa que reciba como argumentos el tipo de la
geometría y las dimensiones.
– ej: java calculo R 10 5
• resultado: Rectángulo, área = 50 y perímetro = 30
– ver:Prueba.java,ChaoInterface.java,HelloImpInter.java y
HelloInterface.java
Programación OO con Java
• Clases importantes en Java
– Clase Object
• boolean o.equals( Object )
• Object o.clone()
• Class o.getClass()
• String o.toString()
– Clase Character
• boolean Character.isDigit( char )
• boolean Character.isLetter( char )
• boolean Character.isSpace( char )
Programación OO con Java
– Clase String
• int cad.length()
• char cad.charAt( int)
• boolean cad.equals( Object )
• boolean cad.equalsIgnoreCase( Object )
– Clase StringBuffer
• StringBuffer sb1 = new StringBuffer(4);
• sb1=”Hola”;
• StringBuffer sb2 = new StringBuffer(“Toma
sentado.”);
• sb2.insert(6,”café ”);
• System.out.println(sb2.toString());
• Resultado: Toma café sentado.
Programación OO con Java
– Clase StringTokenizer
• Permite dividir un string en pedazos(tokens).
• Ejemplo:
– StringTokenizer st = new StringTokenizer("es una
prueba",“ “ );
– while (st.hasMoreTokens()) {
– println(st.nextToken());
– }
• Resultado:
– es
» una
» prueba
Programación OO con Java
– Ejercicio:
– ver: Tokens.java
Programación OO con Java
– Clase Random
– Se utiliza para generar secuencias aleatorias.
• Random ran = new Random();
– ran.nextInt(int n);
» Retorna un número aleatoria desde cero hasta n
– Clase Date
– Clase Properties
– Clase Runtime
• Permite ejecutar comandos en procesos separados
• Ejemplo
– Process p = Runtime.getRuntime().exec("xterm");
– ver: comando.java
Programación OO con Java
– Clase Math
– Es una clase sin ningún constructor, y todos sus
métodos son estáticos
• int Math.abs( int )
• long Math.abs( long )
• float Math.abs( float )
• double Math.abs( double )
• double Math.random()
• double Math.PI
Manejo de Errores
• Excepciones
–Las excepciones son la manera que ofrece
Java de manejar los errores en tiempo de
ejecución. Muchos lenguajes imperativos,
cuando tenían un error de este clase lo que
hacían era detener la ejecución del programa.
Las excepciones nos permiten escribir código
que nos permita manejar ese error y continuar
(si lo estimamos conveniente) con la ejecución
del programa.
Manejo de Errores
• try...catch...finally
– try {}
• Con el bloque try marcamos en que parte del
código esperamos que se genere un error.
– catch{}
• Con catch atrapamos el error y enviamos algún
mensaje si es necesario.
– finally
• El código en este bloque se ejecuta siempre, se
produzca o no la excepción.
Manejo de Errores
– Un bloque try puede tener asignado más
de un bloque catch
– Clase Exception
• String e.getMessage()
– Devuelve el mensaje detallado si existe o null en caso
contrario.
• void e.printStackTrace()
– Escribe por la salida de error estándar una lista que
nos permitirá localizar donde se generó el error. Es
muy útil para depurar, pero no es conveniente que lo
usuarios finales vean estas cosas.
Manejo de Errores
• Ejercicio
– Construya su propia excepción que notifique en
pantalla que fue creada
– Haga un programa que cree esa excepción
– Modifique su excepción y ahora implemente el
constructor que reciba el mensaje
– Use el programa para ver los errores que produce
– Ahora encapsule su código con try y catch
– ver: readdir.java
Threads de Control
• Programación secuencial
– Cada línea del programa se ejecuta en el mismo orden en el
cual fue invocada.
• Programación paralela
– Una parte del programa puede invocar a uno o más proceso
que se ejecute en forma paralela.
– Generalmente se utilizan en una arquitectura multi
procesadores.
– Los S.O. modernos implementan multi-procesos sin la
necesidad de multi procesadores.
Threads de Control
• Java provee un mecanismo de
Threads, que permite ejecutar varios
procesos en forma paralela.
• La manera de usar procesos paralelos
es extendiendo la clase Thread e
implementar el método run();
• Para la invocación se utiliza el método
start();
Threads de Control
• Ejemplo
– public class DosThreads {
• public static void main(String[] args){
– new ThreadsSimple("Santiago").start();
» new ThreadsSimple("Arica").start();
– }
– }
– Donde la clase ThreadsSimple implementa un
proceso en paralelo.
Threads de Control
• public class ThreadsSimple extends Thread {
– public ThreadsSimple(String str){
• super(str);
• }
• Para establecer
una conexión de
se debe especificar
el protocolo y el
puerto.
Red
• URL
– URL es un acrónimo que viene de Uniform
Resource Locator y es una referencia (una
dirección) a un recurso de Internet.
– http://java.sun.com/
• Clase URL
– La clase URL proporciona varios métodos que
permiten preguntar a los objetos URL.
Red
• Crear un Objeto URL
– URL linuxCenter = new URL("http://ww.linuxcenter.cl");
– URL(URL URLbase, String URLrelativa)
•URL linuxProductos = new URL
(”linuxCenter,”productos.html”)
– try {
– URL myURL = new URL(. . .)
– } catch (MalformedURLException e) {
– . . .
– // Aquí va el código del
manejador de excepciones
– . . .
–}
Red
– getProtocol()
• Devuelve el componente identificador de protocolo
de la URL.
– getHost()
• Devuelve el componente nombre del host de la
URL.
– getPort()
• Devuelve el componente número del puerto de la
URL. Este método devuelve un entero que es el
número de puerto. Si el puerto no está selccionado,
devuelve -1.
– getFile()
• Devuelve el componente nombre de fichero de la
URL.
Red
– getRef()
• Obtiene el componente referencia de la URL.
–Ejemplo:
– import java.net.*;
– class ParseURL {
– public static void main(String[] args) {
– URL aURL = null;
– try {
– aURL = new
URL("http://java.sun.com:80/tutorial/intro.html#DOWNLOADING");
– System.out.println("protocol = " + aURL.getProtocol());
– System.out.println("host = " + aURL.getHost());
– System.out.println("filename = " + aURL.getFile());
– System.out.println("port = " + aURL.getPort());
– System.out.println("ref = " + aURL.getRef());
– } catch (MalformedURLException e) {
– System.out.println("MalformedURLException: " + e);
– }
– }
Red
– Resultado del ejemplo:
• protocol = http
• host = java.sun.com
• filename = /tutorial/intro.html
• port = 80
• ref = DOWNLOADING
Red
• Leer desde una URL
– import java.net.*;
– import java.io.*;
– class OpenStreamTest {
– public static void main(String[] args) {
– try {
– URL yahoo = new URL("http://www.yahoo.com/");
– DataInputStream dis = new DataInputStream(yahoo.openStream());
– String inputLine;
• <title>Yahoo!</title>
• <meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l r (cz 1
lz 1 nz 1 oz 1 vz 1) gen true for "http://www.yahoo.com" r (cz 1 lz 1 nz 1 oz 1 vz 1)
"http://www.rsac.org/ratingsv01.html" l r (n 0 s 0 v 0 l 0) gen true for "http://www.yahoo.com"
r (n 0 s 0 v 0 l 0))'>
• <base
href="http://www.yahoo.com/_ylh=X3oDMTEwZGh2NmNjBF9TAzI3MTYxNDkEdGVzdAMwBHRtcGwDaW5kZXgtdGJs/"
target=_top>
• <script language=javascript><!--
• lck='',sss=1101710360,ylp='http://geo.yahoo.com/serv2?t=1101710360&_ylp=A9htdkYYxKpBr7MAdk71cSkA
';//--></script><script language=javascript>
• var b,d,l='',n='0',r,s,y;
• .
• .
• <script language=javascript>d.sf1.p.focus();</script>
• <script language=javascript>
• now=new Date;
• t4=now.getTime();
• </script>
• </body>
Red
• La Clase URL me permite interactuar a
nivel de la WEB.
• La Clase Socket me permite interactuar a
nivel de cualquier aplicación.
• Java nos provee de herramientas para
trabajar con la internet en una libreria:
–java.net.*
Red
Hola
Hola
Chao
Chao
Red
•Usando la clase de java ServerSocket y
threads, se puede crear un servidor que
atienda simultáneamente a más de un cliente.
– button.addActionListener(new ActionListener()
– {
• public void actionPerformed(ActionEvent e)
• {
– numClicks++;
– label.setText(labelPrefix + numClicks);
• }
– });
Swing/JFC
• Manejo de eventos
– ActionListener
• El usuario pulsa un botón, presiona Return mientras teclea
en un campo de texto, o elige un ítem de menú.
– WindowListener
• El usuario elige un frame (ventana principal).
– MouseListener
• El usuario pulsa un botón del ratón mientras el cursor está
sobre un componente.
– MouseMotionListener
• El usuario mueve el cursor sobre un componente.
Swing/JFC
– ComponentListener
– El componente se hace visible.
– FocusListener
• El componente obtiene obtiene el foco del teclado.
– ListSelectionListener
• Cambia la tabla o la selección de una lista.
• Para manejar los eventos es necesario
importar las bibliotecas de java.awt.*;
Swing/JFC
• Crear una etiqueta
– JLabel label = new Jlabel(“Una etiqueta");
• Crear TextField
– JTextField texto = new JtextField("Texto”);
– texto.setToolTipText("Escriba un texto");
• Crear ComboBox
– JComboBox comboBox = new JcomboBox(array);
– comboBox.setSelectedIndex(2);
Swing/JFC
• Ejemplo
JFrame
JPane
JMenu
JTextField
JButton
JLabel
JComboB
ox
Swing/JFC
• Ejercitar swing con los componentes
presentados usando la informacion disponible
en la API de JAVA.
– ver: Swing*.java
Acceso a Base de Datos
• JDBC fue diseñado para mantener sencillas
las cosas sencillas.
• JDBC nos permite hacer una conexión hacia
una Base de datos.
• Podemos realizar cualquier tipo de consultas,
modificación y creación de nuevas tablas.
Acceso a Base de Datos
• Los pasos necesarios:
– Cargar el driver ( el driver se obtiene del
proveedor de la BD ).
– Establecer la conexión.
– Crear sentencias.
– Ejecutar las sentencias.
Acceso a Base de Datos
• Pero que hacer con el driver? Como lo uso?
• La mejor respuesta disponible es esta:
– "Once you have un-archived the distribution archive,
you can install the driver in one of three ways:
‣ Either copy the "com" and "org" subdirectories and
all of their contents to anywhere you like, and put the
directory holding the "com" and "org" subdirectories
in your classpath,
‣ or put mysql-connector-java-[version]-bin.jar in your
classpath, either by adding the FULL path to it to
your CLASSPATH environment variable,
‣ or by copying the .jar file to
$JAVA_HOME/jre/lib/ext."
Acceso a Base de Datos
• Pero hay una opción más sencilla en
Windows:
• Descomprimir el .zip, y mover el .java a ese
directorio.
Acceso a Base de Datos
• Cargar el driver
– En nuestro caso usaremos la BD MySql, el driver se
puede obtener desde : http://www.mysql.org
– Class.forName("com.mysql.jdbc.Driver").newInstance();
Acceso a Base de Datos
• Ejecutar sentencias
– En este momento stmt existe, pero no tiene
ninguna sentencia SQL que pasarle al
controlador de la base de datos.
– stmt.executeQuery(“SELECT * FROM tabla”);
– stmt.executeUpdate(“INSERT INTO tabla
VALUE .....”);
Acceso a Base de Datos