Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Mg. Ing. Fabian Castillo Colecciones Estructura de las Colecciones en Java • 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 • El marco de trabajo de colecciones permite almacenar, acceder, recuperar y manipular los elementos de las colecciones API de Colecciones Copyright © 2004 Conceptos Avanzados La Interfaz Collection • La raíz de la jerarquía de colecciones es la interfaz Collection • Las clases concretas de colecciones implementan la interfaz Collection • La interfaz Collection se usa para pasar colecciones entre métodos y manipularlos cuando se requiere de una máxima generalización • Las implementaciones de colecciones de propósito general normalmente poseen un constructor con Collection como uno de sus parámetros Copyright © 2004 Conceptos Avanzados La Interfaz Collection public interface Collection { // Operaciones Básicas int size(); boolean isEmpty(); boolean contains(Object element); boolean add(Object element); boolean remove(Object element); Iterator iterator(); // Operaciones en Lotes boolean containsAll(Collection c); boolean addAll(Collection c); boolean removeAll(Collection c); boolean retainAll(Collection c); void clear(); // Interoperabilidad Object[] toArray(); Object[] toArray(Object a[]); } Copyright © 2004 Conceptos Avanzados import java.util.*; public class PruebaCollection { public static void main(String[] args) { Collection c = new Vector(); c.add("Hola");c.add("Mundo"); // Utilizamos un iterador para recorrer // la lista entera Iterator i = c.iterator(); while(i.hasNext()){ System.out.println(i.next()); } } } La Interfaz Collection Copyright © 2004 Conceptos Avanzados La Interfaz Set • La interfaz Set representa a una colección de elementos donde ninguno de ellos está repetido • El método add retorna false si se intenta agregar un elemento que ya existe, no ocurre ningún cambio en el conjunto • Dos objetos Set que contengan los mismos objetos serán considerados iguales Copyright © 2004 Conceptos Avanzados La clase HashSet •HashSet es una implementación de Set, no garantiza el orden de los elementos •HashSet se usa para guardar los elementos de un Set en una tabla hash. import java.util.*; public class PruebaSet { public static void main(String[] args) { Set list = new HashSet(); //Continúa... Copyright © 2004 Conceptos Avanzados La clase HashSet • Salida del programa o i a u e list.add("a");list.add("e");list.add("i"); list.add("a");list.add("e");list.add("o"); list.add("i");list.add("u");list.add("u"); Iterator i = list.iterator(); while(i.hasNext()) System.out.println(i.next()); } }//Fin de la clase PruebaSet Copyright © 2004 Conceptos Avanzados La Interfaz SortedSet • La interfaz SortedSet extiende de la interfaz Set •SortedSet permite establecer una relación de orden entre sus elementos • El orden por defecto es ascendente y viene dado por la naturaleza del valor, o por un comparador que sea especificado en la instanciación Copyright © 2004 Conceptos Avanzados •TreeSet proporciona una implementación de la interfaz Set que garantiza el orden en la iteración. •Los objetos se ordenan en orden ascendente y se almacenan en la forma de un árbol de búsqueda binaria La clase TreeSet import java.util.*; public class PruebaSortedSet{ public static void main(String[] args) { SortedSet list = new TreeSet(); list.add("a");list.add("e");list.add("i"); list.add("a");list.add("e");list.add("o"); list.add("i");list.add("u");list.add("u"); //Continúa... Copyright © 2004 Conceptos Avanzados Iterator i = list.iterator(); while(i.hasNext()){ System.out.println(i.next()); } } }//Fin de la clase PruebaSortedSet La clase TreeSet • Salida del programa a e i o u Copyright © 2004 Conceptos Avanzados La Interfaz List • Una lista es una colección ordenada • Mantiene un índice de los elementos que denota la posición del elemento en la lista • Las listas permiten elementos duplicados •List provee operaciones que permiten: - Acceder a un elemento especificando su posición - Buscar un elemento específico - Realizar operaciones de iteración en la lista - Realizar operaciones de rango Copyright © 2004 Conceptos Avanzados La clase Vector • Vector es una implementacion de List • El tamaño de un Vector se puede modificar dinámicamente • Los vectores sólo pueden guardar referencias del tipo java.lang.Object • Los vectores pueden almacenar cualquier combinación de tipos de datos de objetos. • El método elementAt(index) de la clase Vector se usa para recuperar una referencia dada en el índice especificado Copyright © 2004 Conceptos Avanzados List y Vector import java.util.*; public class PruebaList { public static void main(String[] args) { List list = new Vector(); for(int i=1;i<=20;i++) list.add(i+""); Copyright © 2004 Conceptos Avanzados La Clase ArrayList • Provee un arreglo dinámico • La lista contenida puede expandirse o contraerse dinámicamente, lo que no es posible hacer con arreglos • No posee los métodos legados de Vector elementAt() addElement() La Clase LinkedList • Provee al igual que las dos anteriores un arreglo dinámico • Tiene un constructor sobrecargado LinkedList(Collection c), que construye una lista enlazada con los elementos de la colección c Copyright © 2004 Conceptos Avanzados La Clase Collections • Esta clase, tiene un conjunto de métodos estáticos que son básicamente algoritmos asociados a estructuras de datos • Los métodos incluyen: ordenamiento, búsqueda, desordenar, inversión del orden de la colección import java.util.*; public class PruebaCollection1{ public static void main(String[] args) { List l = new Vector(); for(int i = 65;i < 91;i++) l.add((char)i+""); Collections.shuffle(l); //Continúa... Copyright © 2004 Conceptos Avanzados La Clase Collections System.out.println(l); Collections.sort(l); System.out.println(l); int pos = Collections.binarySearch(l,"P"); System.out.println("Encontrado en: "+pos); } }//Fin de la clase PruebaCollection1 • Salida del programa [F, R, J, V, L, A, Y, N, P, Z, I, T, S, H, Q, K, W, C, M, E, X, G, U, D, O, B] [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z] Encontrado en: 15 Copyright © 2004 Conceptos Avanzados Resumen • Estructura de colecciones en Java • Se explicaron las interfaces collection • Se aprendió acerca de algunas implementaciones de colecciones Copyright © 2004 Conceptos Avanzados Un Establecimiento educativo necesita implementar un sistema en el que se puedan cargar alumnos que cursan una asignatura, los datos que caracterizan a los alumnos son: el nombre y apellido, Libreta Universitaria, sexo, condición (regular o condicional) y la nota final. Los datos para una asignatura son Nombre de la Asignatura, Año, Total de Hs, Implemente las clases y métodos necesarios para esta situación, teniendo en cuenta lo que se pide a continuación: 1.Mostrar en pantalla todos los alumnos que se encuentren en la asignatura. 2.Mostrar en pantalla los alumnos que se encuentren como condicional y su cantidad. 3.Ordenar los alumnos de acuerdo a su nota (de mayor a menor) y mostrarlo en pantalla. 4.Ordenar los alumnos por nombre y apellido y mostrarlo en pantalla Práctico: Copyright © 2004 Conceptos Avanzados JDBC Copyright © 2004 Conceptos Avanzados Objetivos de Aprendizaje • Aprender acerca de la conectividad a base de datos en Java • Entender acerca de la API Java JDBC • Discutir acerca de sentencias SQL usadas en programas Java • Enseñar cómo tratar con el manejo de excepciones en JDBC Copyright © 2004 Conceptos Avanzados Introducción • Java proporciona conectividad a muchos tipos de base de datos a través de su API de Conectividad a Base de Datos Java ( Java Data Base Connectivity - JDBC) • Para desarrollarprogramas que interactuen con bases de datos en Java, se requiere esencialmente: - Una base de datos relacional - Una interfaz con Java (a través del API JDBC) - Conocimiento básico de las sentencias SQL Copyright © 2004 Conceptos Avanzados Pasos Involucrados en el Acceso a Bases 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 Copyright © 2004 Conceptos Avanzados El API JDBC • Algunas de las clases e interfaces de esta api son: – java.sql.DriverManager – java.sql.Driver – java.sql.Connection – java.sql.Statement – java.sql.ResultSet – java.sql.ResultSetMetaData – java.sql.DabataseMetaData – java.sql.PreparedStatement – java.sql.CallableStatement Copyright © 2004 Conceptos Avanzados Relación entre las Clases e Interfaces JDBC DriverManager «interface» Connection «interface» ResultSet «interface» Statement «interface» DatabaseMetaData «interface» ResultSetMetaData «interface» Driver utiliza crea genera genera retorna genera Copyright © 2004 Conceptos Avanzados Tipos de Controladores JDBC • JDBC provee cuatro tipos de controladores: - Controlador JDBC-ODBC (Tipo 1) - Controlador API-Nativo (Tipo 2) - Controlador de Protocolo de Red (Tipo 3) - Controlador Protocolo-Nativo (Tipo 4) Copyright © 2004 Conceptos Avanzados Cargar el Controlador • Para cargar el controlador, se debe usar el método forName en la clase Class con el nombre del controlador como argumento • Ejemplos del proceso de carga de un driver: - MS Access y MS SQL Server Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); - IBM UDB DB2 Class.forName("COM.ibm.db2.jdbc.app.DB2Driver"); - MySQL Class.forName("com.mysql.jdbc.Driver"); - PostgreSQL Class.forName("org.postgresql.Driver"); Copyright © 2004 Conceptos Avanzados Crear una Conexión • La clase DriverManager es responsable por buscar las diferentes implementaciones JDBC que puedan existir en un sistema y administrar los controladores JDBC • La clase DriverManager provee un método llamado getConnection(), por medio de este se puede obtener una conexión a una bases de datos • Este método toma tres argumentos: – El URL de la base de datos protocol:<subprotocol>:<subname> – Identificación del usuario – Clave del usuario Copyright © 2004 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){} } } } Debemos realizar un manejo adecuado de las excepciones que pueden generarse Copyright © 2004 Conceptos Avanzados Crear Objetos Statement • Las sentencias SQL más usadas son las siguientes: – UPDATE – INSERT – DELETE – SELECT • La interfaz Statement provee métodos para hacer estas llamadas • El método executeUpdate() retorna el numero de registros afectados por la sentencia SQL • El método executeQuery() retorna el conjunto de registros seleccionados por la consulta (ResultSet) Copyright © 2004 Conceptos Avanzados import java.sql.*; public class PruebasJDBC1 { public static void main(String[] args) { Connection conn = null; String u = "db2admin"; String p = "db2admin"; String drv = "COM.ibm.db2.jdbc.app.DB2Driver"; try { Class.forName(drv); conn = DriverManager.getConnection( "jdbc:db2:IBM",u,p); Statement stmt = conn.createStatement(); String sql = "INSERT INTO ESTUDIANTE "+ "VALUES('Pedro','Perez',123)"; stmt.executeUpdate(sql); System.out.println("Actualización exitosa "); } catch (Exception e){ System.out.println("Error: "+e); }finally { try {if (conn != null)conn.close();} catch (SQLException se){} } } } Crear Objetos Statement Copyright © 2004 Conceptos Avanzados Usar ResultSet • Al utilizar el método executeQuery() de un Statement, es necesario utilizar una referencia a la interfaz ResultSet para manipular los datos retornados por el Statement • Para iterar a través de un ResultSet se utiliza el método next(), que permite mover el cursor desde su posición actual hasta el proximo registro • Inicialmente el cursor del ResultSet se encuentra antes del primer registro Copyright © 2004 Conceptos Avanzados Usar ResultSet • La interfaz ResultSet provee una serie de métodos que permiten extraer los datos contenidos en el registro apuntado por el cursor, entre estos se tienen: - int getInt(String); int getInt(int); - String getString(String); String getString(int); - float getFloat(String); float getFloat(int); • Existe un par de métodos similares para cada tipo de dato compatible con SQL Copyright © 2004 Conceptos Avanzados import java.sql.*; public class PruebasJDBC2 { public static void main(String[] args) { ... try { ... Statement stmt = conn.createStatement(); String sql = "SELECT * FROM ESTUDIANTE"; ResultSet r = stmt.executeQuery(sql); while(r.next()) System.out.println(r.getString("nombre")+ " "+ r.getInt("ci")); } catch (Exception e){ System.out.println("Error: "+e); }finally { try {if (conn != null)conn.close();} catch (SQLException se){} } } } Usar ResultSet Copyright © 2004 Conceptos Avanzados Interfaces MetaData • La palabra Metadata implica información acerca de información • La interfaz ResultSetMetaData provee información acerca de los objetos ResultSet • La clase DatabaseMetaData está relacionado con el objeto Connection. Por medio de esta se puede obtener información de la base de datos a la cual se está conectado por medio de Connection Copyright © 2004 Conceptos Avanzados ResultSetMetaData • Algunos de los métodos contenidos en esta interfaz son los siguientes: - int getColumnCount() - String getColumnLabel(int column) - String getColumnName(int column) - String getTableName(int column) - int isNullable(int column) - boolean isReadOnly(int column) Copyright © 2004 Conceptos Avanzados DatabaseSetMetaData • Alguno de los métodos contenidos en esta interfaz son los siguientes: - String getDriverName() - String getURL() - String getUserName() - boolean isReadOnly() Copyright © 2004 Conceptos Avanzados Resumen • Se aprendió acerca de conectividad a base de datos en Java • Se entendió el Java JDBC API • Se discutió acerca de sentencias SQL usadas en programas Java • Se presentó cómo se trata el el manejo de excepciones Copyright © 2004 Conceptos Avanzados JDBC Avanzado Copyright © 2004 Conceptos Avanzados Objetivos de Aprendizaje • Describir el uso de las interfaces herederas de la interfaz Statement • Explicar los procedimientos almacenados • Explicar las funcionalidades de: - manejo de transacciones - soporte a cursores - el procesamiento de múltiples resultados de JDBC • Discutir algunas clases de soporte JDBC en Java Copyright © 2004 Conceptos Avanzados Extensiones de la Interfaz Statement • La especificación JDBC provee dos clases adicionales, provenientes de la interfaz Statement para permitir al programador realizar programación sofisticada de base de datos • Estas interfaces son: – PreparedStatement – CallableStatement Copyright © 2004 Conceptos Avanzados PreparedStatement • Existe una manera de crear sentencias SQL una vez y usarla cada vez que quiera correrla • Esto se logra a través de PreparedStatement de JDBC •Esta interfaz permite construir las sentencias SQL requeridas una vez y ejecutarlas cualquier número de veces en la aplicación • Cuando un objeto PreparedStatement es creado, la sentencia SQL se da como argumento • La sentencia SQL debe ser enviada al DBMS inmediatamente donde es compilada una vez Copyright © 2004 Conceptos Avanzados PreparedStatement • En tiempo de construcción el PreparedStatement no conoce los valores que determinan el resultado de su ejecución • Solo las posiciones de dichos valores son conocidas en el momento de su creación, las mismas son indicadas con el símbolo “?” PreparedStatement ps; ps = conn.preparedStatement("select * from tabla "+ "where c1=? ") Copyright © 2004 Conceptos Avanzados import java.sql.*; public class PruebasJDBCPrepared { static String db="jdbc:db2:IBM"; static String drv="COM.ibm.db2.jdbc.app.DB2Driver"; public static void main(String []args){ Connection conn = null; PreparedStatement ps = null; try{ Class.forName(drv); conn = DriverManager. getConnection(db,"db2admin","db2admin"); String sql = "select * from estudiante where ci=?"; ps = conn.prepareCall(sql); ps.setInt(1,123); ResultSet rs = ps.executeQuery(); //Continúa... PreparedStatement Copyright © 2004 Conceptos Avanzados if(rs.next()) System.out.println("Encontrado"); else System.out.println("No Encontrado"); }catch(Exception e){ System.out.println("Error: "+e); }finally{ try{ if(conn!=null) conn.close(); }catch(Exception e){} } } }//Fin de la clase PruebasJDBCPrepared PreparedStatement Copyright © 2004 Conceptos Avanzados Procedimientos Almacenados • Un procedimiento almacenado (stored procedure) permite asociar un conjunto de sentencias SQL a un único nombre, para luego ejecutarlas haciendo uso de ese nombre en cualquier momento • Los procedimientos almacenados son muy rápidos, ya que se ejecutan dentro de la base de datos y están previamente compilados • Por medio de los objetos de la interfaz CallableStatement se pueden ejecutar dentro del código Java Copyright © 2004 Conceptos Avanzados Otras Funcionalidades JDBC ✓ Administración de Transacciones ✓ Soporte de cursores ✓ Procesamiento de resultados múltiples • Algunos de estos pueden no ser soportados por todas las implementaciones JDBC • Se presenta la sintaxis básica de uso de estas funcionalidades. • Dependiendo del DBMS, se contará con el soporte de estas características Copyright © 2004 Conceptos Avanzados Administración de Transacciones • Una transacción puede ser definida como un conjunto de operaciones que deben ser ejecutadas como una unidad • De fallar una de las operaciones, falla en su totalidad la transacción • Una transacción es una “unidad de trabajo” • Cuando se realiza cualquier operación de INSERT, UPDATE o DELETE ésta se ejecuta con auto-commit explícito por omisión • Para habilitar control sobre las transacciones de la base de datos se usa el método setAutoCommit(boolean autoCommit) Copyright © 2004 Conceptos Avanzados ... try{ // Auto commit deshabilitado conn.setAutoCommit(false); // Insertamos en la primera tabla stmt = conn.createStatement(); stmt.executeUpdate("INSERT INTO table1 ..."); stmt.close(); // Insertamos en la segunda tabla stmt = conn.createStatement(); stmt.executeUpdate("INSERT INTO table2 ..."); stmt.close(); // Compromete los cambios en la base de datos conn.commit(); }catch(SQLException e){ try { conn.rollback(); }catch( SQLException sqle2 ){} }... Administración de Transacciones Copyright © 2004 Conceptos Avanzados Soporte de Cursores • JDBC provee soporte limitado de cursores. • Permite a una aplicación obtener un cursor asociado con el resultado a través del método de ResultSet.getCursorName() • El desplazamiento dentro del cursor es provisto recientemente en las implementaciones de JDBC, algunos controladores pueden no permitirlo • Para hacer uso de cursores desplazables se debe activar esta característica Copyright © 2004 Conceptos Avanzados Soporte de Cursores • Lo primero es utilizar los siguientes métodos para crear las sentencias y las sentencias preparadas: - Statement createStatement(int type, int concurrency) -PreparedStatement prepareStatement(String sql,int type, int concurrency) • type puede ser cualquiera de las siguientes constantes: TYPE_FORWARD, TYPE_SCROLL_INSENSITIVE, TYPE_SCROLL_SENSITIVE • concurrency puede ser cualquiera de las siguientes constantes: CONCUR_READ_ONLY, CONCUR_UPDATABLE Copyright © 2004 Conceptos Avanzados • Algunos de los métodos disponibles para el movimiento del cursor son: Método Descripción absolute(int) Para moverse a una fila específica en el resultado afterLast() Para moverse al final del resultado, después de la última fila beforeFirst() Para moverse al inicio del resultado, antes de la primera fila first() Para moverse a la primera fila del resultado last() Para moverse a la última fila del resultado previous() Para moverse a la fila anterior, similar a next() Soporte de Cursores Copyright © 2004 Conceptos Avanzados Uso típico de cursores: stmt = conn.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); rs = stmt.executeQuery("SELECT * FROM tableName”); rs.absolute(7); System.out.println(rs.getString(1)); while (rs.next(){ // ... } rs.beforeFirst(); while (rs.next()) { // ... } Soporte de Cursores Copyright © 2004 Conceptos Avanzados Múltiples Resultados • Especialmente con procedimientos almacenados, se puede estar interesados en una aplicación que retorne múltiples resultados • Para obtenerlos, se debe hacer uso de los siguientes métodos: boolean getMoreResults(); ResulSet getResultSet(); Copyright © 2004 Conceptos Avanzados • Un uso típico de esta característica es el siguiente: ... while(stmt.getMoreResults()) { rs = stmt.getResultSet(); while (rs.next()) { // algunas tareas } } ... Múltiples Resultados Copyright © 2004 Conceptos Avanzados Clases de Soporte JDBC • Algunas de las clases de soporte son las siguientes: ✓SQLException ✓SQLWarning ✓DataTruncation ✓Date, Time y Timestamp ✓Types Copyright © 2004 Conceptos Avanzados Resumen • Se entendió como usar clases heredadas de Statement • Se aprendió acerca de procedimientos almacenados • Se discutió acerca de otras funcionalidades JDBC: - como administración de transacciones, - soporte de cursores y - procesamiento de resultados múltiples. • Se listaron algunas de las clases de soporte JDBC en Java Copyright © 2004 Conceptos Avanzados Características Avanzadas Copyright © 2004 Conceptos Avanzados Objetivos de Aprendizaje • Exponer los aspectos de seguridad que aplican cuando se trabaja con programas Java • Describir los conceptos de internacionalización en Java • Definir JavaBeans • Discutir el empaquetado de componentes en Java • Escribir código que use correctamente los métodos más importantes de la clase java.lang.Math Copyright © 2004 Conceptos Avanzados 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 Copyright © 2004 Conceptos Avanzados Modelo de Seguridad de Java Copyright © 2004 Conceptos Avanzados • El Conjunto de Instrucciones de la JVM: Es la base de la seguridad de Java, las instrucciones de la JVM, no acceden directamente a la memoria sino que lo hacen de una forma simbólica • El Cargador de Clases: Es responsable de verificar la clase que se esta cargando, verifica nombres, dependencias, prioridades en la carga, cache • El Verificador de Bytecodes: Revisa el bytecode por inicialización de variables, verificación de métodos, reglas de acceso, desbordamiento de la pila • El Administrador deSeguridad: Usa una política de seguridad para determinar los accesos Modelo de Seguridad de Java Copyright © 2004 Conceptos Avanzados • Una política de seguridad asocia al código fuente directamente con un conjunto de permisos y puede ser creada usando la herramienta de políticas del SDK • El archivo jre\lib\security\java.security contiene entradas que identifican la política a ser usada • El formato del archivo de políticas permite a los desarrolladores conceder confianza a código sin firmar de una localización específica, o código posiblemente sin firmar de cualquier situación Archivo de Políticas de Seguridad Copyright © 2004 Conceptos Avanzados • En la sección anterior, se hablaba acerca del archivo de políticas de seguridad y las formas de conceder acceso al recurso dependiendo de la firma. El tipo de firma referido aquí, es la firma digital. • Una firma digital es el proceso en el que las llaves públicas y privadas son producidas y se relacionan matemáticamente Firmas Digitales Copyright © 2004 Conceptos Avanzados • 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 Certificados Digitales Copyright © 2004 Conceptos Avanzados Internacionalización • La Internacionalización es el proceso de diseñar una aplicación que pueda ser adaptada a varios lenguajes y regiones. • Localización es el proceso de adaptar software a un lenguaje o región específica, por medio de la traducción de texto y la adición de componentes específicos a la región. Copyright © 2004 Conceptos Avanzados • Para poder incluir la internacionalización en programas Java, los siguientes pasos son esenciales: • Crear un archivo properties • Crear un objeto Locale. • Crear un objeto ResourceBundle. • Obtener la cadena del objeto ResourceBundle. Internacionalización Copyright © 2004 Conceptos Avanzados • En Java, se tiene el concepto de componentes • Los componentes son unidades de software auto- contenidas y reusables. • Las tecnologías de componentes se incorporan a la plataforma Java a través del concepto de JavaBeans • Estos componentes reusables exponen sus características a las herramientas constructoras para manipulación visual. • La tecnología de componentes ofrecida por Java es independiente de la plataforma. JavaBeans Copyright © 2004 Conceptos Avanzados • Las características que distinguen un JavaBean de una simple clase de Java son: - Introspección - Persistencia - Personalización - Manejo de Eventos - Propiedades JavaBeans Copyright © 2004 Conceptos Avanzados Empaquetar Componentes • El empaquetamiento asegura que cuando se instala una aplicación todos los archivos necesarios son parte de la aplicación • El empaquetamiento ofrece además a los JavaBeans manejo de versiones, firmas electrónicas y sellado de paquetes • Para crear un archivo JAR se usa el siguiente comando: jar cvf jar-name archivo-class1 archivo-class2... • Para examinar los contenidos de un archivos JAR se usa: jar tvf jar-name Copyright © 2004 Conceptos Avanzados 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 • Algunos de sus métodos son: Método Descripción abs(int a) Calcula el valor absoluto de a max(int a, int b) Retorna el máximo valor entre a y b min(int a, int b) Retorna el mínimo valor entre a y b round(float a) Realiza un redondeo del valor de a pow(double a, double b) Calcula y retorna el valor de a elevado al valor de b Copyright © 2004 Conceptos Avanzados Resumen • Se explicaron los mecanismos de seguridad cuando se trabaja con programas Java • Se describieron los conceptos de internacionalización • Se explicí el concepto de JavaBeans • Se explicó el empaquetamiento de componentes • Se describió la clase java.lang.Math
Compartir