Está en la página 1de 26

Programacin Interactiva Introduccin a Java

Escuela de Ingeniera de Sistemas y Computacin Facultad de Ingeniera Universidad del Valle

Qu es Java ?

Java es un lenguaje de programacin de propsito general, fuertemente tipado, robusto, basado en clases y objetos, de nivel medio alto! "s un lenguaje interpretado, es decir no es el #$ el %ue ejecuta los programas Java sino una m&%uina virtual conocida como J'( )Java 'irtual (ac*ine+! ,esarrollado por #un (icrosystems )---!sun!com+

/r%uitectura de Java
Programas Java API Java Extensiones

Java Virtual Machine JVM! Sistema Operacional Hardware


Tomado de las clases de Simena Dinas
.

1mo comien2a la vida de un programa Java ?

Cdigo Fuente (Archivo.java)

Compilador (javac)

Archivo compilado Bytecode (Archivo.class)

!" (java)

#rograma en ejecucin

Qu es el bytecode ?

"s el tipo e%uivalente a un arc*ivo !o en 144 1uando el javac compila un arc*ivo de cdigo fuente 56umeros!java7 genera un arc*ivo bytecode 568meros!class7 %ue corresponde a una versin del arc*ivo !java %ue la J'( puede entender 9a utilidad de este proceso )en ve2 de la generacin de un ejecutable+ radica en la portabilidad del bytecode, ya %ue este arc*ivo puede ejecutarse en cual%uier #$ %ue tenga una implementacin de la J'(
3

'entajas y ,esventajas

;etira parte de la responsabilidad sobre punteros )ventajas? desventajas?+ (ultiplataforma gracias a %ue es interpretado por la J'( )ventajas? desventajas?+ <acilidad de uso 'elocidad y uso de recursos )principales desventajas+ Paso por par&metro, por valor ? Java /PI
:

Punteros en 144 y Java

"n 144 el usuario puede crear punteros a objetos u objetos, en Java, solo lo primero es posible )se les denomina referencias+ "n 144 la responsabilidad de liberar un puntero es del usuario, mientras en Java la J'( se encarga de esto a travs de un proceso llamado 5>arbage 1ollection7

'entajas y desventajas de los lenguajes Interpretados

Java, P@P, #c*eme, Perl, entre otros, son lenguajes interpretados, es decir, no es el #$ %uien ejecuta el programa sino una m&%uina virtual )otro programa+ %ue est& siendo ejecutado por el #$ Problemas de desempeAo )gran problema+ (ayor posibilidad de robo de cdigo (ultiplataforma )mayor ventaja+, aun%ue esto depende solo aplica para las plataformas %ue tienen una implementacin de la J'( )gran ventaja+
?

<acilidad ,e Cso ,e Java

>racias a %ue en Java un programador puede concentrarse m&s en lo %ue debe *acer su programa, y no tanto en el manejo de punteros y otros asuntos de bajo nivel )Java /PI+ Cna eDtensa librerEa de clases %ue permiten *acer casi todo lo %ue se puede en 144 )Java /PI+ "l cdigo fuente %ueda menos plagado de pormenores %ue en 144
B

'entajas ,e Java #obre 144

>racias al /PI de Java los programadores reescriben menos cdigo, los programas son m&s estandari2ados en cuanto a mtodos %ue utili2an "l >arbage 1ollector despreocupa al programador sobre el desperdicio de memoria )en parte+ Independiente de la plataforma
FG

,esventajas de Java contra 144


9os programas en 144 se ejecutan m&s r&pidamente (ayor eficiencia en consumo de recursos 9a capacidad de crear o$jetos reales en 144 es 8til cuando se re%uiere velocidad eDtra! Incapacidad de pasar objetos por valor )imitado por mtodos de clonacin+ 1arencia de *erencia m8ltiple, imitado por la *erencia m8ltiple de interfases en Java, aun%ue no totalmente!
FF

,esventajas de Java contra 144


9os programas en 144 se ejecutan m&s rapidamente (ayor eficiencia en consumo de recursos 9a capacidad de crear o$jetos reales en 144 es 8til cuando se re%uiere velocidad eDtra! Incapacidad de pasar objetos por valor )imitado por mtodos de clonacin+ 1arencia de *erencia m8ltiple, imitado por la *erencia m8ltiple de interfases en Java, aun%ue no totalmente! Instruccin goto )reempla2ada por blo%ues con nombre+
F2

Java ,evelopment Hit )J,H+ Java ;untime "nvironment )J;"+

"l J;" es un pa%uete de soft-are desarrollado por #un %ue contiene la J'( y todo lo necesario para ejecutar programas Java "l J,H es otro pa%uete %ue incluye todo lo necesario para crear y ejecutar programas Java )incluye el J;", compilador, debugger, visor de applets, Java /PI, entre otras *erramientas para el programador+! Puede descargar las 8ltimas versiones en ---!sun!com )F!3!G en este momento+
F.

Java /PI

"l Java /PI )/pplication Program Interfase+ es un conjunto de librerEas %ue permiten el desarrollo de aplicaciones en Java, brinda funciones de uso com8n para el programador como por ejemploI

1reacin y manejo de elementos de >CI (anejo de arc*ivos <unciones de red 1omunicacin entre programas

F0

Java /PI

"Disten dentro de su librerEa clases gr&ficas )a-t y s-ing+, las cuales permiten crear objetos gr&ficos comunes altamente configurables y con una ar%uitectura independiente de la plataforma! @ay gran cantidad de *erramientas para generar interfaces gr&ficas comoI

JJuilder 6etJeans <ote0J Jdeveloper "clipse


F3

Java /PI

#e puede acceder a bases de datos f&cilmente con JDBC, independientemente de la plataforma utili2ada! "Disten clases J,J1 para las Jases de ,atos m&s comunes, entre ellasI
$racle Postgre#Q9 (y#Q9

F:

@erramientas del J,H

javac: El compilador Java, convierte cdigo fuente ( !ava" en #ytecodes ( class" java: El interprete de Java este programa es el $ue e!ecuta los #ytecodes appletviewer: Un interprete Java $ue e!ecuta applets desde un arc%ivo &'(), tal como lo %ara un navegador *e# javadoc: +enera documentacin de cdigo fuente en formato &'() javap: El desensam#lador Java, puede o#tener el cdigo fuente a partir de lso #ytecodes jdb: El depurador (de#ugger", permite supervisar la e!ecucin de los programas Java jar: ,ermite almacenar un programa en Java $ue comprende muc%os class en un solo arc%ivo !ar (en realidad, es un -ip"
F=

1ompilacin y "jecucin

Por a*ora, digamos %ue cada clase debe estar definida en un arc*ivo %ue debe llamarse igual %ue la clase, con eDtensin !java "s decir, la clase <igura>eometrica debe declararse en un arc*ivo llamado <igura>eometrica!java

F?

1ompilacin y "jecucin /plicaciones

Por ejemploI
/****************** HolaMundo.java******************/ class HolaMundo { public static void main (String args[]) { System.out.println("Hola Mundo !"); } }

FB

1ompilacin y "jecucin /pplets

Por ejemploI
/* HolaMundoApplet.java */ <HTML> <HEAD> <TITLE>Hello world</TITLE> </HEAD> <B D!> <APPLET CO E!"HolaMundoApplet.class# $% TH!&'( HE%)HT!*((+ </A""LET> </B D!> </HTML>

/* HolaMundoApplet.java */
import java!applet!/pplet; import java!a-t!K; class @ola(undo/pplet extends /pplet L public void paint (>rap*ics g) L g!dra-#tring )5@ola (undo MN, G, 2G+O P P

2G

1ompilacin y "jecucin
/##################### FiguraGeometrica.java #####################/ $u%l&' 'la(( FiguraGeometrica { $ro)e')ed &n) nu*eroLado(; $ro)e')ed +)r&n, no*%re-&,ura; $u%l&' FiguraGeometrica(&n) nLado() { nu*eroLado( . nLado(; } $u%l&' &n) ,e)/u*eroLado(() { re)urn nu*eroLado(; } $u%l&' +)r&n, ,e)/o*%re-&,ura() { re)urn no*%re-&,ura; } }

2F

1ompilacin y "jecucin

1uando esta clase se compile, se crear& un arc*ivo llamado <igura>eometrica!class #i el nombre del arc*ivo !java no coincidiera con el nombre de la clase, el compilador de Java no mostrarEa un mensaje de error )no en todos los casos, m&s adelante veremos+I
)ro/o*%re01a2a343 'la(( -&,ura5eo*e)r&'a &( $u%l&'6 (7ould %e de'lared &n a 8&le na*ed -&,ura5eo*e)r&'a01a2a

/*ora veamos un par de ejemplos, una con salida por consola y otro mostrando un cuadro de di&logoI

22

1ompilacin y "jecucin
&*$or) 1a2a90(w&n,0#; $u%l&' 'la(( -&,ura5eo*e)r&'a-ra*e { $u%l&' ()a)&' 2o&d *a&n(+)r&n,[] ar,() { FiguraGeometrica figura = new FiguraGeometrica(6) !"ption#ane.$%owMe$$age&ialog(null' ()l numero de lado$*+ ,de la figura geometrica e$- (+ figura.get.umero/ado$()) +:()e*0e9&)(;); } }

2.

1ompilacin y "jecucin
;ecuerde %ue la compilacin se *ace conI javac <igura>eometrica!java Q la ejecucin se *ace conI java <igura>eometrica 6ote %ue en la ejecucin solo se coloca el nombre de la clase, sin la eDtensin "l resultado de la ejecucin debe serI

20

(aterial

,escargar de
*ttpI eisc!univalle!edu!co Rd-ilc*es

el material correspondiente a la clase FI


J,H F!3!G ,ocumentacin del /PI de Java (anual introductorio de Java


J1reator 9" )entorno de desarrollo+

9eer el tutorial %ue cubre las bases de programacinI


*ttpI ---!programacion!com java tutorial javaSbasico

Para los m&s avan2adosI

T*inUin in Java de Jruce "cUel


23

I,"Vs "ntornos >r&ficos de ,esarrollo

$tros enlacesI

"clipse ) *ttpI ---!eclipse!org + $penW#ource 6etJeans ) *ttpI ---!netbeans!org + $penW#ource JJuilder ) *ttpI ---!borland!com jbuilder + de Jorland 'isual /ge de IJ( ) *ttpI ---W0!ibm!com soft-are ad vajava + J,eveloper de $racle ) *ttpI otn!oracle!com products jdev content!*tml +

2:

También podría gustarte