Anda di halaman 1dari 27

I.

IntroduccinaJAVA

1.1.ORIGEN.
EllenguajedeprogramacinJavafuecreadoporSunMicrosystems,empresalder
enservidoresparaInternet,enladcadadelos90.Javainicialmentefuellamado
OAK, y el primer proyecto en el que se aplic este lenguaje fue un sistema
completodecontroldeaparatoselectrodomsticosenelhogar.
Bill Joy, uno de los desarrolladores principales de Unix de Berkeley y cofundador
de Sun, vio en Oak el lenguaje de programacin adecuado para conquistar el
creciente campo del Internet. Despus de algunos ajustes en el diseo y un
cambio de nombre, se presenta pblicamente en agosto de 1995 el lenguaje de
programacinJava.

1.2AspectosGeneralesdeJava

Javasurgicomounarespuestaporparte deSunMicrosystemsparaelcreciente
mundo del desarrollo de aplicaciones para Internet, donde haba un caos
tremendo.Enelcualcadaempresa ldertratabadeimplantarsupropioestndar,
dondeunaaplicacinfuncionabaenunservidorynoenotro, debidoadiferencias
enelsistemaoperativo,incompatibilidadesdesoftwareyhardware.

Javaesunlenguajedepropsitogeneralyorientadoaobjetos,quetransformaun
Webestticoendinmicoeinteractivo.

Permite crear aplicaciones ejecutables en mltiples plataformas: Solaris de Sun


Microsystems,WindowsMicrosoft,MacOsXde Macintosh,entreotros.
LaplataformaJava

Unaplataformaeselambientedehardware osoftware enelcualse ejecutan los


programas. En general, la mayora de las plataformas pueden ser descritas como
unacombinacindehardwareysistemaoperativo.
LaplataformaJavadifieredelasanterioresenquestaesunaplataformabasada
nicamente en software que corre por encima de las plataformas basadas en
hardware.

LaplataformaJavaconstadedoscomponentes:

LaMquinaVirtualdeJava(JVM)

Esunprogramaejecutableenunaplataformaespecfica,capazdeinterpretary
ejecutarinstruccionesexpresadasenuncdigobinarioespecial(elbytecode),el
cualesgeneradoporelcompiladordellenguajeJava.Elcdigoparalamquina
virtualJavasealmacenaenarchivos.class,cadaunodeloscualescontiene,al
menos,elcdigoparaunaclasepblica.
LaMquinaVirtualdejava:

:EselcorazndelaplataformadeJava
:Eslaclaveparalaindependenciadelsistemaoperativoydelhardware.
:Leebytecodeindependientesdelaplataforma.
:SepuedeemularporsoftwareoimplementarenHardware.

Cadaplataforma(S.O, HARDWARE)tienesupropiaimplementacindelamquina
virtualdeJava.
La mquina virtual de Java permite que el mismo presente la caracterstica de
Interoperabilidadentreplataformas.
Estacaractersticaformapartedellema deJava:"Writeonce,runeverywhere"
(Escrbalo una vez, ejectalo en todos lados), a continuacin se ilustra este
concepto.

Elprocesodecreacinesmuysimilaraladeotroslenguajes:unavezcreado
elCdigoFuenteesnecesariocompilarloparagenerarunbinario,estebinario
denominado ByteCode en Java lleva por extensin .class, sin embargo, a
diferenciadeotroslenguajesestebinario(ByteCode)puedeserejecutadoen
diversas plataformas obtenindose el mismo resultado final. Esta
interoperabilidaddeejecucinsedebeaqueelByteCodeesejecutadoenuna
maquina virtual llamada "Java Virtual Machine", es a travs de este
componentequeselograunaejecucinidnticaendistintosambientes.
Hoy en da, existen diversos JVM ("Java Virtual Machines") para distintas
plataformas y ambientes que oscilan desde los Sistemas Operativos Linux,

Solaris,Windows,MacOSX,estopermitequecdigoescritoenJavapuedaser
ejecutadoencualquierambienteproducindoselosmismosresultados.

LaInterfazparalaProgramacindeAplicacionesdeJava(API
Java).

Esunagrancoleccindecomponentesdesoftwareyalistosparausar.LaAPI
est agrupada en libreras o paquetes de clases e interfaces relacionadas. Se
divideendosgrupos:
: La API bsicas: son todos los paquetes de libreras terminadas y
probadas.
: LaAPIextendida:sonnuevasversionesdepaquetesomejorasa
paquetesexistentes,queseencuentranenetapadeprueba.
EjemplosdeAPI:
: java lang: contiene clases que se aplican al lenguaje mismo,
tales como las clases para los datos primitivos (int, float, char, etc),
compuestos como Object, String, librera especficas como Math, el
compiladorjavac.
Es el nico paquete que se incluye automticamente en todos los
programasJava.
: java util: contiene clases como date (fecha), Time (horas), la
clasevector.
: java io: contiene las clases de entrada/salida estndares y para
manejararchivos.

: javax.swing: clases para implementar una interfaz grfica del


usuario(GUI),talescomoJMenu,JButton,JCheckBox,JImages,etc.
: java sql: contiene clases para el manejo de base de datos
relacionales(JDBC,JDBCODBC).

Ejemplo:

UTIL

APIS DE JAVA

IO

AWT

APPLETS

SWING

Sintetizando a continuacin se muestra un mismo programa ejecutndose para


diferentesplataformasdehardware.

TiposdeprogramasenJava.
LosprogramasenJavasuelenestarenunadelassiguientescategoras:

Applets
LosappletssonpequeosprogramasqueseincorporanenunapginaWeb
y que por lo tanto, necesitan de un Navegador Web compatible con Java
para poder ejecutarse. A menudo los applets se descargan junto con una
pginaHTMLdesdeunServidorWebyseejecutanenlamquinacliente.

Aplicaciones
Las aplicaciones son programas standalone de propsito general que
normalmenteseejecutandesdelalneadecomandosdelsistemaoperativo.
ConJavasepuederealizarcualquierprogramaquenormalmentesecreara
conalgnotrolenguajedeprogramacin.

Servlets.
6

Los servlets al contrario de los applets son programas que estn pensados
para trabajar en el lado del servidor y desarrollar aplicaciones Web que
interactenconlosclientes.Esdecirpermitecrearygestionarpginasweb
dinmicas.
PlataformasdeTrabajoenJavasegneltipodeProgramacindeseada
:

QuesJavaJ2SE?

JDK("JavaDevelopmentKit")yJ2SE("Java2StandardEdition")sonnombres
para el mismo componente utilizado en ambientes Java, el cual agrupa las
diversasfuncionalidadesnecesariasparadesarrollarprogramasJava.
LaplataformaJ2SE(Java2StandardEdition)eslabasedelatecnologaJavay
hoy en da, existen JDK's/J2SE para diversos ambientes y
plataformas,loscualesofrecenlosiguiente:

UncompiladorJava,capazdegenerarByteCode.

UnJVM("JavaVirtualMachine"),capazdeejecutarByteCode.

UnconjuntodeClasesbasellamadalaAPIdeJava, utilizadaspara
construir programasen Java.

OtrasutilerasparaadministrarcdigoescritoenJava,talescomo

Applets,ObjetosCORBA,FragmentosAuditivos,SoportedeCriptografa
(Seguridad)yManipulacindeXMLentreotrasfuncionalidades.
LaestructuradedirectoriosdelJDK/J2SEeslasiguiente:

JDK1.4.2

BINLIBJRE

Comosepuedeobservar,laestructuraseencuentradivididaentresgrandes
partes:

bin:incluyelosejecutablesparalageneracindeprogramasJava.

lib:Contienelaslibreras(Clases)baseempleadasenlageneracindela

granmayoradeprogramasJava.

jre:incluyeelambientenecesarioparaejecutarprogramasJava,elcuala

suvezseencuentrasubdivididoendistintosdirectorios.

:QuesJavaparaInternet(J2EE)?
La plataforma J2EE aade a Java la funcionalidad necesaria para convertirse en un
lenguaje orientado al desarrollo de servicios en Internet. Mediante JSP (un lenguaje de
programacin de pginas web dinmicas como PHP o ASP) y Servlets (scripts CGI en el
servidorcomolosdePerl)sepuedendesarrollarsitiosWebbajolatecnologaJava.

Cliente

Servicio WEB

Macos

Linux
Archivo JSP
Se almacena aqu
Window XP

Tpica Aplicacin de Web, Desarrollada en JSP


8

QueslaplataformaJ2ME
La plataforma J2ME es una familia de especificaciones que definen varias
versiones minimizadas de la plataforma Java 2 estas versiones minimizadas
pueden ser usadas para programar en dispositivos electrnicos desde telfonos
celulares,enPDAs,hastaentarjetasinteligentes,etc.Estosdispositivospresentan
en comn que no disponen de abundante memoria ni mucha potencia en el
procesamiento, ni tampoco necesitan de todo el soporte que brinda el J2SE, (la
plataformaestndardeJavausadaensistemasdeescritorioyservidor).

EntornodeDesarrollodelasProgramasenJAVA.

La creacin de un programa en Java necesita mnimo el JDK o J2SE, el cual


contiene las herramientas y libreras necesarias para crear y ejecutar applets y
aplicacionesenJava.Javanoposeeunentornodedesarrollointegradoquefacilite
los procesos de edicin, compilacin y ejecucin de sus programas, sin embargo
existen comercialmente hablando varios entornos sobre los cuales se puede
trabajar, sin embargo de no contar con un ambiente integrado, usted, puede
trabajardesdeuneditordetextocualquiera.Estoseveraenellaboratorio#1.
ElJDKsepuedeobtenerdirectamentedeformagratuitadelsitioWebdeJavaSoft,
http://www.javasoft.com.

10

Compilacinyejecucinde unprogramaenJava.

UsodelJDKparacontruiraplicaciones
EditordeTexto

Javadoc

Javac

Java

11

II.CREACIONDEAPLICACIONESENJAVA.
2.1. ESTRUCTURADEUNAAPLICACINENJAVA.
TodoprogramaJavaestacompuestomnimodetresreasdedeclaracinquea
continuacinsedescriben:
&DeclaracindelassentenciasdeImportacin(import)
&Declaracindelasclasesdiseadasporelusuario(class)
&Declaracindelaclaseprincipalquecontienealmtodomain(main)
1. DeclaracindelassentenciasdeImportacin.
Sedefinenlasclases,paquetesolibrerasquerequiereelusuarioparael
desarrollodesusaplicaciones.
Formato:

importnombredelpaquete.*
importnombredelpaquete.nombredelaclase

Enelprimercasoseimportatodaelpaquetecontodaslasclasesque
contenga.Enelsegundocasodeunpaqueteenparticularsedeseautilizarsolo
uno.
Ejemplo:
importjava.io.*//seimportantodaslasclasesdelpaquete
importjavax.swing.JOptionPane//delpaqueteswingsololaclaseJOptinPane
importjava.util.Vector//delpaquetetil,sololaclasevector

12

Serecomiendaincorporarsololasclasesdelospaquetesquesuprograma
requiere,yaqueentremenosubiquesucompilacinsermsrpida.
2. Declaracindelasclasesdiseadasporelusuario(class).
UnprogramaenJavaestaorganizadocomounacoleccindeclases.Estas
clasesdefinidasaquleindicanalusuarioquelasmismasvanarealizaruna
tareaespecfica.
ATRIBUTOSDELACLASE

Formato:
classnombredelaclase{
Modificadordeaccesotipodedato nombredemodificador
:
Modificadordeaccesotipodedatonombredel (listadeparmetrosFormales{
delmtodo
//DeclaracinLocal
Sentencia1
METODOSDELA
:
CLASE
Sentencia_n
returnexpresin
}
Modificadordeaccesovoidnombredel(listadeparmetrosFormales){
delmtodo
//DeclaracinLocal
sentencia1
:
sentencia_n
}
}

Recordemosunaclaseestaformadaporlosatributosysusmtodos,paranuestro
caso todos los atributos de la clase deben ser manejados como privados, los
mtodospuedenserpblicos,privadosopordefecto,enJava..
Cuando un mtodo no retorna valor debe ser precedido por la palabra reservada
void

13

3. Declaracindelaclaseprincipalquecontienealmtodomain(main).
Eslaclasequemanejaalmtodomain,elcualeselpuntoinicialde
ejecucindetodoslosprogramasJava.Unprogramamnimodebeposeer
unaclaseylamismadebeconteneralmtodomain.
Formato:

classnombredelaclase{publicstaticvoidmain(Stringargs[]){
//declaraciones
sentencia1
:
sentencian
}
}

EllenguajeJavaexigequeelmtodomainsedeclarecomopublicstaticvoid,por
lasiguienterazn,esstaticyaqueelmismoesllamadoporlamquinavirtualde
Javaentiempodeejecucinantesdequesecreecualquierobjeto,voidporqueno
retornaningnvaloryesunmtodopblico.Elarreglodecadenasargs,existey
esobligatorioubicarloyaquepermitedesernecesariointroducirdatosenforma
decadenasdecaracteresenlalneadeejecucindelprogramaJava.

2.2.ElementosBsicosdeunaAplicacinenJava
A continuacin presentamos los elementos mnimos que se requieren para
desarrollarunaaplicacinenJava.

14

2.2.1Comentarios
Javaofrecetrestiposdecomentarios:dosparacomentariosregularesenelcdigo
fuenteyunoparaladocumentacinespecialdelsistemajavadoc.

Comentariosdevariaslneas.

Loscomentariosdevariaslneasseincluyenentrelossmbolos/*y*/.Ejemplo:
/*
Esteesunejemplode
uncomentariodevarias
lneas.
*/

Comentariosdeunasolalnea.
Para comentariar una sola lnea se utiliza la doble diagonal //. El
comentarioseiniciacuandoseencuentraladoblediagonalycontinuahasta
elfinaldelalnea.
//Esteesuncomentariodeunasolalinea
//Esteesotrocomentario

2.2.2.Identificadores.
Un identificador es un nombre diseado por el usuario para identificar elementos
quevanasermanipuladosporsusaplicaciones. Losidentificadoresnoselimitan
a los caracteres ASCII, si el editor de texto lo soporta, se pueden escribir
identificadoresutilizandocaracteresUnicode.
Las letras Java incluyen los caracteres ASCII AZ y az. Los dgitos Java incluyen
los dgitos ASCII 09. Para propsitos de construir identificadores, los caracteres
ASCII$y_sontambinconsideradosletrasJava.

15

REGLASDECONSTRUCCIONDEUNNOMBREDEIDENTIFICADOR.
1. Debeempezarconunaletra.
2. A partir del segundo carcter puede tener mezclas de letras minsculas o
maysculasynmeros.
3. Noseadmitencaracteresespeciales.
4. No hay un lmite en lo concerniente al nmero de caracteres que pueden
tener los identificadores. Sin embargo utilizaremos como largo mximo 10
caracteres.
5. Las palabras reservadas no pueden ser utilizadas como nombres de
identificadores.
Ejemplosdeidentificadoresvlidos:
Trabajar,costo,precio,maximo,Contar
Invlidos
98tot,Pobla2002,Cantidad*P,public
2.2.3.PalabrasReservadas.
Sonaquellasquetienenunafuncinespecficadentrodellenguaje.
LasiguientetablamuestralaspalabrasreservadasdeJava,stassonreservadasy
nopuedenserutilizadascomoidentificadores.

16

abstract

default

If

private

this

boolean

do

Implements

protected

throw

break

double

Import

public

throws

byte

else

Instanceof

return

transient

case

extends

Int

short

try

catch

final

Interface

static

void

char

finally

Long

strictfp**

volatile

class

float

Native

super

while

const*

for

New

switch

continue

goto*

Package

synchronized

true, false, and null no son palabras reservadas sino constantes, as que tampoco
puedenserutilizadascomoidentificadores.
2.2.4.Literales oConstantes.
Una literal es un valor constante formado por una secuencia de caracteres.
Cualquier declaracin en Java que defina un valor constante, un valor que no
pueda ser cambiado durante la ejecucin del programa, es una literal.

Sonejemplosdeliteraleslosnmeros,loscaracteresylascadenasdecaracteres.

Literalesnumricas
Sepuedencrearliteralesnumricasapartirdecualquiertipodedato
primitivo.

Ejemplo:

123

//literalint

123.456

//literaldouble

123L

//literallong

17

123.456F

//literalfloat

Literalesbooleanas

Lasliteralesboolenasconsistendelaspalabrasreservadastrueyfalse.

Literalesdecaracteres

Las literales de caracteres se expresan por un solo caracter entre comillas


sencillas
Ejemplo: 'a',

'%',

'7'

Literalesdecadena.

Una cadena es una combinacin de caracteres. Las cadenas en Java son


instancias de la clase String, por ello cuentan con mtodos que permiten
combinar,

probar

modificar

cadenas

con

facilidad.

Las literales de cadena se representan por una secuencia de caracteres entre


comillasdobles.
Ejemplo: "hola", "cadena123","12345"
.ConstantesSimblicas:sedeclararanenelcuerpodelaclaseyfueradetodos
losmtodos.

Formato:
staticfinaltipodedatonombredeidentificador=
valor
staticindicaquesolodebeexistirunacopiadela
constante.
EjemplostaticfinaldoublePI=3.141692

18

2.2.5.ExpresionesyOperadores

Expresin
Una expresin es una combinacin de variables, operadores y llamadas de
mtodos,quedevuelveunvalor.Eltipodedatodelvalorregresadoporuna
expresindependedeloselementosusadosenlaexpresin.

Operadores
Los operadores son smbolos especiales que por lo comn se utilizan en
expresiones.

LatablasiguientemuestralosdistintostiposdeoperadoresqueutilizaJava.
Operador

Significado

Ejemplo
Operadoresaritmticos

Suma

10+15=25

Resta

10090=10

Multiplicacin

12*3=36

Divisin

15/2=7

Mdulo

15%2=1
Operadoresdeasignacin

Asignacin

a= b

+=

Sumayasignacin

a+=b*(a=a+b)

19

Restayasignacin

a=b*(a=ab)

*=

Multiplicacinyasignacin

a*=b*(a=a*b)

/=

Divisinyasignacin

a/=b*(a=a/b)

%=

Mduloyasignacin

a%=b*(a=a%b)

Operadoresrelacionales

==

Igualdad

a==b

!=

Distinto

a!=b

<

Menorque

a<b

>

Mayorque

a>b

<=

Menoroigualque

a<=b

>=

Mayoroigualque

a>=b

Operadoresespeciales

++

Incremento

a++(postincremento)
++a (preincremento)

Decremento

a(postdecremento)
a (predecremento)

(tipo)expr

Cast

a=(int)b

Concatenacindecadenas

a="cad1"+"cad2"

Accesoavariablesymtodos

a=obj.var1

20

()

Agrupacindeexpresiones

a=(a+b)*c

Latablasiguientemuestralaprecedenciaasignadaalosoperadores,stosson
listadosenordendeprecedencia.

Losoperadoresenlamismafilatienenigualprecedencia
Operador

Notas

. [] ()

Loscorchetesseutilizanparalosarreglos

++ ! ~

!eselNOTlgicoy~eselcomplemento
debits

new(tipo)expr

newseutilizaparacrearinstanciasde
clases

* / %

Multiplicativos

Aditivos

< > <= >=

Relacionales

== !=

Igualdad

&&

ANDlgicoencortocircuito

||

ORlgicoencortocircuito

= += = *= /= %= &= ^= Asignacin
|=
Todos los operadores binarios que tienen la misma prioridad (excepto los
operadoresdeasignacin)sonevaluadosdeizquierdaaderecha.
Losoperadoresdeasignacinsonevaluadosdederechaaizquierda

21

Variablesytiposdedatos.
Las variables son localidades de memoria en las que pueden almacenarse datos.
Cada una tiene un nombre, un tipo y valor. Java tiene tres tipos de variables: de
instancia,declaseylocales.

Variablesdeinstancia.

Seutilizanparadefinirlosatributosdeunobjeto.

Variablesdeclase.

Sonsimilaresalasvariablesdeinstancia,conlaexcepcindeque susvalores
sonlosmismosparatodaslasinstanciasdelaclase.

Variablelocales.

Sedeclaranyseutilizandentrodelasdefinicionesdelosmtodos.
* A diferencia de otros lenguajes, Java no tiene variables globales, es decir,
variablesquesonvistasencualquierpartedelprograma.
Variablesytiposdedatos.
Javaesunlenguaje"fuertementetipificado"porloqueesnecesarioespecificarel
tipo de dato para cada una de las variables que se vayan a utilizar en un
programa. El nombre de la variable debe de ser un identificador vlido, y se usa
parareferirsealosdatosquecontieneunavariable.
El tipo de una variable determina los valores que puede almacenar y las
operacionesquesepuedenhacersobreella. Paradaraunavariableuntipoyun

22

nombre, se escribe una declaracin de una variable, que tiene el siguiente


FORMATO:

TipodeDatonombreVariable
Ejemplo:
Stringnombre //variabledetipoString
intedad

//variabledetipoint

Sepuedenescribirvariosnombresdevariablesdelmismotipoenunasolalnea,
intx,y,z
Stringnombre,apellido
Tambinsepuedeasignarunvalorinicialalasvariablesalmomentodecrearlas,
Stringnombre,apellido="MiApellido"
intedad=24
Variablesytiposdedatos.
LasvariablesenJavapuedenserunodelossiguientestipos:

Tipoprimitivo.
Una variable de tipo primitivo contiene un solo valor del tamao y formato
apropiadodesutipo:unnmero,uncarcter,ounvalorbooleano.

23

LatablasiguientelistalostiposdedatosprimitivossoportadosporJava.
Tipo

Descripcin

Tamao

Nmerosenteros

Byte

Enterobyte

3dgitos

Short

Enterocorto

5dgitos

Int

Entero

10dgitos

Long

Elnterolargo

19dgitos
Nmerosreales

Flota

Puntoflotante

Mximode10dgitos

Double

Puntoflotantededoblepresicin

Mximode19dgitos

Otrostipos

Char

Unsolocarcter

1carcterUnicode

Bolean

Unvalorbooleano

trueofalse

24

EnJava,cualquiernumricoconpuntoflotanteautomticamenteseconsidera
double.Paraqueseaconsideradofloatseagregaunaletra"f"o"F"alfinaldel
valor.
doubled=10.50
floatf=10.50F

Referencia.
Los arreglos, las clases y las interfaces son del tipo referencia. El valor de
unavariabledeltipo referencia esunadireccindeunconjuntodevalores
representadosporunavariable.
Las referencias en Java no son como en C++, stas son identificadores de
instanciasdealgunaclaseenparticular.
Ejemplo.

Stringcad//referenciaaunobjetodelaclaseString
Puntop//referenciaaunobjetodelaclasePunto
int[]var_arreglo//referenciaaunarreglodeenteros

2.2.7.Sentencia
Una instruccin o sentencia representa la tarea ms sencilla que se puede
realizarenunprograma.

Sentenciasdeexpresin
Los siguientes tipos de expresiones pueden ser hechas dentro de una
sentencia

terminando

la

expresin

con

punto

coma

():

25

*Expresionesdeasignacin
*Cualquierusodelosoperadores++y
* Llamadademtodos.
*Expresionesdecreacindeobjetos

Estaclasedesentenciassonllamadassentenciasdeexpresin.
Ejemplo.
valorA=8933.234//asignacin
valorA++//incremento
System.out.println(valorA)//llamadaaunmtodo
IntegerobjInt=newInteger(4)//creacindeobjetos

Sentenciasdedeclaracindevariables
Las sentencias de declaracin de variables se utilizan para declarar
variables.
Ejemplo:

int total
doubleprecio=8933.234
Stringdirec

.AlcanceyelTiempodeVidadelasVariables.

LosmbitosmsimportantesenJava sonaquellosdefinidos:

26

:Porunaclase
:Porunmtodo
:Porunbloque.
Eldeunaclaseloveremosmsadelante.
El mbito definido por un mtodo comienza con su llave de apertura y
termina con su llave de cierre. Toda variable u objeto declarado dentro de
unmtodo,serlocaladichomtodo.Sielmtodotieneparmetrosestos
tambin estn incluidos en el mbito del mtodo, por lo cual solo son
visiblesdentrodelmismo.
Javapermitequelasvariablesseandeclaradasdentrodecualquierbloque.
Unbloquecomienzaconunallave({)yfinalizanconunallavedecierre(}).
Cada vez que se crea un bloque esta creando un mbito, toda variable
declaradadentronoseraccesiblefueradeste.

Ejemplo:

classEjemplo{publicstaticvoidmain{
intx//conocidodentrodetodalaclase
x=10
if(x==10){//IniciaunNuevombito
inty=20
System.out.println(X=+x+Y=+y)
x=x*y
}
Y=x+100//ERRORyNOEXISTEENESTEAMBITO
System.out.println(X=+x)
}
}

27

Anda mungkin juga menyukai