java básico

26
Java básico “El propósito de este libro es poner a su disposición todo el lenguaje De programación Java, Habrá algunos paquetes de programación con los que disfrutará más que con otros, y espero que elija Java como plataforma de programación.” Todo sobre Java C era un lenguaje extremadamente popular entre los programadores y parecía que era el lenguaje de programación perfecto, combinando los mejores elementos de los lenguajes de bajo y alto nivel en un lenguaje de programación que se ajustaba a la arquitectura del ordenador y que gustaba a los programadores. Sin embargo, el lenguaje C tenía limitaciones. La programación orientada a objetos se hizo popular por ser capaz de dividir programas largos en unidades semi-autónomas. El lema de la programación orientada a objetos es "divide y vencerás".

Upload: blanca-daniel

Post on 17-Sep-2015

214 views

Category:

Documents


0 download

DESCRIPTION

...

TRANSCRIPT

Java bsicoEl propsito de este libro es poner a su disposicin todo el lenguajeDe 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 bytecodesLos 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 JavaLos 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/install-windows.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.html.

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 .lPara 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 mstarde en una subclase.boolean: Tipo de dato que slo puede tomar los valores verdadero ofalso.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 constructorthrow: 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 appEsta 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 compiladorLocalizar 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 JavaEl 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).