Fundamentos del lenguaje de programacin Introduccin a Java

  • Slides: 28
Download presentation
Fundamentos del lenguaje de programación Introducción a Java Escuela Técnica Superior Kinal Instructor Edwin

Fundamentos del lenguaje de programación Introducción a Java Escuela Técnica Superior Kinal Instructor Edwin Tumax 1

Edwin Rolando Tumax • • • Decimo Semestre en Ingenieria en Sistema Cisco Certificate

Edwin Rolando Tumax • • • Decimo Semestre en Ingenieria en Sistema Cisco Certificate Instructor Orientation Cisco Certificate CCENT (CCNA modulo I y II) IT ESSENTIAL I, II (Cisco System) (ITLA Santo Domingo República Dominica) Programación con Visual Studio – Visual Basic. NET – Visual C# – Asp. NET – Implementacion de Controles Ajax. Tool. Kit Programación con Java Programación con Visual Fox Programación con PHP Manejo de Base de Datos con SQL Server 2000, SQL 2005, My. SQL y Oracle. Conocimientos Basicos de Paquetes Macromedia Dreamweaver MX, Fireworks MX, Flash MX 2

Metas a corto Plazo • • Cierre de la carrera en ingeniería en sistemas.

Metas a corto Plazo • • Cierre de la carrera en ingeniería en sistemas. Certificacion SCJP Certificacion SCJD Certificaciones Microsoft en el. NET Framework 3. 5 Certificación 640 -816 CCNA 04/01/2010 Certificación Comp. TIA A+ 22 -0 -601 Essentials. Certificación Comp. TIA A+ 22 -0 -602 Thec. Certificación CCNP. 3

¿ Qué es Java ? • Java es un lenguaje de programación de propósito

¿ Qué es Java ? • Java es un lenguaje de programación de propósito general, fuertemente tipado, robusto, basado en clases y objetos, de nivel medio/alto. • Es un lenguaje interpretado, es decir no es el SO el que ejecuta los programas Java sino una máquina virtual conocida como JVM (Java Virtual Machine). • Desarrollado por Sun Microsystems (www. sun. com) 4

HISTORIA • Java fue diseñado en 1990 por James Gosling, de Sun Microsystems, como

HISTORIA • Java fue diseñado en 1990 por James Gosling, de Sun Microsystems, como software para dispositivos electrónicos de consumo. Curiosamente, todo este lenguaje fue diseñado antes de que diese comienzo la era World Wide Web, puesto que fue diseñado para dispositivos electrónicos como calculadoras, microondas y la televisión interactiva • http: //pisuerga. inf. ubu. es/lsi/Invest/Java/Tuto/I_2. htm 5

Arquitectura de Java Programas Java API Java Extensiones Java Virtual Machine (JVM) Sistema Operacional

Arquitectura de Java Programas Java API Java Extensiones Java Virtual Machine (JVM) Sistema Operacional Hardware 6

¿ Cómo comienza la vida de un programa Java ? Código Fuente (Archivo. java)

¿ Cómo comienza la vida de un programa Java ? Código Fuente (Archivo. java) Compilador (javac) Archivo compilado Bytecode (Archivo. class) JVM (java) Programa en ejecución 7

¿ Qué es el bytecode ? • Es el tipo equivalente a un archivo.

¿ Qué es el bytecode ? • Es el tipo equivalente a un archivo. o en C++ • Cuando el javac compila un archivo de código fuente “Numeros. java” genera un archivo bytecode “Números. class” que corresponde a una versión del archivo. java que la JVM puede entender • La utilidad de este proceso (en vez de la generación de un ejecutable) radica en la portabilidad del bytecode, ya que este archivo puede ejecutarse en cualquier SO que tenga una implementación de la JVM 8

Ventajas y Desventajas • Retira parte de la responsabilidad sobre punteros (ventajas? desventajas? )

Ventajas y Desventajas • Retira parte de la responsabilidad sobre punteros (ventajas? desventajas? ) • Multiplataforma gracias a que es interpretado por la JVM (ventajas? desventajas? ) • Facilidad de uso • Velocidad y uso de recursos (principales desventajas) • Paso por parámetro, por valor ? • Java API 9

Punteros en C++ y Java • En C++ el usuario puede crear punteros a

Punteros en C++ y Java • En C++ el usuario puede crear punteros a objetos u objetos a punteros, en Java, solo lo primero es posible (se les denomina referencias) • En C++ la responsabilidad de liberar un puntero es del usuario, mientras en Java la JVM se encarga de esto a través de un proceso llamado “Garbage Collection” 10

Ventajas y desventajas de los lenguajes Interpretados • Java, PHP, Scheme, Perl, entre otros,

Ventajas y desventajas de los lenguajes Interpretados • Java, PHP, Scheme, Perl, entre otros, son lenguajes interpretados, es decir, no es el SO quien ejecuta el programa sino una máquina virtual (otro programa) que está siendo ejecutado por el SO • Problemas de desempeño (gran problema) • Mayor posibilidad de robo de código • Multiplataforma (mayor ventaja), aunque esto depende solo aplica para las plataformas que tienen una implementación de la JVM (gran ventaja) 11

Facilidad De Uso De Java • Gracias a que en Java un programador puede

Facilidad De Uso De Java • Gracias a que en Java un programador puede concentrarse más en lo que debe hacer su programa, y no tanto en el manejo de punteros y otros asuntos de bajo nivel (Java API) • Una extensa librería de clases que permiten hacer casi todo lo que se puede en C++ (Java API) • El código fuente queda menos plagado de pormenores que en C++ 12

Ventajas De Java Sobre C++ • Gracias al API de Java los programadores reescriben

Ventajas De Java Sobre C++ • Gracias al API de Java los programadores reescriben menos código, los programas son más estandarizados en cuanto a métodos que utilizan • El Garbage Collector despreocupa al programador sobre el desperdicio de memoria (en parte) • Independiente de la plataforma 13

 • Desventajas de Java contra C++ Los programas en C++ se ejecutan más

• Desventajas de Java contra C++ Los programas en C++ se ejecutan más rapidamente • Mayor eficiencia en consumo de recursos • La capacidad de crear objetos reales en C++ es útil cuando se requiere velocidad extra. • Incapacidad de pasar objetos por valor (imitado por métodos de clonación) • Carencia de herencia múltiple, imitado por la herencia múltiple de interfases en Java, aunque no totalmente. • Instrucción goto (reemplazada por bloques con nombre) 14

 • Java Development Kit (JDK) Java Runtime Environment (JRE) El JRE es un

• Java Development Kit (JDK) Java Runtime Environment (JRE) El JRE es un paquete de software desarrollado por Sun que contiene la JVM y todo lo necesario para ejecutar programas Java • El JDK es otro paquete que incluye todo lo necesario para crear y ejecutar programas Java (incluye el JRE, compilador, debugger, visor de applets, Java API, entre otras herramientas para el programador). • Puede descargar las últimas versiones en www. sun. com (1. 5. 0 en este momento) 15

Java API • El Java API (Application Program Interfase) es un conjunto de librerías

Java API • El Java API (Application Program Interfase) es un conjunto de librerías que permiten el desarrollo de aplicaciones en Java, brinda funciones de uso común para el programador como por ejemplo: – Creación y manejo de elementos de GUI – Manejo de archivos – Funciones de red – Comunicación entre programas 16

Java API • Existen dentro de su librería clases gráficas (awt y swing), las

Java API • Existen dentro de su librería clases gráficas (awt y swing), las cuales permiten crear objetos gráficos comunes altamente configurables y con una arquitectura independiente de la plataforma. • Hay gran cantidad de herramientas para generar interfaces gráficas como: • • • JBuilder Net. Beans Fote 4 J Jdeveloper Eclipse 17

Java API • Se puede acceder a bases de datos fácilmente con JDBC, independientemente

Java API • Se puede acceder a bases de datos fácilmente con JDBC, independientemente de la plataforma utilizada. • Existen clases JDBC para las Bases de Datos más comunes, entre ellas: • Oracle • Postgre. SQL • My. SQL 18

Herramientas del JDK • javac: El compilador Java, convierte código fuente (. java) en

Herramientas del JDK • javac: El compilador Java, convierte código fuente (. java) en bytecodes (. class) • java: El interprete de Java este programa es el que ejecuta los bytecodes • appletviewer: Un interprete Java que ejecuta applets desde un archivo HTML, tal como lo haría un navegador web • javadoc: Genera documentación de código fuente en formato HTML • javap: El desensamblador Java, puede obtener el código fuente a partir de lso bytecodes • jdb: El depurador (debugger), permite supervisar la ejecución de los programas Java • jar: Permite almacenar un programa en Java que comprende muchos. class en un solo archivo. jar (en realidad, es un. zip) 19

Compilación y Ejecución • Por ahora, digamos que cada clase debe estar definida en

Compilación y Ejecución • Por ahora, digamos que cada clase debe estar definida en un archivo que debe llamarse igual que la clase, con extensión. java • Es decir, la clase Figura. Geometrica debe declararse en un archivo llamado Figura. Geometrica. java 20

Compilación y Ejecución Aplicaciones • Por ejemplo: /********* Hola. Mundo. java*********/ class Hola. Mundo

Compilación y Ejecución Aplicaciones • Por ejemplo: /********* Hola. Mundo. java*********/ class Hola. Mundo { public static void main (String args[]) { System. out. println("Hola Mundo !"); } } 21

Compilación y Ejecución Applets • Por ejemplo: /* Hola. Mundo. Applet. java */ import

Compilación y Ejecución Applets • Por ejemplo: /* Hola. Mundo. Applet. java */ import java. applet. Applet; import java. awt. *; class Hola. Mundo. Applet extends Applet { public void paint (Graphics g) { g. draw. String (“Hola Mundo !", 0, 20); } } /* Hola. Mundo. Applet. java */ <HTML> <HEAD> <TITLE>Hello world</TITLE> </HEAD> <BODY> <APPLET CODE="Hola. Mundo. Applet. class“ WIDTH=250 HEIGHT=100> </APPLET> </BODY> </HTML> 22

Compilación y Ejecución /*********** Figura. Geometrica. java ***********/ public class Figura. Geometrica { protected

Compilación y Ejecución /*********** Figura. Geometrica. java ***********/ public class Figura. Geometrica { protected int numero. Lados; protected String nombre. Figura; public Figura. Geometrica(int n. Lados) { numero. Lados = n. Lados; } public int get. Numero. Lados() { return numero. Lados; } public String get. Nombre. Figura() { return nombre. Figura; } } 23

Compilación y Ejecución • Cuando esta clase se compile, se creará un archivo llamado

Compilación y Ejecución • Cuando esta clase se compile, se creará un archivo llamado Figura. Geometrica. class • Si el nombre del archivo. java no coincidiera con el nombre de la clase, el compilador de Java no mostraría un mensaje de error (no en todos los casos, más adelante veremos): Otro. Nombre. java: 2: class Figura. Geometrica is public, should be declared in a file named Figura. Geometrica. java • Ahora veamos un par de ejemplos, una con salida por consola y otro mostrando un cuadro de diálogo: 24

Compilación y Ejecución import javax. swing. *; public class Figura. Geometrica. Frame { public

Compilación y Ejecución import javax. swing. *; public class Figura. Geometrica. Frame { public static void main(String[] args) { Figura. Geometrica figura = new Figura. Geometrica(6); JOption. Pane. show. Message. Dialog(null, "El numero de lados”+ “de la figura geometrica es: "+ figura. get. Numero. Lados()); System. exit(0); } } 25

Compilación y Ejecución Recuerde que la compilación se hace con: javac Figura. Geometrica. java

Compilación y Ejecución Recuerde que la compilación se hace con: javac Figura. Geometrica. java Y la ejecución se hace con: java Figura. Geometrica Note que en la ejecución solo se coloca el nombre de la clase, sin la extensión El resultado de la ejecución debe ser: 26

Material • El material correspondiente a la clase 1: • JDK 1. 5. 0

Material • El material correspondiente a la clase 1: • JDK 1. 5. 0 • Documentación del API de Java • Manual introductorio de Java • Instalación de Net. Beans IDE 27

IDE’s Entornos Gráficos de Desarrollo • Otros enlaces: – – Eclipse ( http: //www.

IDE’s Entornos Gráficos de Desarrollo • Otros enlaces: – – Eclipse ( http: //www. eclipse. org ) Open-Source Net. Beans ( http: //www. netbeans. org ) Open-Source JBuilder ( http: //www. borland. com/jbuilder ) de Borland Visual Age de IBM ( http: //www-4. ibm. com/software/ad/vajava/ ) – JDeveloper de Oracle ( http: //otn. oracle. com/products/jdev/content. html ) 28