Sie sind auf Seite 1von 18

Java bsico

El propsito de este libro es poner a su disposicin todo el lenguaje


De programacin Java, Habr algunos paquetes de programacin
con los que disfrutar ms que con otros, y espero que elija Java
como plataforma de programacin.

Todo sobre Java


C era un lenguaje extremadamente popular entre los programadores
y pareca que era el lenguaje de programacin perfecto, combinando
los mejores elementos de los lenguajes de bajo y alto nivel en un
lenguaje de programacin que se ajustaba a la arquitectura del
ordenador y que gustaba a los programadores. Sin embargo, el
lenguaje C tena limitaciones.
La programacin orientada a objetos se hizo popular por ser capaz
de dividir programas largos en unidades semi-autnomas.
El lema de la programacin orientada a objetos es "divide y
vencers".
En otras palabras, un programa se puede dividir en partes fcilmente
identificables. Por ejemplo, supongamos que para mantener fresca la
comida utilizara un sistema complejo. Debera comprobar la
temperatura de la comida usando un termmetro, y cuando la
temperatura fuera lo suficientemente alta, activara un interruptor
que arrancara el compresor e hiciera funcionar las vlvulas para que
el fro circulara; luego arrancara un ventilador que moviera el aire.
Esa es una forma de hacerlo.

Cuando se aadi al lenguaje C la programacin orientada a objetos,


naci C++, y los programadores tuvieron un nuevo aliciente. C++
permite a los Programadores tratar grandes programas, y el cdigo
orientado a objetos Ayud a resolver tambin muchos de los otros
problemas. Como C++ soporta clases, los proveedores de software
pueden proporcionarle enormes libreras de clases, a partir de las
cuales se puede empezar a crear objetos.
Una de las libreras de clases de C++ ms populares es la librera
Microsoft Foundation Class (MFC) que viene con Visual C++ de
Microsoft, y en ella los programadores encontraron una mejora
tremenda respecto a los tiempos pasados.
Todo esto pareca fabuloso a los programadores, y C++ lleg muy
lejos. Pareca que el lenguaje de programacin perfecto haba
llegado. Qu poda haber mejor? Sin embargo, el mismo entorno de
programacin iba a verse sometido a un gran cambio con la
popularizacin de lo que equivale a un nuevo e inmenso entorno de
programacin: la red Internet. Y eso es lo que hizo que Java fuera
tan popular.

Orgenes del lenguaje Java


La primera versin de Java empez en 1991 y fue escrita en 18
meses en Sun Microsystems. En ese momento, ni siquiera se llam
Java; se llam Oak y se utiliz en Sun para uso interno.
La idea original para Oak era crear un lenguaje orientado a objetos
independiente de la plataforma. Lo que haba detrs de Oak era crear
algo que se pudiera usar en todos los ordenadores ( y ahora que Java
se ha hecho popular gracias a la red Internet, cada vez ms
corporaciones estn adoptndolo para uso interno en lugar de C++,
precisamente por esa razn).
El lanzamiento original de Oak no fue especialmente fascinante;
Sun quera crear un lenguaje que se pudiera usar en electrnica.
Oak pas a llamarse Java en 1995, cuando se lanz para el uso
pblico y supuso un xito casi inmediato. En ese momento, Java
haba adoptado un modelo que lo hizo perfecto para la red Internet,
el modelo bytecode.

Todo c'obre bytecodes


Los programas Java son compilados creando bytecodes compactos y
son estos bytecodes lo que JVM lee e interpreta para ejecutar el
programa. Cuando descarga una Applet Java de la red Internet, lo
que realmente est descargando es un archivo de bytecodes. De esta
forma, su programa Java puede ser muy pequeo, ya que todo el
cdigo mquina necesaria para ejecutarlo est ya en el ordenador de
destino y no tiene que descargarse.

Utilizar bytecodes significa que los programas Java son muy


compactos, lo que les hace ideales para descargarlos en la red
Internet. Y otra ventaja a la hora de ejecutar tales programas con
JVM, mayor que la descarga de programas, es la seguridad.

Programas Java
Los programas Java son de dos tipos principales:
aplicaciones y applets.
Las applets son programas Java que pueden descargarse y
ejecutarse como parte de una pgina Web, y son las que han
hecho que Java sea tan popular.

Adems de applets descargables, Java soporta aplicaciones que estn


diseadas para ejecutarse localmente. Las aplicaciones Java
funcionan como otras aplicaciones de ordenador, puede instalarlas y

ejecutarlas en el suyo. Al estar instaladas localmente en vez de ser


descargadas con una pgina Web, las aplicaciones tienen ms
privilegios que las applets, como es la capacidad para leer y escribir
archivos.
Las aplicaciones Java pueden ser grficas? Realmente pueden
serlo, y de hecho, la mayora de ellas lo son. En este caso, la
aplicacin es responsable de arrancar su propia ventana (el
visualizador de applets lo har).

Es Java 2 o Java 1.2?


El paquete actual de Java, que ser el que usemos, Java
Development Kit (JDK), que incluye el compilador Java,
JVM y otras utilidades, se llama oficialmente Java 2 JDK,
versin 1.2. Por lo tanto, aunque me referir a la versin
actual de Java como Java 2, ver an referencias a la versin
1.2.

Adquirir e instalar Java


Es hora de descargar e instalar Java, lo que significa
descargar Java Development Kit (JDK), que est disponible
en http://java.sun.com/products/jdW1.21

Las instrucciones de instalacin en Windows


estn en:
http://java.sun.comlproducts/jdW1.2/installwindows.html

Qu ocurre con CLASSPATH?


La variable CLASSPATH, como veremos pronto en este captulo,
dice a Java donde encontrar los archivos bytecode compilados, tanto
los que cre como los del sistema que vienen con JDK.
CLASSPATH ha sido el foco de grandes confusiones al trabajar con
Java y estoy contento de decir que Cun ha facilitado las cosas.

Cuando instale JDK, ya no tiene que preocuparse de poner la


variable CLASSPATH, porque JDK sabr dnde buscar sus propias
libreras. Sin embargo, si quiere buscar otros archivos bytecode
creados al compilar un archivo, tendr que poner la variable
CLASSPATH.

Cules son las novedades de Java 1.1?


El mayor cambio entre Java 1 .O y 1.1 fue la forma en que los
programas Java gestionaban los eventos.
Un evento ocurre cuando el usuario ejecuta alguna accin
significativa en la interfaz de usuario, como pulsar un botn, mover
el ratn o pulsar una tecla.
Cambios en java 1.1:
Mejoras en Abstract Windowing Toolkit (AWT). Java 1 .l soportaba
la impresin, ms rapidez en los desplazamientos, mens
emergentes, el portapapeles, un modelo de eventos basado en la
delegacin, mejoras en las imgenes y grficos y ms temas.

-Archivos JAR. Los archivos JAR (archivo Java) permiten


empaquetar Un nmero de archivos, comprimindolos para reducir
su tamao y Permitiendo la descarga de muchos archivos a la vez.
-Internacionalizacin. Se pueden desarrollar applets locales,
utilizando caracteres UNICODE, mecanismo local, soporte de
mensajes locales, fecha sensible a la localidad, hora, zona horaria y
ms.
-JavaBeans. Son componentes Java que pueden conectarse con
otros programas Java. Es una nueva caracterstica muy potente.

-Clases internas. Hay clases encerradas en otras clases y el uso de


las Clases internas hace que sea ms fcil crear clases adaptadoras.
Una clase adaptadora es una clase que implementa una interfaz que
es requerida por un API (interfaz de programacin de aplicaciones).

La mayora de los mtodos de Java 1.0 han quedado obsoletos con


Java 1.1, y estn marcados como censurados en la documentacin de
Java 1.1

Qu est censurado en Java 1.1?


La mayor parte de las caractersticas de Java 1 .O se censuraron en
Java 1.1, Puede encontrar una lista de todo lo que se censur en Java
1.1 en:
http://java.sun.com/products/jdW1.11docs/relnotes/deprecatedlist.ht
ml.

Cules son las novedades de Java 2?


-Mejoras en la seguridad. Ahora, cuando el cdigo est cargado, se
asignan permisos basndose en las polticas de seguridad que
actualmente tienen efecto.
-Java 2D (JFC). El API Java 2D es un conjunto de clases para
grficos 2D e imgenes. Engloba el conjunto de lneas, texto e
imgenes en un modelo sencillo y extenso.

-Framework de extensiones Java. Las extensiones son paquetes de


clases Java que los desarrolladores de aplicaciones pueden usar para
heredar el ncleo de la plataforma Java. El mecanismo de herencia
permite que la mquina virtual de Java (JVM) utilice las clases
heredadas de la misma forma que JVM utiliza las clases del sistema.
-Framework para las entradas. Permite que todos los componentes
de los editores de texto reciban textos en japons, chino o coreano a
travs de los mtodos estndar de entrada.
-Objetos referencia. Un objeto referencia encapsula una referencia a
algn otro objeto para que la referencia, por s misma, pueda ser
examinada y manipulada como cualquier otro objeto.
-Mejoras en el audio. Las mejoras en el audio incluyen una nueva
mquina de sonido y soporte para el audio en aplicaciones y
enapplets.
-Mejoras en JAR. Estas mejoras incluyen la funcionalidad aadida a
la herramienta JAR de la lnea de comandos para crear y actualizar
archivos JAR firmados.
En Java 2 tambin es nuevo el Javaplug-in. Este software es un
producto que permite a los usuarios dirigir applets de Java o
componentes JavaBeans para que se ejecuten en el entorno Java
(JRE) de Sun, en lugar del entorno de ejecucin del navegador Web
que viene por defecto con Java.

Qu se censur en Java 2?
Uno de los cambios ms importantes de Java 2 es que no se trabaja
con hilos como se haca en Java 1 .l
Para una lista completa de lo que se ha censurado en Java 2, ir a
C:\jdk1.2.2\docs\api\deprecated-list.htm1

Escribir cdigo: conocer las palabras


reservadas de Java
Cuando est escribiendo cdigo Java, debera saber que Java reserva
ciertas palabras clave como parte del lenguaje.
abstract: Especifica la clase o mtodo que se va a
implementar ms
tarde en una subclase.
boolean: Tipo de dato que slo puede tomar los valores
verdadero o
falso.
break: Sentencia de control para salirse de los bucles.
byte: Tipo de dato que soporta valores en 8 bits.
byvalue: Reservada para uso futuro.
case: Se utiliza en las sentencias switch para indicar bloques
de texto.
cast: Reservada para uso futuro.
catch: Captura las excepciones generadas por las sentencias
try.char: Tipo de dato que puede soportar caracteres Unicode
sin signo en 16 bits.

class: Declara una clase nueva.


const: Reservada para uso futuro.
continue: Devuelve el control a la salida de un bucle.
default: Indica el bloque de cdigo por defecto en una
sentencia switch.
do: Inicia un bucle do-while.
double: Tipo de dato que soporta nmeros en coma flotante,
64 bits.
else: Indica la opcin alternativa en una sentencia if.
extends: Indica que una clase es derivada de otra o de una
interfaz.
Final: Indica que una variable soporta un valor constante o
que un mtodo no se sobrescribir.
finally: Indica un bloque de cdigo en una estructura try catch que siempre se ejecutar.
Flota: Tipo de dato que soporta un nmero en coma flotante
en 32 bits.
for: Utilizado para iniciar un bucle for.
future: Reservada para uso futuro.
generic: Reservada para uso futuro.
goto: Reservada para uso futuro.
if: Evala si una expresin es verdadera o falsa y la dirige
adecuadamente.
Implements: Especifica que una clase implementa una
interfaz.
import: Referencia a otras clases.
inner: Reservada para uso futuro.
instanceof: Indica si un objeto es una instancia de una clase
especfica o Implementa una interfaz especfica.
int: Tipo de dato que puede soportar un entero con signo de
32 bits.
Interface: Declara una interfaz.
long: Tipo de dato que soporta un entero de 64 bits.
native: Especifica que un mtodo est implementado con
cdigo nativo (Especfico de la plataforma).

new: Crea objetos nuevos.


null: Indica que una referencia no se refiere a nada.
operator: Reservado para uso futuro. .
outer: Reservado para uso futuro.
package: Declara un paquete Java.
private: Especificador de acceso que indica que un mtodo o
variable slo puede ser accesible desde la clase en la que
est declarado.
protected: Especificador de acceso que indica que un
mtodo o variable slo puede ser accesible desde la clase en
la que est declarado (o una subclase de la clase en la que
est declarada u otras clases del mismo Paquete).
public: Especificador de acceso utilizado para clases,
interfaces, mtodos y variables que indican que un tema es
accesible desde la aplicacin (o desde donde la clase defina
que es accesible).
rest: Reservada para uso futuro.
return: Enva control y posiblemente devuelve un valor desde
el mtodo que fue invocado.
short: Tipo de dato que puede soportar un entero de 16 bits.
static: Indica que una variable o mtodo es un mtodo de
una clase (ms que estar limitado a un objeto particular).
super: Se refiere a una clase base de la clase (utilizado en
un mtodo o constructor de clase).
switch: Sentencia que ejecuta cdigo basndose en un valor.
synchronized: Especifica secciones o mtodos crticos de
cdigo multihilo.
this: Se refiere al objeto actual en un mtodo o constructor
throw: Crea una excepcin.
throws: Indica qu excepciones puede proporcionar un
mtodo.
transient: Especifica que una variable no es parte del estado
persistente de un objeto.
try: Inicia un bloque de cdigo que es comprobado para las
excepciones.

var: Reservado para uso futuro.


void: Especifica que un mtodo no devuelve ningn valor.
volatile: Indica que una variable puede cambiar de forma
asncrona.
while: Inicia un bucle while.

public class app


Esta es la primera lnea de app-java:
public class a99
{
Esta lnea indica que estamos creando una clase de Java
nueva llamada app. Despus de que esta clase la
transformemos en bytecodes, la mquina virtual de Java
podr crear objetos de esta clase y ejecutarlos. Este cdigo
es slo para empezar con la programacin Java.
La palabra public es un especificador de acceso.
El especificador de acceso public indica que esta clase est
disponible en cualquier parte del programa que la utilice.

Si construye una clase pblica, Java le obliga a dar un


nombre al archivo. Es decir, slo puede tener una clase
pblica en un archivo con extensin ".javaWL. A razn de
esto es que el compilador de Java traduce el archivo de
extensin ".javan en un archivo bytecode con la extensin
".class", lo que significa que app'java se convertir en
app.class, y si JVM necesita la clase app, sabr cmo mirar
en el archivo app.class.

public static void main[String[] args)


Esta es la siguiente lnea de cdigo de nuestra aplicacin:
public class app
{
public static void main(String[l arga)
{
}
}
Aqu estamos creando un mtodo de la clase app. Un mtodo
en la programacin orientada a objetos es como una funcin
o subrutina en la programacin estndar, un bloque de cdigo
al que se le puede pasar el control y que puede devolver un
valor.
Main es el mtodo que la mquina virtual de Java busca
cuando inicia una aplicacin.
El mtodo main debe declararse con el especificador de
acceso public, lo que quiere decir que puede ser llamado
desde fuera de su clase.
main es un mtodo de una clase, no un mtodo de un objeto.
Cuando se termine de ejecutar, no debe devolver ningn
valor, por lo cual usamos la palabra void en este cdigo
(En otras palabras, un valor de retorno de tipo void significa
que actualmente no devuelve valor).

La palabra main: String[] args. Aparece una lista de


argumentos entre parntesis en la declaracin de un mtodo
para indicar que los valores se le pasan al mtodo y que el
cdigo del mtodo puede usarlo. En este caso, estamos
indicando que a main se le pasa un array cuyos elementos
son cadenas de caracteres, llamado args. Estos elementos
son valores que se pasan desde la lnea de comandos
cuando se inicia la aplicacin; por ejemplo, si escribe 'Ijava
app Hola ah", entonces "Hola" y "ah" seran las dos cadenas
del array args.

Conocimientos bsicos: importando paquetes y


clases Java
Las clases que Sun ha creado estn almacenadas en
libreras de clases llamadas "paquetes". Para que una clase
de un paquete est disponible en su cdigo, tiene que
importar el paquete, lo que quiere decir que el compilador
Localizar ese paquete para esas clases.
El compilador automticamente importa el paquete java.lang,
pero para usar el resto de las clases que vienen con Java
tendr que hacer la importacin con la instruccin import.
import [paquetel[.paquete2 ... ].]-(nombre de clase[*);

Diseo de programas Java


El diseo de los programas en Java no es tarea fcil. Un buen
diseo de programacin involucra muchos aspectos.
Uno de los aspectos ms importantes de la creacin de una
nueva aplicacin es disearla. Si no se selecciona bien puede
que sea necesario hacer muchas revisiones del producto.

Se dividen en cuatro reas:


-Rendimiento. Responsabilidad y optimizacin global de la
velocidad y USO de recursos.
-Mantenimiento. Capacidad de la aplicacin para ser mantenida
fcilmente.
-Extensibilidad. Capacidad de la aplicacin para ser extendida de
formas bien definidas.
-Disponibilidad. Robustez de la implementacin de la aplicacin y
disponibilidad para su uso.

Rendimiento
El rendimiento es un tema de diseo que es duro de argumentar. Si
los usuarios no consiguen lo que quieren con su aplicacin, esto se
convierte claramente un problema.
El rendimiento depende de las necesidades de los usuarios. Para
algunas personas, la velocidad es esencial; para otros, la robustez o
el uso eficiente de los recursos es lo que estn buscando.
He aqu algunos aspectos generales de rendimiento que debera
considerar cuando escriba programas Java:

-Eficiencia del algoritmo


-Velocidad de CPU
-Diseo y normalizacin eficiente de base de datos
-Limitacin de accesos externos
-Velocidad de la red
-Temas de seguridad
-USO de recursos
-Velocidad de acceso a la Web

Mantenimiento
El mantenimiento es la medida de lo fcilmente que puede adaptarse
su Aplicacin a necesidades futuras.
Buena parte de esto es de sentido comn, simplemente tener en
mente las necesidades de codificacin futura al escribir el cdigo.
Algunos puntos de la "programacin ptima" son los siguientes:
-Evitar el uso de bucles y condicionales anidados.
-Evitar el paso de variables globales a procedimientos
-Ser modular cuando se escribe el cdigo.
-Dividir el cdigo en paquetes.
-Documentar los cambios de programa.
-Dar a cada procedimiento un nico propsito.
-Asegurarse de que la aplicacin puede extenderse sin problemas a
ms tareas y mayor nmero de usuarios.
-Planificar la reutilizacin de cdigo.
-Programar de forma defensiva.
-Uso de procedimientos para el acceso a datos sensibles.
-Uso de comentarios.
-Uso de nombres de variables consistentes.
-Uso de constantes en lugar de nmeros "mgicos".

Extensibilidad
La extensibilidad es la capacidad de la aplicacin para extenderse de
una forma bien definida y relativamente fcil. De hecho, Java, en s
mismo, est diseado para ser extendido, usando el framework de
extensiones Java.

Disponibilidad
La disponibilidad es medir del tiempo que la aplicacin puede
utilizarse, en comparacin con el tiempo que los usuarios quieren
utilizarla. Esto lo incluye todo, desde que no se quede congelada
cuando se ejecuta una tarea larga hasta trabajar con tcnicas y
mtodos que no se cuelguen.

Distribucin del programa Java


Para que los usuarios ejecuten sus programas, necesitarn tener un
entorno de ejecucin Java en sus sistemas. El JDK de Java 2
contiene un entorno de ejecucin, por lo que los usuarios podran
usar su programa si lo tuvieran instalado.
-En Windows, el instalador JRE instala automticamente java y
javaw en la ruta de acceso del sistema operativo, lo que significa que
no tiene que preocuparse de encontrar los lanzadores para iniciar la
aplicacin (es decir, no tiene que dar instrucciones a los usuarios
para que establezcan las rutas de acceso en sus sistemas).

Das könnte Ihnen auch gefallen