You are on page 1of 10

DEFINICIN E HISTORIA DE JAVA.

Java surgi en 1991 cuando un grupo de ingenieros de Sun Microsystems trataron de disear
un nuevo lenguaje de programacin destinado a electrodomsticos. La reducida potencia de
clculo y memoria de los electrodomsticos llev a desarrollar un lenguaje sencillo capaz de
generar cdigo de tamao muy reducido.
Debido a la existencia de distintos tipos de !"s y a los continuos cambios# era importante
conseguir una $erramienta independiente del tipo de !" utilizada. Desarrollaron un cdigo
%neutro& 'ue no depend(a del tipo de electrodomstico# el cual se ejecutaba sobre una
%mquina hipottica o virtual& denominada Java Virtual Machine )JVM*. +ra la JVM 'uien
interpretaba el cdigo neutro convirtindolo a cdigo particular de la !" utilizada. +sto
permit(a lo 'ue luego se $a convertido en el principal lema del lenguaje, %Write Once, Run
Everywhere&. - pesar de los es.uerzos realizados por sus creadores# ninguna empresa de
electrodomsticos se interes por el nuevo lenguaje. omo lenguaje de programacin para
computadores# Java se introdujo a .inales de 199/. La clave .ue la incorporacin de un
intrprete Java en la versin 0.1 del programa 2etscape 2avigator# produciendo una verdadera
revolucin en 3nternet. Java 1.1 apareci a principios de 1994# mejorando sustancialmente la
primera versin del lenguaje. Java 1.2# ms tarde rebautizado como Java 2# naci a .inales de
1995.
-l programar en Java no se parte de cero. ual'uier aplicacin 'ue se desarrolle %cuelga& )o se
apoya# seg6n como se 'uiera ver* en un gran n6mero de clae preexistentes. -lgunas de
ellas las $a podido $acer el propio usuario# otras pueden ser comerciales# pero siempre $ay un
n6mero muy importante de clases 'ue .orman parte del propio lenguaje )el A!I o A""licati#n
!r#$ra%%in$ Inter&ace de Java*.
Java incorpora en el propio lenguaje muc$os aspectos 'ue en cual'uier otro lenguaje son
extensiones propiedad de empresas de so.t7are o .abricantes de ordenadores )t$reads#
ejecucin remota# componentes# seguridad# acceso a bases de datos# etc.*. !or eso muc$os
expertos opinan 'ue Java es el lenguaje ideal para aprender la in.ormtica moderna# por'ue
incorpora todos estos conceptos de un modo estndar# muc$o ms sencillo y claro 'ue con las
citadas extensiones de otros lenguajes. +sto es consecuencia de $aber sido diseado ms
recientemente y por un 6nico e'uipo. +l principal objetivo del lenguaje Java es llegar a ser el
%nexo universal& 'ue conecte a los usuarios con la in.ormacin# est sta situada en el
ordenador local# en un servidor de 'e(# en una base de datos o en cual'uier otro lugar. Java
es un lenguaje muy completo )de $ec$o se est convirtiendo en un macro8lenguaje, Java 1.)
ten(a 10 pac9ages: Java 1.1 ten(a 0; y Java 1.2 tiene /9*. +n cierta .orma casi todo depende
de casi todo. !or ello# conviene aprenderlo de modo iterativo, primero una visin muy general#
'ue se va re.inando en sucesivas iteraciones. "na .orma de $acerlo es empezar con un
ejemplo completo en el 'ue ya aparecen algunas de las caracter(sticas ms importantes. La
compa(a Sun describe el lenguaje Java como %simple, orientado a objetos, distribuido,
interpretado, robusto, seuro, de arquitectura neutra, portable, de altas prestaciones, multitarea
y dinmico&. -dems de una serie de $alagos por parte de Sun $acia su propia criatura# el
$ec$o es 'ue todo ello describe bastante bien el lenguaje Java# aun'ue en algunas de esas
caracter(sticas el lenguaje sea todav(a bastante mejorable. -lgunas de las anteriores ideas se
irn explicando a lo largo de este manual.
REQUISITOS PARA PROGRAMAR EN JAVA.
- grandes rasgos# cual'uier persona interesada en programar en <ava# necesitar un editor de
textos )como el bloc de notas de =indo7s o el vim de Linux*# un compilador )'ue se incluye en
el Java Developement Kit )o Softwae Developement Kit en versiones recientes*. +ste <D>
o ?D> incluye el arc$ivo !ava".e#e 'uien realmente es el compilador. +l <@+ por su parte es el
tiempo de ejecucin de <ava )Java R$ntime Envionment% 'ue no permite desarrollar
aplicaciones en <ava# sino ejecutarlas mediante el <avaAB )o m'uina virtual de <ava*.
?in embargo# diversas comunidades y empresas desarrolladoras de so.t7are $an creado
diversos entornos de desarrollo integrado )3D+Cs* 'ue cuentan con $erramientas intuitivas 'ue
ayudan a la depuracin y optimizacin del cdigo .uente as( como diversas tareas como la
generacin del producto .inal.
+n este curso# se utilizar el Net&ean'.
!ero antes de adentrarnos en el 2etbeans es necesario conocer los .undamentos de <ava.
(UNDAMENTOS DE JAVA
"n programa en <ava presenta la estructura $abitual en los lenguajes DD! )lenguajes
orientados a objetos*. -s(# tendremos una clase 'ue contenga el programa principal. +l .ic$ero
.uente tendr extensin .java# mientras 'ue el compilado tendr extensin .class. "n .ic$ero
.uente puede contener ms de una clase# pero slo una puede ser de tipo p$)li". -dems# el
nombre de esa clase public deber coincidir con el nombre del .ic$ero .uente. !or ejemplo# si
en nuestro .ic$ero .java declaramos public class Bilase# el nombre de ese .ic$ero deber ser
Bilase.java )respetando las may6sculas pues# de lo contrario# <ava interpretar(a 'ue son
nombres distintos*.
- no ser 'ue nuestros programas sean demasiado simples# stos estarn constituidos por
varias clases. +stas clases $acen re.erencia a una programacin modular# en la 'ue podemos
modi.icar nuestras clases de .orma independiente# como si .ueran subprogramas realizando
una .uncin espec(.ica. La clase principal# a'uella 'ue se ejecuta prioritariamente y 'ue da
comienzo al programa# es la 'ue contiene la .uncin main)*. Las clases# se agrupan en
pa'uetes o pac9ages )librer(as o agrupaciones de clases* y por ello debemos indicar su
ubicacin al principio de nuestro cdigo. +s decir# si 'ueremos utilizar la clase lase- presente
en el pac9age Elases-FE# debemos indicar al principio el pa'uete 'ue contiene a lase-# en
este caso# lase-F. ?i no se especi.ica# <ava utilizar el pac9age por de.ecto# el directorio
activo.
"na clase es una agrupacin de datos )variables y campos* y .unciones )mtodos* 'ue
operan sobre estos datos. ?e les llama# respectivamente# variables miembro y mtodos o
.unciones miembro. +n ellos se basa la programacin orientada a objetos# en la programacin
de clases pues# cual'uier programa# se construir a partir de un conjunto de clases.
"na vez de.inida y declarada nuestra clase# podemos declarar elementos de modo similar a
la creacin de variables )int# double...* Los elementos declarados en una clase se llaman
objetos de la clase.
package primero; /* Nombre del paquete (archivo que contiene mis
clases */
/* declaracin de la clase pblica main */
public class Main {
/* declaracin de la funcin main( que es la primera en
e!ecutarse */
public static void main("tring#$ args {
/* %digo de su funcin main( */
& /* 'in de la funcin main( */
& /* 'in de la clase main( */
DE*+ARA*I,N DE VARIA&+ES - *ONSTANTES EN JAVA
!ara usar una variable en el programa se debe declarar. -s(# se reserva el espacio de memoria
necesario para almacenar el valor re'uerido con un tipo de dato espec(.ico.
tipo identificador;
tipo identificador() identificador*) identificadorn;
Los identi.icadores son los nombres 'ue le daremos a las variables. -s( mismo# una variable no
podr almacenar un valor 'ue no sea del tipo del cual se declar.
E!emplo'.
int i; /* +ariable de tipo entera */
double r; /* +ariable de tipo doubl, */
char c; /* +ariable de tipo char */
int i)!)k)s; /* -eclaraciones de varias variables en una l.nea */
Los nombres de variables D+F+2 comenzar con caracteres al.abticos )-8z* o con %&G& o %H&.
?in embargo# no pueden comenzar con d(gitos. ?in embargo# despus de el primer carcter# se
pueden utilizar d(gitos.
Los identi.icadores tampoco pueden coincidir con las palabras reservadas del lenguaje java#
por ejemplo, do# abstract# continue# .or## ne7# s7itc$# pac9ageI.
<ava distingue entre may6sculas y min6sculas# asi 'ue las siguientes variables son di.erentes,
int edad;
int /-0-;
Las variables se pueden inicializar cuando se declaran# por ejemplo, int edad12;
Las constantes $acen re.erencia a valores 'ue no cambian durante la ejecucin del programa.
final doubl, 34156(7(89*;
La palabra clave final impide 'ue el valor de la variable se modi.i'ue.
?e siguen las mismas convenciones 'ue se estudiaron para la declaracin de las variables.
ESTRU*TURAS DE *ONTRO+ EN JAVA
Las estructuras de control de <ava son similares a las de . Jenemos las estructuras de control
condicionales y repetitivas clsicas de la programacin estructurada.
La estructura de control ms bsica es if/el'e# 'ue tiene la siguiente .orma,
if (condicin) {
sentencias;
} else {
sentencias;
}
Bediante esta estructura condicional# podemos ejecutar un cdigo u otro dependiendo de si se
cumple una condicin concreta. La segunda parte de la estructura )el'e* es opcional. Las
siguientes l(neas muestran un ejemplo de uso de la estructura if/el'e.
if (vidas == 0) {
terminar = true;
} else {
vidas--;
}
+n este ejemplo# si la variable vidas vale 1# la variable terminar tomar el valor true. +n otro
caso# se decrementa el valor de la variable vidas.
La otra estructura condicional es 'wit"0# 'ue permite un control condicional m6ltiple. Jiene el
.ormato siguiente.
switch (expresin) {
case val1:
sentencias;
rea!;
case val":
sentencias;
rea!;
case val#:
sentencias;
rea!;
default:
sentencias;
rea!;
}
Dependiendo del valor 'ue tome la expresin# se ejecutar un cdigo determinado por la
palabra reservada case. Dbserva como al .inal de las sentencias se incluye la palabra
reservada brea9# 'ue $ace 'ue no se siga ejecutando el cdigo perteneciente al siguiente
blo'ue. ?i el valor de la expresin no coincide con ninguno de los blo'ues# se ejecuta el blo'ue
de.ault. Lo veremos mejor con un ejemplo.
switch (posicion) {
case 1:
medalla = $oro$;
rea!;
case ":
medalla = $plata$;
rea!;
case %:
medalla = $ronce$;
rea!;
default:
medalla = $sin medalla$;
rea!;
}
Las estructuras 'ue $emos visto $asta a$ora nos permiten tomar decisiones. Las siguientes
'ue vamos a ver nos van a permitir realizar acciones repetitivas. ?on los llamados bucles. +l
bucle ms sencillo es el bucle .or.
for (iniciali&acin'contador ; control ; incremento) {
sentencias;
}
+ste bucle ejecuta el blo'ue de sentencias un n6mero determinado de veces.
for (i=1 ; i(=10 ; i))) {
suma)=i;
}
+ste ejemplo de cdigo suma los 11 primero n6meros. La variable i lleva la cuenta# es decir# es
el contador del bucle. +n la primera seccin nos encargamos de inicializar la variable con el
valor 1. La segunda seccin es la condicin 'ue $a de darse para 'ue se contin6e la ejecucin
del bucle# en este caso# mientras i sea menor o igual a 11# se estar ejecutando el bucle. La
tercera seccin es la encargada de incrementar la variable en cada vuelta.
+l siguiente bucle 'ue te voy a presentar es el bucle 7$ile y tiene la siguiente estructura.
while (condicin) {
sentencias;
}
+l blo'ue de sentencias se ejecutar mientras se cumpla la condicin del bucle.
vueltas = 10;
while (vueltas * 0) {
vueltas--;
}
- la entrada del bucle# la variable vueltas tiene el valor 11. Bientras el valor de esta variable
sea mayor 'ue 1# se va a repetir el blo'ue de cdigo 'ue contiene. +n este caso# el blo'ue de
cdigo se encarga de decrementar la variable vuelta# por lo 'ue cuando su valor llegue a 1# no
volver a ejecutarse. Lo 'ue estamos $aciendo es simular un bucle .or 'ue se ejecuta 11
veces.
+l bucle doK7$ile .unciona de .orma similar al anterior# pero $ace la comprobacin a la salida
del bucle.
1o 2
'enten"ia'3
4 w0ile 5"on1i"i6n%3
+l siguiente ejemplo# es igual 'ue el anterior. La di.erencia entre ambos es 'ue con el bucle
doK7$ile# el cdigo se ejecutar siempre al menos una vez# ya 'ue la comprobacin se $ace al
.inal# mientras 'ue con el bucle 7$ile# es posible 'ue nunca se ejecute el cdigo interno si no se
cumple la condicin.
v$elta' 7 893
1o 2
v$elta'::3
4 w0ile5v$elta' ; 9%3
Aeamos una 6ltima estructura propia de <ava )no existe en * y 'ue nos permite ejecutar un
cdigo de .orma controlada. oncretamente nos permite tomar acciones espec(.icas en caso de
error de ejecucin en el cdigo.
tr+ {
sentencias;
} catch (excepcin) {
sentencias;
}
?i el cdigo incluido en el primer blo'ue de cdigo produce alg6n tipo de excepcin# se
ejecutar el cdigo contenido en el segundo blo'ue de cdigo. "na excepcin es un tipo de
error 'ue <ava es capaz de controlar por decirlo de una .orma sencilla# realmente# una
excepcin es un objeto de la clase +xception. ?i por ejemplo# dentro del primer blo'ue de
cdigo intentamos leer un arc$ivo# y no se encuentra en la carpeta especi.icada# el mtodo
encargado de abrir el arc$ivo lanzar una excepcin del tipo IOE#"eption.
?e $an visto algunos .undamentos de java. -un'ue son conocimientos muy elementales# es el
momento de comenzar a escribir nuestros propios programas: sin embargo# $ablaremos del
3D+ 'ue utilizaremos# en este caso el Net&ean'
NET&EANS
2etbeans es un entorno de desarrollo integrado )3D+* para escribir cdigo .uente java y
optimizarlo. Lue desarrollado por una comunidad denominada net)ean'.o< y se $a convertido
en una $erramienta casi imprescindible para los programadores java. La versin a utilizar es la
M.5
!ara iniciar 2etFeans )se supone previamente instalado*# debe ir al men6 inicio de =indo7s y
buscar la carpeta Net&ean'. -ll( encontrar el elemento Net&ean' IDE =.> y debe clic9ear
sobre l. -ll( aparecer la siguiente ventana,
+sta es la ventana de presentacin del 3D+ de 2etFeans.
1. Lo primero 'ue debemos $acer es crear un nuevo proyecto# es decir# un contenedor de todos
los arc$ivos 'ue integrarn nuestra aplicacin java. Naga clic9 en el men6 (ile y luego en New
Po!e"t +n este punto# aparecer la siguiente ventana,
2. Seleccione en Categories la opcin Java y en Projects la opcin Java
Application. Luego, presione Next.
3. Luego, en el Project Name escriba primero (en minsculas y sin
comillas). As mismo, debe notar la carpeta donde se guardarn sus
arci!os de proyecto (normalmente se crea una carpeta dentro de Mis
Documentos\NetBeansProjects por cada proyecto "ue creemos.
#. La calase principal (main) recibir el mismo nombre "ue otorg a su
proyecto. $et%eans se encarga de acer esto. &n este caso, tilde las dos
casillas' (reate )ain (lass y Set As )ain *ro+ect. Las cuales, permitirn
establecer a ,sta como la clase inicial (recuerde "ue un mismo proyecto
puede contener mucas clases).
La carpeta "ue dispone $et%eans para guardar sus proyectos es la
siguiente'
('-.ocuments and Settings-Administrador-)is
documentos-$et%eans*ro+ects
/ se dispondr una carpeta para cada proyecto "ue usted aya creado con
netbeans.
0eco esto, su pantalla principal "uedar as'
Men?' @ &aa' 1e Aeamienta', Despliegan acciones diversas 'ue se pueden realizar
utilizando el 3D+ de 2etbeans como crear un proyecto# agregar arc$ivos# guardarlos# ejecutar el
proyecto entre otras.
Bea 1e Ta)a!o.
E#ploa1o 1e Po@e"to'
Area de traba+o
1entana
23areas4
$a!egador
de ob+etos
&5plorador
de
proyectos
)ens 6 %arras de
erramientas
%arra de estado
Nave<a1o 1e O)!eto'
Ventana Taea' / Sali1a
&aa 1e E'ta1o
/*
* :o change this template) choose :ools ; :emplates
* and open the template in the editor6
*/
package primero;
/**
*
* <author 0dministrador
*/
public class Main {
/**
* <param args the command line arguments
*/
public static void main("tring#$ args {
// :=-= code application logic here
">stem6out6print(?@ola?;
&
&
import !ava6io6*;
/* importa los elementos de la clase
!ava6io (input/output) el asterisco nos indica que solo
va a tomar aquellas caracter.sticas que necesite para
este programa6 */
public class @ello0( ///sta es la declaracin de nuestra clase
{
public static void main ("tring#$ args throAs 4=/Bception
{
/* -eclaracin de nuestro m,todo principal > con
la ltima instruccin estamos indicando que se va
a solicitar una entrada del usuario > a desplegar
un resultado */

4nput"treamCeader reader1neA 4nput"treamCeader(">stem6in;
/* /sta instruccin es un lector de cadena */

DufferedCeader 4nput1neA DufferedCeader (reader;
/* Eector de memoria */

">stem6out6println (?4ntroduce tu nombreF ?;
/* -espliega el mensa!e 4ntroduce tu nombre */

"tring name1 4nput6readEine(;
/* recibe la entrada del usuario en la variable name */

">stem6out6println (?@ello ? G name G ?H?;
/* despliega en pantalla el mensa!e > el valor
de la variable name */
&
&
import !ava6io6*;
public class area
{
public static void main("tring#$ args throAs 4=/Bception
{
4nput"treamCeader reader1neA 4nput"treamCeader(">stem6in;
DufferedCeader 4nput1neA DufferedCeader (reader;
">stem6out6println (?introduce el radio?;
"tring teBt1 4nput6readEine(;
/* Cecibe una entrada del usuario */

-ouble B1neA -ouble(teBt;
/* %onvierte el teBto del usuario a un formato num,rico de
tipo double */

double r1B6double+alue(;
/* > ese valor se lo asigna a la variable r */

">stem6out6println (?el area de un circulo de radio ? G r;
&
&

You might also like