Unidad1-2

33
T T ó ó picos Selectos de picos Selectos de Programaci Programaci ó ó n n Ingenier Ingenier í í a En Sistemas a En Sistemas Computacionales Computacionales Ing. Heberto Ferreira Medina Ing. Heberto Ferreira Medina Departamento de Sistemas y Computaci Departamento de Sistemas y Computaci ó ó n n Instituto Tecnol Instituto Tecnol ó ó gico de Morelia. gico de Morelia. P P á á gina: gina: dsc.itmorelia.edu.mx dsc.itmorelia.edu.mx / / ~hferreir ~hferreir / / ts ts

Transcript of Unidad1-2

Page 1: Unidad1-2

TTóópicos Selectos de picos Selectos de ProgramaciProgramacióónn

IngenierIngenieríía En Sistemas a En Sistemas ComputacionalesComputacionales

Ing. Heberto Ferreira MedinaIng. Heberto Ferreira MedinaDepartamento de Sistemas y ComputaciDepartamento de Sistemas y Computacióónn

Instituto TecnolInstituto Tecnolóógico de Morelia.gico de Morelia.

PPáágina: gina: dsc.itmorelia.edu.mxdsc.itmorelia.edu.mx//~hferreir~hferreir//tsts

Page 2: Unidad1-2

TemarioTemario

1. Tipos de datos definidos por el usuario1. Tipos de datos definidos por el usuario2. Creaci2. Creacióón de componentes y librern de componentes y libreríías as

dindináámicasmicas3. Programaci3. Programacióón concurrente n concurrente multihilomultihilo4. Interfaz Gr4. Interfaz Grááfica de Usuario (GUI)fica de Usuario (GUI)5. Multimedia5. Multimedia6. Programaci6. Programacióón de puertos e interrupcionesn de puertos e interrupciones

Page 3: Unidad1-2

Objetivo de la MateriaObjetivo de la Materia

El estudiante integrarEl estudiante integraráá ttóópicos avanzados picos avanzados de programacide programacióón al desarrollo de n al desarrollo de aplicaciones que requieran aplicaciones que requieran multihilomultihilo, , multimedia, interfaz grafica de usuario y multimedia, interfaz grafica de usuario y comunicacicomunicacióón con puertos.n con puertos.

Page 4: Unidad1-2

AportaciAportacióón de la asignatura al perfil n de la asignatura al perfil del alumno:del alumno:

Desarrolla sistemas de informaciDesarrolla sistemas de informacióón, n, programaciprogramacióón de redes de computadora, n de redes de computadora, sistemas distribuidos, de base y aplicacisistemas distribuidos, de base y aplicacióón.n.Desarrolla interfaces de software hombreDesarrolla interfaces de software hombre--mmááquina, quina, mmááquinaquina--mmááquinaquina..Aplica nuevas tecnologAplica nuevas tecnologíías a la solucias a la solucióón de n de problemas de su entorno laboral problemas de su entorno laboral

Page 5: Unidad1-2

RelaciRelacióón con otras materiasn con otras materias

Page 6: Unidad1-2

Herramientas necesariasHerramientas necesariasCompiladores:Compiladores:

EclipseEclipseNetBeansNetBeans

Sistemas Operativos:Sistemas Operativos:LinuxLinuxWindowsXWindowsXMacOSxMacOSx

JDK 6 y JDK 7 (pruebas)JDK 6 y JDK 7 (pruebas)FrameworksFrameworks para desarrollopara desarrolloVisual Studio 8 (.NET)Visual Studio 8 (.NET)

Page 7: Unidad1-2

BibliografBibliografííaa1. 1. DeitelDeitel y y DeitelDeitel. (1998). Como programar en Java. . (1998). Como programar en Java. EdEd. .

PrenticePrentice Hall.Hall.2. 2. MitchellMitchell willwill David. (2001). Java sin errores. David. (2001). Java sin errores. EdEd. . McMc GrawGraw

Hill.Hill.3. Becerril C. Francisco. (1998). Java a su alcance. 3. Becerril C. Francisco. (1998). Java a su alcance. EdEd. . McMc

GrawGraw Hill.Hill.7. 7. SchildtSchildt Herbert. (2001). The Complete Reference Java 2. Herbert. (2001). The Complete Reference Java 2.

Fourth Edition.Fourth Edition.Ed. McGrawEd. McGraw--Hill.Hill.8. Case Bradley Julia & 8. Case Bradley Julia & MillspaughMillspaugh Anita C. Mt. San Antonio Anita C. Mt. San Antonio

College. (2002). Programming With Java W/CDCollege. (2002). Programming With Java W/CD--ROM. Ed. ROM. Ed. Mc Mc GrawGraw Hill.Hill.

9. 9. 10. 10. ElliotteElliotte RustyRusty HaroldHarold (1999). Java I/O O. (1999). Java I/O O. EdEd. . O'ReillyO'Reilly & & AssociatesAssociates..

11. Scott Oaks and Henry Wong (1999). Java Threads, second 11. Scott Oaks and Henry Wong (1999). Java Threads, second Edition.EdEdition.Ed. O'Reilly & Associates.. O'Reilly & Associates.

1212. . Manuales de Java en Internet.Manuales de Java en Internet.

Page 8: Unidad1-2

Unidad 1Unidad 1

1. Tipos de datos definidos por el usuario.1. Tipos de datos definidos por el usuario.1.1 Agregaci1.1 Agregacióón de datos (n de datos (structstruct).).1.2 Uniones de datos (1.2 Uniones de datos (unionunion).).1.3 Registros variantes.1.3 Registros variantes.1.4 Tipos de datos enumerados.1.4 Tipos de datos enumerados.1.5 Manejo de bits.1.5 Manejo de bits.1.6 Campos de bits.1.6 Campos de bits.1.7 Operaciones con1.7 Operaciones con

Page 9: Unidad1-2

Unidad 1Unidad 1

Revisar material de Estructura de DatosRevisar material de Estructura de DatosInstalar JDKInstalar JDKDesempolvar el compilador de javaDesempolvar el compilador de javaProbar pequeProbar pequeñños programas de la unidad os programas de la unidad 2 de 2 de DeitelDeitel y y DeitelDeitel¿¿QuQuéé Sistema Operativo utilizar para la Sistema Operativo utilizar para la materia?materia?¿¿QuQuéé Lenguaje utilizar para la materia?Lenguaje utilizar para la materia?¿¿QuQuéé compilador utilizar para la materia?compilador utilizar para la materia?

Page 10: Unidad1-2

1. Tipos de datos definidos por el 1. Tipos de datos definidos por el usuariousuario

1.1 Agregaci1.1 Agregacióón de datos (n de datos (structstruct))Revisar CapRevisar Capíítulo 2 de libro de tulo 2 de libro de DeitelDeitel y y DeitelDeitelRealizar los ejercicios al final de la unidadRealizar los ejercicios al final de la unidadRevisar manual de Revisar manual de aprendiendo java aprendiendo java , , Gustavo Guillermo P., Gustavo Guillermo P., compunauta.comcompunauta.com

Page 11: Unidad1-2

1.1Tipos de datos1.1Tipos de datosLas primitivas Las primitivas structstruct y y unionunion, son muy utilizadas , son muy utilizadas en lenguajes como C++ y Pascalen lenguajes como C++ y PascalPermiten encapsular informaciPermiten encapsular informacióón en una sola n en una sola estructura ahorrando memoria estructura ahorrando memoria En java no son soportadas pero puede tenerse En java no son soportadas pero puede tenerse analoganalogíías:as:classclass MyUnionTypeMyUnionType { // ... }{ // ... }publicpublic staticstatic classclass FooFoo extendsextends MyUnionTypeMyUnionType{ // ... }{ // ... }publicpublic staticstatic classclass BarBar extendsextends MyUnionTypeMyUnionType{ // ... } { // ... }

Page 12: Unidad1-2

1.4 Tipos enumerados1.4 Tipos enumeradosEl lenguaje java permite la definiciEl lenguaje java permite la definicióón de n de arreglos enumerados que permite el uso de un arreglos enumerados que permite el uso de un arreglo de elementos por su nombre o etiquetaarreglo de elementos por su nombre o etiquetaintint [ ] [ ] test_scorestest_scores = new = new intint [ ] { 70, 80, 20, 30 [ ] { 70, 80, 20, 30 }; }; String [ ] months = new String [ ] { "Jan", String [ ] months = new String [ ] { "Jan",

"Feb", "Mar", "Apr", "May", "Jun" ,"Jul", "Aug", "Feb", "Mar", "Apr", "May", "Jun" ,"Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };"Sep", "Oct", "Nov", "Dec" };

Page 13: Unidad1-2

Estructuras de datosEstructuras de datos

Una estructura de datos es un conjunto de Una estructura de datos es un conjunto de tipos, un tipo disetipos, un tipo diseññado partiendo de ese ado partiendo de ese conjunto de tipos, un conjunto de funciones, y conjunto de tipos, un conjunto de funciones, y un conjunto de axiomasun conjunto de axiomasEsta definiciEsta definicióón implica que una estructura de n implica que una estructura de datos es un tipo de datos con datos es un tipo de datos con implementaciimplementacióón. En la programacin. En la programacióón n orientada a objetos, es una clase y sus orientada a objetos, es una clase y sus mméétodos.todos.

Page 14: Unidad1-2

Tipos de estructuras de datosTipos de estructuras de datosExisten estructuras estExisten estructuras estááticas y dinticas y dináámicasmicasLa estructuras estLa estructuras estááticas generalmente estticas generalmente estáán n delimitadas por un buffer o capacidad de delimitadas por un buffer o capacidad de almacenamientoalmacenamientoLas estructuras dinLas estructuras dináámicas pueden crecer micas pueden crecer mientras exista memoria que las soportemientras exista memoria que las soporteLas estructuras de datos mLas estructuras de datos máás conocidas son:s conocidas son:

• Arreglos

•Pilas

•Colas

•Listas ligadas

• Enumerados

•Iteradores

•Ordenamiento en

•Árboles binarios

• Arquitecturas

•Árboles n-arios y B

•Tablas Hash

•Gráfos

Page 15: Unidad1-2

1.5 Operaciones con bits1.5 Operaciones con bitsEn java el manejo de bits se hereda de C++ y En java el manejo de bits se hereda de C++ y es parecidoes parecidoLos operadores a nivel Los operadores a nivel bitbit son:son:

Complemento de A a nivel de bits~A~Operación XOR a nivel de bitsA ^ B^Operación OR a nivel de bitsA | B|Operación AND a nivel de bitsA & B&

Desplazamiento de A a la derecha en B posiciones, no tiene en cuenta el signo.

A >>> B>>>

Desplazamiento de A a la derecha en B posiciones, tiene en cuenta el signo.A >> B>>

Desplazamiento de A a la izquierda en B posicionesA << B<<

UsoOperador

Page 16: Unidad1-2

Operaciones con bitsOperaciones con bits

Para el manejo de dispositivos de I/O e muy Para el manejo de dispositivos de I/O e muy comcomúún el uso de bits por lo que la utilizacin el uso de bits por lo que la utilizacióón n de mde mááscaras es muy comscaras es muy comúún (para encender n (para encender o apagar ciertos bits)o apagar ciertos bits)Mascaras comunes:Mascaras comunes:0x (0x (\\xx) Define un valor ) Define un valor hexadecimalhexadecimal0 (0 (\\uu) Define un valor octal) Define un valor octal0b (0b (\\bb) Define un valor binario) Define un valor binario

Page 17: Unidad1-2

Operaciones con bits Operaciones con bits

PrPrááctica 2, realizar operaciones con bits y ctica 2, realizar operaciones con bits y mostrar el resultado en diferentes bases 0x, mostrar el resultado en diferentes bases 0x, 0 y 0b0 y 0bUtilizar los operadores para modificar bits y Utilizar los operadores para modificar bits y mmááscaras necesariasscaras necesariasInvestigar el uso de puerto serie y paralelo Investigar el uso de puerto serie y paralelo en java (Linux/Windows)en java (Linux/Windows)Investigar el uso del Investigar el uso del BitSetBitSet, , BitArrayBitArray y y BitStringBitString

Page 18: Unidad1-2

UNIDAD 2

Creación de componentes y librerías dinámicas

2.1 Creaci2.1 Creacióón de componentesn de componentes

2.2 Creaci2.2 Creacióón de librern de libreríías dinas dináámicasmicas

Page 19: Unidad1-2

2.1 Tipos de bibliotecas en java¿¿Es posible crear DLL en java?Es posible crear DLL en java?Con java no es posible crear DLL pero se Con java no es posible crear DLL pero se pueden utilizar mediante pueden utilizar mediante Java Native Interface(JNI),En java existen bibliotecas o API o En java existen bibliotecas o API o frameworkframeworkpara reutilizar cpara reutilizar cóódigo,digo,Por ejemplo si se quiere utilizar el puerto serial Por ejemplo si se quiere utilizar el puerto serial existe una existe una librerialibreria llamada llamada JavaCommJavaComm hay hay versiones para versiones para windowswindows, , linuxlinux, , solarissolarisJava esta orientado a programas Java esta orientado a programas multiplataformamultiplataforma

(Foros del (Foros del webweb))

Page 20: Unidad1-2

Bibliotecas (API Java)..Java se acompaJava se acompañña con una serie de bibliotecas que a con una serie de bibliotecas que se conocen como se conocen como API JavaCon cada una de las versiones que Sun lanza del Con cada una de las versiones que Sun lanza del JDK, se acompaJDK, se acompañña de una serie de bibliotecas con a de una serie de bibliotecas con clases estclases estáándar que se utilizan como referencia para ndar que se utilizan como referencia para los programadores en Javalos programadores en JavaEstas clases se pueden incluir en los programas Estas clases se pueden incluir en los programas Java, sin temor a fallos de portabilidad. AdemJava, sin temor a fallos de portabilidad. Ademáás, s, estestáán bien documentadas, y organizadas en n bien documentadas, y organizadas en paquetes y en un gran paquetes y en un gran áárbol de herencia.rbol de herencia.A este conjunto de paquetes (o bibliotecas) se le A este conjunto de paquetes (o bibliotecas) se le conoce como la API de Java (conoce como la API de Java (ApplicationProgramming Interface).).

Page 21: Unidad1-2

Bibliotecas …La API de java se distribuye paquetes La API de java se distribuye paquetes bbáásicos y algunos tienen sicos y algunos tienen subpaquetessubpaquetesExisten varios paquetes estExisten varios paquetes estáándar que ndar que ofrecen capacidades nuevas al lenguaje ofrecen capacidades nuevas al lenguaje JavaJavaSe dividen principalmente en:Se dividen principalmente en:

1.1. Paquetes de utilidadesPaquetes de utilidades2.2. Paquetes para el desarrollo grPaquetes para el desarrollo grááficofico3.3. Paquetes para el desarrollo en redPaquetes para el desarrollo en red4.4. Paquetes propietarios/estPaquetes propietarios/estáándares (OMG)ndares (OMG)

Page 22: Unidad1-2

1. Paquetes de utilidades:java.lang: Fundamental para el lenguaje. Incluye : Fundamental para el lenguaje. Incluye clases como clases como StringString o o StringBufferStringBuffer, , entre otrasentre otrasjava.io: Para la entrada y salida a trav: Para la entrada y salida a travéés de flujos de s de flujos de datos, y archivos del sistema. datos, y archivos del sistema. java.util: Contiene colecciones de datos y clases, el : Contiene colecciones de datos y clases, el modelo de eventos, facilidades horarias, generacimodelo de eventos, facilidades horarias, generacióón n aleatoria de naleatoria de núúmeros, y otras clases de utilidad.meros, y otras clases de utilidad.java.math: Clases para realizar aritm: Clases para realizar aritméética con la tica con la precisiprecisióón que se desee.n que se desee.java.text: Clases e interfaces para manejo de texto, : Clases e interfaces para manejo de texto, fechas, nfechas, núúmeros y mensajes de una manera meros y mensajes de una manera independiente a los lenguajes naturales.independiente a los lenguajes naturales.java.security: Clases e interfaces para seguridad en Clases e interfaces para seguridad en Java: EncriptaciJava: Encriptacióón RSA... n RSA...

Page 23: Unidad1-2

2. Paquetes para el desarrollo gr2. Paquetes para el desarrollo grááfico:fico:

java.applet: Para crear : Para crear applets y clases que y clases que las las appletsapplets utilizan para comunicarse con su utilizan para comunicarse con su contexto (contexto (webweb).).java.awt: Para crear interfaces con el usuario, : Para crear interfaces con el usuario, y para dibujar imy para dibujar imáágenes y grgenes y grááficos. ficos. jjavax.swing: Conjunto de componentes : Conjunto de componentes grgrááficos que funcionan igual en todas las ficos que funcionan igual en todas las plataformas que Java soporta.plataformas que Java soporta.javax.accesibility: Da soporte a clases de : Da soporte a clases de accesibilidad para personas discapacitadas.accesibilidad para personas discapacitadas.java.beans: Para el desarrollo de : Para el desarrollo de JavaBeansJavaBeans. .

Page 24: Unidad1-2

3. Paquetes para el desarrollo en red:

java.net: Clases para aplicaciones de red. : Clases para aplicaciones de red. java.sql: Paquete que contiene el JDBC, para : Paquete que contiene el JDBC, para conexiconexióón de programas Java con Bases de datos.n de programas Java con Bases de datos.java.rmi: Paquete RMI, para localizar objetos : Paquete RMI, para localizar objetos remotos, comunicarse con ellos e incluso enviar remotos, comunicarse con ellos e incluso enviar objetos como parobjetos como paráámetros de un objeto a otro.metros de un objeto a otro.org.omg.CORBA: Facilita la posibilidad de utilizar : Facilita la posibilidad de utilizar OMG CORBAOMG CORBA, para la conexi, para la conexióón entre objetos n entre objetos distribuidos, aunque estdistribuidos, aunque estéé codificados en distintos codificados en distintos lenguajes.lenguajes.org.omb.CosNaming : Da servicio al IDL de Java, : Da servicio al IDL de Java, similar al RMI pero en CORBA.similar al RMI pero en CORBA.

Page 25: Unidad1-2

4. Paquetes propietarios:

La Java La Java FoundationFoundation ClassesClasses (JFC) desarrolla (JFC) desarrolla continuamente mejoras a los paquetes continuamente mejoras a los paquetes existentes y genera nuevos que son existentes y genera nuevos que son distribuidos en los JDK (distribuidos en los JDK (sunsun))La Internet La Internet FoundationFoundation ClassesClasses tambitambiéén n desarrolla bibliotecas estandarizadas de java desarrolla bibliotecas estandarizadas de java y fue la que desarrollo la API y fue la que desarrollo la API swingswingExiste una gran variedad de bibliotecas Existe una gran variedad de bibliotecas desarrolladas para aplicaciones addesarrolladas para aplicaciones ad--hochoc al al software que se desea desarrollar.software que se desea desarrollar.

Page 26: Unidad1-2

API Java, MapaAPI Java, Mapa

API JavaAPI JavaAWTAWTExpandExpandHamletsHamletsLWJGLLWJGLLog4jLog4jLuceneLuceneFacesFacesSWINGSWING

•JAAS•JAXP•JDMK•JDOM•JFace•JMF•JNDI•JOGL•Java 2D, Java 3D•Java Database Connectivity•Java Foundation Classes•Java Management Extensions•Java Micro Edition•Java Native Interface•Java Transaction API•Java.net•JavaFX•JavaHelp

••Mule Mule ••SWTSWT••XercesXerces••JSPJSP••JDBCJDBC

Page 27: Unidad1-2

2.2 Creación de bibliotecasdinámicas (JNI)

Java Java NativeNative InterfaceInterface (JNI) es un (JNI) es un frameworkframework de de programaciprogramacióón que permite que un programa escrito n que permite que un programa escrito en Java y ejecutado en la men Java y ejecutado en la mááquina virtual java (JVM) quina virtual java (JVM) pueda interactuar con programas escritos en otros pueda interactuar con programas escritos en otros lenguajes como C, C++ y ensamblador.lenguajes como C, C++ y ensamblador.

OS OS SideSide

I/O I/O DevicesDevices

NativeNativefunctionsfunctions OSOS

DLL DLL LibraryLibrarySO SO LibraryLibrary

SofwareSofware AdAd--HocHoc

Page 28: Unidad1-2

Uso de JNI …Se usa para modificar programas existentes escritos en algSe usa para modificar programas existentes escritos en algúún n otro lenguaje, permitiotro lenguaje, permitiééndoles ser accesibles desde ndoles ser accesibles desde aplicaciones Javaaplicaciones JavaMuchas de las clases de la API estMuchas de las clases de la API estáándar de Java dependen del ndar de Java dependen del JNI para proporcionar funcionalidad al desarrollador y al JNI para proporcionar funcionalidad al desarrollador y al usuario, por ejemplo las funcionalidades de sonido o usuario, por ejemplo las funcionalidades de sonido o lectura/escritura de archivoslectura/escritura de archivosEs necesario asegurarse que la API estEs necesario asegurarse que la API estáándar de Java no ndar de Java no proporciona una determinada funcionalidad antes de recurrir al proporciona una determinada funcionalidad antes de recurrir al JNI, ya que la primera ofrece una implementaciJNI, ya que la primera ofrece una implementacióón segura y n segura y portableportableJNI permite a un mJNI permite a un méétodo nativo utilizar los objetos Java de la todo nativo utilizar los objetos Java de la misma forma en que el propio cmisma forma en que el propio cóódigo de Java lo hacedigo de Java lo haceUn mUn méétodo nativo puede crear objetos Java; y examinarlos y todo nativo puede crear objetos Java; y examinarlos y utilizarlos para que lleven a cabo su funciutilizarlos para que lleven a cabo su funcióónnUn mUn méétodo nativo puede asimismo examinar y utilizar objetos todo nativo puede asimismo examinar y utilizar objetos que han sido creados por cque han sido creados por cóódigo de aplicacidigo de aplicacióón escrito en Javan escrito en Java

Page 29: Unidad1-2

1.1. JNI no es un API fJNI no es un API fáácil de aprendercil de aprender2.2. PequePequeñños errores en el uso de JNI pueden os errores en el uso de JNI pueden

desestabilizar completamente la mdesestabilizar completamente la mááquina virtual Java,quina virtual Java, de formas muy difde formas muy difííciles de reproducir y subsanarciles de reproducir y subsanar

3.3. Solo las aplicaciones y Solo las aplicaciones y appletsapplets firmados pueden firmados pueden invocar el JNIinvocar el JNI

4.4. Una aplicaciUna aplicacióón que recurre a JNI pierde una de las n que recurre a JNI pierde una de las caractercaracteríísticas msticas máás importantes que Java le confiere, s importantes que Java le confiere, su portabilidad. (Una forma de solventar esto, es su portabilidad. (Una forma de solventar esto, es escribir una implementaciescribir una implementacióón separada del cn separada del cóódigo JNI digo JNI por cada plataforma, y hacer a Java detectar el por cada plataforma, y hacer a Java detectar el sistema operativo para ejecutar una u otra sistema operativo para ejecutar una u otra implementaciimplementacióón llegado el momento).n llegado el momento).

5.5. No hay recolecciNo hay recoleccióón de basura en el lado JNI, (el n de basura en el lado JNI, (el ccóódigo JNI debe deslocalizar expldigo JNI debe deslocalizar explíícitamente sus citamente sus punteros).punteros).

Riesgos de uso de JNI …

Page 30: Unidad1-2

Creación y utilización

Page 31: Unidad1-2

CreaciCreacióón n ……javahjavah genera archivos fuentes y de cabecera genera archivos fuentes y de cabecera en C (archivos en C (archivos .h.h y y .c.c) que describen las clases ) que describen las clases especificadas. Estos archivos de C especificadas. Estos archivos de C proporcionan la informaciproporcionan la informacióón necesaria para n necesaria para implementar mimplementar méétodos nativos para las clases todos nativos para las clases especificadas en C.especificadas en C.El nuevo mEl nuevo méétodo de todo de interfaceinterface para cpara cóódigo digo nativo, Java nativo, Java NativeNative InterfaceInterface (JNI), no necesita (JNI), no necesita informaciinformacióón de cabeceras o ficheros n de cabeceras o ficheros stubstub. . javahjavah puede ser invocado con la opcipuede ser invocado con la opcióón n --jnijnipara generar los prototipos de funciones que para generar los prototipos de funciones que necesitan los mnecesitan los méétodos nativos JNI. El resultado todos nativos JNI. El resultado se coloca en un fichero se coloca en un fichero .h.h..

Page 32: Unidad1-2

Material para aprender JNI:

Manual de JNI, Fernando LManual de JNI, Fernando Lóópez, Espapez, EspaññaaManual de referencia de JNIManual de referencia de JNI--SUNSUNhttp://http://java.sun.comjava.sun.com//developerdeveloper//onlineTrainionlineTrainingng//ProgrammingProgramming//JDCBookJDCBook//jni.htmljni.htmlPrPrááctica 3ctica 3

Page 33: Unidad1-2

Creación de paquetes en java

Uso de bibliotecas propietariasUso de bibliotecas propietariasCompiladoCompilado