Core Java (IBM)

Descargar como ppt, pdf o txt
Descargar como ppt, pdf o txt
Está en la página 1de 38

Programa de Capacitación para la Tecnología de

Negocios en la Web
Volumen 1: Fundamentos de Java

Volumen 2: Programación Orientada a Objetos

Volumen 3: Manejo de Excepciones

Volumen 4: Facilidades de Entrada/Salida

Volumen 5: Crear Interfaces AWT y Swing

Volumen 6: Applets

Volumen 7: Multihilos y Sistemas de Redes

Volumen 8: Conceptos Avanzados


Volumen 1: Fundamentos de Java

Plataforma Java


Componentes

La Maquina Virtual de Java (JVM)

La Interfaz de Programación de Aplicaciones o API (Application Programming
Interface)

La JVM es una aplicación ejecutable que


representa a un procesador genérico en el
cual corren los bytecodes de Java.
Las implementaciones concretas de la JVM
se encuentran en muchas plataformas.
Toda aplicación Java debe ejecutarse en
una instancia de la JVM. La JVM comienza
a ejecutar la aplicación invocando el
método main() de la clase inicial de la
aplicación.
Volumen 1: Fundamentos de Java

API Java

Colección de
Componentes de
Software apropiadas
para el desarrollo de
programas en Java.
Volumen 1: Fundamentos de Java

Tipos de Datos en Java

Tipo de Dato Tamaño Ejemplo


boolean 1 byte true
byte 1 byte 2
char 2 bytes ‘a’
short 2 bytes 5
int 4 bytes 154
long 8 bytes 17952
float 4 bytes 5.51f
double 8 bytes 16.45
Volumen 1: Fundamentos de Java

Estructuras de Control

do, while while for

int i = 0, suma = 0; int i = 0, suma = 0; int suma = 0;


do { while( i < 5 ){ for(int i =0; i<5 ; i++){
suma = suma + ( i++ ) ; suma = suma + (i++) ; suma = suma +i ;
}while( i < 5 ); } }

switch-case
int var = 2, opcion;
switch(var){
case 1: var = var + 1;
break;
case 2: var = var +2;
break;
default: var = var +10;
}
System.out.println(var);
Salida: 4
Volumen 2: Programación Orientada a Objetos

Estructura de una Clase

package transporte;//Opcional
import java.lang.String;//Opcional Una clase es una entidad
autocontenida que tiene las
class Bicicleta{ definiciones de los atributos y el
comportamiento que son
int nRuedas; comunes a todos los objetos de
int tipoRuedas; software de un tipo en particular
Los atributos se convierten en
Variables String color; las variables y el
comportamiento se refleja con
float velocidad; los métodos en una clase Java
A partir de una clase se pueden
crear instancias llamadas
public void acelerar(float a){} objetos
public void desacelerar(float a){}
Métodos
public void frenar(){}
public void cambiarVelocidad(int v){}
}

Creación del Objeto


Constructor

Bicicleta miObjeto = new Bicicleta()


Volumen 2: Programación Orientada a Objetos

Componentes de una Clase

Componentes Propósito

public La clase es públicamente accesible

abstract La clase no puede ser instanciada

final La clase no puede ser derivada

class nombreClase Especifica el nombre de la clase

extends superClase Especifica el nombre de la superclase

Especifica las interfaces implementadas dentro


implements interface
de la clase

{
Implementación de la clase
}
Volumen 2: Programación Orientada a Objetos

Tipos de Variables en Java Las variables de


instancia se usan
para guardar los
Las variables de clase
atributos de un
se caracterizan
objeto particular.
porque los valores 
Variables de instancia
que guardan son los
mismos para todos los
objetos de una
determinada clase. 
Variables de clase Cuando se declara una variable
de tipo final, se ha de inicializar
y cualquier intento de
modificarla en el curso de la

Variables final ejecución del programa da lugar
a un error en tiempo de
Una variable compilación.
transient no es
almacenada como 
Variables transient
parte del estado
persistente de su
objeto

Variables volatile
Las variables
declaradas volatile
pueden ser

Variables locales modificadas de forma
asincrónica para que el
compilador tome las
Las variables precauciones
locales se necesarias
utilizan dentro
los métodos
Volumen 2: Programación Orientada a Objetos

Métodos en Java
Los métodos de
instancia están
Son métodos que se relacionados con
declaran en una clase un objeto en
no para ser utilizados

Métodos de instancia particular.
como mensajes a los
objetos sino para
producir acciones que
no están asociadas a

Métodos de clase
ningún objeto en
particular. Métodos que
no tienen

Métodos abstractos implementaci
ón


Métodos final
Un método final es Es un método
un método que no Java cuya
se puede redefinir

Métodos nativos implementación
en una subclase se ha realizado
de la clase en en otro lenguaje
donde se definió de programación

Métodos sincronizados

Aseguran que únicamente un hilo


pueda acceder a un objeto en
particular en un momento dado
Volumen 2: Programación Orientada a Objetos

Modificadores de Acceso


Private Subclase Clase Subclase Clase
Modificador Clase mismo mismo otro otro
paquete Paquete paquete paquete

Proctected
private si no no no no


Public protected si si si si no


Sin modificador public si si si si si
(se asume
package) package si si si no no
Volumen 2: Programación Orientada a Objetos

Herencia


Fundamentos

En Java, la clase de la cual se hereda es llamada superclase y la clase que hereda de
otra clase es llamada subclase

Para especificar que una clase hereda de otra clase, la clase que hereda debe usar la
palabra clave extends después del nombre de la clase en su declaración


Ejemplo
class Transporte{
int color;
float velocidad;
int capacidad;
public Transporte(int c, int cap){
color = c; capacidad = cap;
}
}
class Aereo extends Transporte{
float altura;
public Aereo(int c, int cap, float a){
super(c,cap);
altura = a;
}
}
Volumen 2: Programación Orientada a Objetos

Sobrecarga de Métodos Original

1. public class A{
2. public int suma(int n1, int n2){
3. return ( n1 + n2 );
4. }
5. public int suma(int n1, int n2, int n3){
6. return ( n1 + n2 + n3 );
7. } Sobrecargado

8. public void suma(int n1, int n2){


9. System.out.println( n1 + n2 );
10. }
11.}
Error
Volumen 2: Programación Orientada a Objetos

Sobreescritura de Métodos

Original
class X {
public void mostrar(){
System.out.println(“Objeto Padre“);
}
}
class Y extends X {
public void mostrar(){
System.out.println(“Objeto Hijo");
}
}
Sobreescrito en
la subclase
Volumen 2: Programación Orientada a Objetos

Clases Abstractas y Clases Concretas

Clases Abstractas Clases Concretas

Generalizan clases concretas Representan objetos del mundo real

No pueden ser instanciadas Pueden ser instanciadas

Pueden definir métodos abstractos No define métodos abstractos

Puede proveer implementación para Provee implementación para todos sus


algunos de sus métodos métodos
Volumen 2: Programación Orientada a Objetos

Interfaces

Fundamentos

Las interfaces son similares a las clase, pero no tienen ninguna variable de instancia y
no se proporciona la implementación para los métodos declarados en ella

Se usan básicamente, para especificar que debe hacer una clase, pero no cómo, de
esto se encargan las clases que implementen la interfaz


Ejemplo

Implementación
public interface Telefono{ public class Celular implements
void llamar(int tlf); Telefono, Agenda{
} public void llamar(int tlf){
public interface Agenda{ // código para llamar }
void grabarNumero(String nombre,int tlf); public void grabarNumero(String
int buscarNumero(String nombre); nombre,int tlf){
// código para grabar}
public int buscarNumero(String
nombre){
// código para buscar}
public static void main(String
args[]){
Telefono nokia = new Celular();
}
}
Volumen 3: Manejo de Excepciones

Excepciones

Qué es una excepción?
Una excepción es un evento anormal que se lanza cuando ocurre una
condición especial durante la ejecución de un programa

Soporte Java public class Prueba {
public static void

try main(String[] args) {
int a = 50;

catch int b = 0;
try{

throw int c = a / b;
System.out.println(“Valor: "

throws class Carro{ + c);
private float velocidad = 0; }catch(ArithmeticException

finally private
200;
final float MAX_V = e){
System.out.println(“Error:
try{ public void acelerar(float ”+e);
conectar_a_base_de_datos(); inc)throws MotorException{ }
}catch(DBException e){ if( ( velocidad + }
... inc ) > MAX_V){ }
}finally{ throw new
if( conexionExistente() ){ MotorException(“No es
System.out.println(“Liberando posible pasar la velocidad
conexión a DB”); Maxima”);
liberar_conexion_a_base_de_dat }else
os(); velocidad +=
System.out.println(“Conexión inc;
liberada!”); }
} }
}
Volumen 4: Facilidades de Entrada/Salida

Flujos

Fundamentos

Un flujo (stream) es una secuencia de bytes que viajan de un origen a un destino

Origen bytes/caracteres Programa


Lectura

Destino bytes/caracteres Programa


Escritura

Soporte Java

Existen colecciones de clases de flujos presentes en el paquete java.io que son
usadas para leer y escribir datos usando flujos

Los flujos son divididos en dos tipos principales :
Volumen 4: Facilidades de Entrada/Salida
Serialización de Objetos

Fundamentos

La Serialización de objetos es el proceso por el cual el estado actual de un objeto es
almacenado en un estado persistente

Del flujo de bytes en el cual se almacena puede ser transformado para obtener
nuevamente un objeto

La serialización y deserealización de objetos se ocupan de la lectura y escritura de un
objeto. Esta tarea se lleva a cabo con la ayuda de las clases ObjectInputStream y
ObjectOutputStream

Soporte Java

Interfaz Seralizable

Interfaz Externalizable

Clase ObjectInputStream

Clase ObjectOutputStream
Volumen 4: Facilidades de Entrada/Salida
Serialización de Objetos

Ejemplo
import java.io.*;
class SerializableDemo implements Serializable{
public int a;
public int b;
public SerializableDemo(){
a = b = 0;
}
public static void main(String[] args)throws IOException,
ClassNotFoundException{
SerializableDemo obj = new SerializableDemo();
obj.a = 23;obj.b = 345;
ObjectOutputStream oos = new ObjectOutputStream(new
FileOutputStream("c:/obj.bin"));
oos.writeObject(obj);
oos.close();
ObjectInputStream ois = new ObjectInputStream(new
FileInputStream("c:/obj.bin"));
SerializableDemo obj2 =
(SerializableDemo)ois.readObject();
System.out.println("Campos a: “ + obj2.a + " b: “ + obj2.b);
ois.close();
} /* Fin del método main */
}/* Fin de la clase SerializableDemo */
Volumen 5: Crear Interfaces AWT y Swing
AWT (Abstract Window Toolkit)

Fundamentos

Java provee un paquete para diseñar interfaces gráficas para el usuario (Graphical
User Interfaces - GUIs) llamado Abstract Window Toolkit (AWT)

AWT es una librería rica de componentes que se usan para crear GUIs en Java.

El propósito principal de AWT es proveer soporte a ventanas, tanto en applets como
en aplicaciones autónomas (standalone) en variados sistemas operativos
Component

Soporte Java

Las clases AWT se encuentran básicamente Container
dentro del paquete java.awt

AWT contiene diferentes clases, que se clasifican
en tres categorías:
1. Gráficos Window Panel

2. Componentes
3. Administradores de Diseño
Frame

MenuContainer
Volumen 5: Crear Interfaces AWT y Swing
Administradores de Diseño

Fundamentos

Un administrador de diseño puede ser definido como un objeto que realiza la
distribución espacial de los componentes dentro de un contenedor

Un administrador de diseño (Layout Manager) ordena automáticamente los controles
dentro de una ventana usando algún tipo de algoritmo

El administrador de diseño puede ser establecido usando el método setLayout() de la
siguiente manera: container.setLayout(layout);


Soporte Java

FlowLayout

BorderLayout

CardLayout

GridLayout

GridBagLayout
Volumen 5: Crear Interfaces AWT y Swing
Modelo de Delegación de Eventos

Clases Descripción
ActionEvent Creado cuando presionamos un botón,
hacemos doble clic en un elemento de
lista, o elegimos un elemento de menú
ComponentEvent Creado cuando un componente cambia su
tamaño, posición o visibilidad
ContainerEvent Creado cuando añadimos o removemos un
componente de un contenedor
ItemEvent Creado mientras hacemos clic en un
checkbox o un elemento de lista; también
cuando seleccionamos o deseleccionamos
elementos de menú seleccionables
KeyEvent Creado cuando se recibe entrada del
teclado
MouseEvent Creado mientras se arrastra, mueve, hace
clic o presiona un ratón; también cuando el
ratón entra o sale de un componente
TextEvent Creado mientras hay un cambio en el valor
de un área de texto o campo de texto
WindowEvent Creado cuando se activa, cierra, desactiva, Tipos de Eventos
maximiza, minimiza, abre o se sale de una
ventana
Volumen 5: Crear Interfaces AWT y Swing

Listeners de Eventos Clases Adaptadoras

Interfaz Tipo de Evento Clase Interfaz Listener


ActionListener ActionEvent ComponentAdapter ComponentListener
ComponentListener ComponentEvent
ContainerAdapter ContainerListener
ContainerListener ContainerEvent
ItemListener ItemEvent KeyAdapter KeyListener
KeyListener KeyEvent
MouseAdapter MouseListener
MouseListener MouseEvent
MouseMotionListener MouseEvent MouseMotionAdapter MouseMotionListener
TextListener TextEvent
WindowAdapter WindowListener
WindowListener WindowEvent
Volumen 5: Crear Interfaces AWT y Swing
Arquitectura MVC de Swing

Fundamentos 
Jerarquía de Clases de Swing

El MVC de Swing es una versión
especializada del clásico MVC.

El modelo mantiene los datos y
proporciona métodos para tener
acceso a los datos.

Los componentes Swing necesitan
mantener una apariencia
independiente de la plataforma. La
apariencia independiente de
plataforma es mantenida por el
componente vista.

Los oyentes de eventos son los
controladores. Manejan la entrada del
usuario e invocan a los métodos
apropiados en el modelo
Volumen 6: Applets
Applets de Java

Fundamentos

Un applet es un programa Java, que puede ser incluido en una página HTML y
ejecutarse en navegadores Web con soporte a Java

Cuando existe un applet en la página, automáticamente se transfiere el código del
applet del servidor al cliente y lo ejecuta la JVM del navegador

Un applet no puede acceder a ningún recurso fuera de la JVM del navegador

Esta restricción asegura que se prevengan los riesgos de seguridad
Ejecución de
Ciclo de un Applet
Object Vida de <html>
un Applet
<body>
Component <applet
code="CicloAp
Container plet"
width="500"
height="25">
Panel Clase Applet.
Jerarquía de </applet>
Herencia
</body>
Applet </html>
Volumen 7: Multihilos y Sistema de Redes
Hilos y Multihilos

Fundamentos

Un hilo sólo puede ejecutarse dentro de un programa,

Se pueden tener varios hilos corriendo en un programa

Los hilos no son iguales a los procesos

Los hilos son componentes ligeros y los procesos son componentes pesados

El tiempo empleado en cambios de contexto es mucho menor para hilos que para los
procesos

Un sistema operativo puede tener múltiples programas ejecutándose y cada programa
puede tener múltiples hilos de control

Cada instancia de un programa es un proceso mientras que cada secuencia de control
dentro de un programa es un hilo

Cada proceso tiene su propio espacio de direcciones

Los hilos comparten el mismo espacio de direcciones reservado para el proceso
Volumen 7: Multihilos y Sistema de Redes
Tipos de Hilos

Hilos Usuarios

Son creados por los usuarios (programadores)

Se ejecutan en primer plano

La JVM no terminará mientras exista un hilo usuario corriendo

Una vez que terminen los hilos usuario, la JVM terminará los hilos demonio y terminará

El hilo principal (main thread) se crea con el método main()

Hilos Demonios

Se crean para realizar tareas de servicio como la recolección de basura

Se ejecutan usualmente en segundo plano

Un hilo usuario puede pasar a demonio ejecutando setDaemon()
Volumen 7: Multihilos y Sistema de Redes
Crear Hilos

Soporte Java para crear Hilos

Heredando de la clase Thread y sobrescribiendo su método run()

Implementando la interfaz Runnable y proporcionando la implementación para su único
método run() Extendiend
o Clase
Thread public class PingPong2 implements Runnable{
public class PingPong1 extends Thread{
private int retraso;
private int retraso;
private String mensaje;
private String mensaje;
public PingPong2(String m,int r){
public PingPong1(String m,int r){
mensaje = m; retraso = r;
mensaje = m; retraso = r;
}
} Implementando
Intrefaz public void run(){
public void run(){
Runnable try{
try{
for(;;){
for(;;){
System.out.println(mensaje);
System.out.println(mensaje);
sleep(retraso); Thread.sleep(retraso);
}
}
}catch(InterruptedException e)
}catch(InterruptedException e)
{return;} {return;}
}
}
public static void main(String []args){ public static void main(String []args){
new Thread(new PingPong2("ping",
new PingPong1("ping", 500).start();
new PingPong1("pong", 700).start(); 500)).start();
new Thread(new PingPong2("pong",
700)).start();
}
}//Fin de la clase PingPong1 }
}//Fin de la clase PingPong2
Volumen 7: Multihilos y Sistema de Redes
Conectores (Sockets)

Fundamentos

Los conectores(sockets) son sistemas de comunicación entre procesos de diferentes
máquinas de una red

Un conector es un punto de comunicación por el cual un proceso puede emitir o recibir
información

Los conectores proveen una conexión confiable entre los sistemas cliente y servidor.

Las computadores crean conectores para comunicarse unas con otras

Soporte Java
Java proporciona dos maneras de establecer la conexión entre un cliente y un servidor:

El modo de operación orientado a conexión usando el protocolo TCP

El modo de operación sin conexión usa el Protocolo de Datagrama de Usuario (UDP)
Volumen 7: Multihilos y Sistema de Redes
Clases Orientadas a Conexión

Cliente Servidor
ServerSocket s = new
Socket cliente; ServerSocket(8765);
cliente= new Socket(ip,port); Socket c = server.accept();
Se establece la conexión
ObjectOutputStream oos = new ObjectInputStream ois = new
ObjectOutputStream( ObjectInputStream(
cliente.getOutputStream()); cliente.getInputStream());
Obtenemos los flujos de datos

oos.writeObject("Hola"); String msg = (String)


ois.readObject();
Intercambiamos información
System.out.println(msg);
oos.close();cliente.close(); ois.close();c.close();
Volumen 8: Conceptos Avanzados
API de Colecciones

Fundamentos de Colecciones

Una colección puede ser vista básicamente como una Estructura de Datos

Una colección es un objeto usado para agrupar múltiples objetos como una unidad

La estructura de colecciones propuesta por Java está compuesta por interfaces,
implementaciones y algoritmos (búsqueda y ordenamiento) todo esto forma las
Estructuras de Datos

El marco de trabajo de colecciones permite almacenar, acceder, recuperar y manipular
los elementos de las colecciones

API
Collections
Volumen 8: Conceptos Avanzados
Colecciones en diferentes escenarios
Volumen 8: Conceptos Avanzados
JDBC (Java Data Base Connectivity)


Pasos para acceder a una Base de Datos
1. Se debe cargar en memoria el controlador (driver) que habilitará la conexión entre el
programa Java y el sistema de base de datos
2. A través de este controlador, se establece una conexión a la base de datos
3. Una vez establecida la conexión, por medio de esta se ejecutan las sentencias SQL
que sean requeridas
4. Al finalizar se debe cerrar todas las conexiones a bases de datos que estén activas

Soporte Java
El API JDBC está constituído por las siguientes clases e interfaces:

java.sql.Driver

java.sql.Connection

java.sql.Statement

java.sql.ResultSet

java.sql.ResultSetMetaData

java.sql.DabataseMetaData

java.sql.PreparedStatement

java.sql.CallableStatement
Volumen 8: Conceptos Avanzados
Crear una Conexión

import java.sql.*;
public class PruebasJDBC {
public static void main(java.lang.String[] args) {
Connection conn = null;
try {
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
System.out.println("Driver cargado...");
conn = DriverManager.getConnection(
"jdbc:db2:Sample", "db2admin",
"db2admin");
System.out.println("Conexión establecida...");
} catch (ClassNotFoundException e) {
System.out.println("Driver no encontrado");
} catch (SQLException e) {
System.out.println("Error DB: " + e);
} finally {
try {
if (conn != null) conn.close();
} catch (SQLException se){}
}
}
}
Volumen 8: Conceptos Avanzados
Características Avanzadas


Seguridad

El principal objetivo de la seguridad en Java es controlar el acceso a los recursos del
computador incluyendo todos sus dispositivos

Algunos conceptos importantes de la seguridad son: Identificación, Autenticación,
Autorización, Integridad de los datos, Encriptamiento, Auditoría

Firmas Digitales

Una firma digital es el proceso en el que las llaves públicas y privadas son producidas
y se relacionan matemáticamente

Certificados Digitales

Los certificados digitales se usan estrechamente con las firmas digitales

Junto con la verificación de la identidad del desarrollador del código, los certificados
pueden usarse para verificar, adicionalmente, si el código vino de una fuente no
familiar confiable.

Un certificado firmado presenta e identifica una llave pública. Una tercera autoridad de
certificación verifica que puede confiarse en el emisor
Volumen 8: Conceptos Avanzados
Características Avanzadas


Internacionalización

La Internacionalización es el proceso de diseñar una aplicación que pueda ser
adaptada a varios lenguajes y regiones.

JavaBean

Las tecnologías de componentes se incorporan a la plataforma Java a través del
concepto de JavaBeans. Las características que distinguen un JavaBean de una
simple clase de Java son:

Introspección

Persistencia

Personalización

Manejo de Eventos

Propiedades

Clase java.lang.Math

Esta clase contiene métodos para resolver operaciones numéricas básicas, tales
como: cálculo de logaritmo, raíz cuadrada, valor absoluto, funciones trigonométricas

También podría gustarte