Programacion En Java
Enviado por DGNoriegaAlvarez • 1 de Noviembre de 2013 • 1.662 Palabras (7 Páginas) • 333 Visitas
Java desde Cero
Con ésta comienzo una serie de notas sobre Java, especialmente para aquellos que quieren comenzar a
conocerlo y usarlo. Esto se originó en un interés que surgió en algunos de los suscriptores del mailing list de
desarrolladores de web, y que pongo a disposición también del de webmasters.
Seguramente muchos de ustedes sabrán mucho más sobre Java que yo, y les agradeceré todo tipo de
comentarios o correcciones.
La idea es dar una guía ordenada para el estudio de este lenguaje, muy poderoso y de gran coherencia, aunque
todavía adolece de algunas limitaciones que seguramente se irán superando con el tiempo.
Qué es Java
Java es un lenguaje originalmente desarrollado por un grupo de ingenieros de Sun, utilizado por Netscape
posteriormente como base para Javascript. Si bien su uso se destaca en el Web, sirve para crear todo tipo de
aplicaciones (locales, intranet o internet).
Java es un lenguaje:
· de objetos
· independiente de la plataforma
Algunas características notables:
· robusto
· gestiona la memoria automáticamente
· no permite el uso de técnicas de programación inadecuadas
· multithreading
· cliente-servidor
· mecanismos de seguridad incorporados
· herramientas de documentación incorporadas
Lenguaje de Objetos
Por qué puse "de" objetos y no "orientado a" objetos? Para destacar que, al contrario de otros lenguajes como
C++, no es un lenguaje modificado para poder trabajar con objetos sino que es un lenguaje creado para
trabajar con objetos desde cero. De hecho, TODO lo que hay en Java son objetos.
Qué es un objeto?
Bueno, se puede decir que todo puede verse como un objeto. Pero seamos más claros. Un objeto, desde
nuestro punto de vista, puede verse como una pieza de software que cumple con ciertas características:
· encapsulamiento
· herencia
Encapsulamiento significa que el objeto es auto-contenido, o sea que la misma definición del objeto incluye
tanto los datos que éste usa (atributos) como los procedimientos (métodos) que actúan sobre los mismos.
Cuando se utiliza programación orientada a objetos, se definen clases (que definen objetos genéricos) y la
forma en que los objetos interactúan entre ellos, a través de mensajes. Al crear un objeto de una clase dada, se
dice que se crea una instancia de la clase, o un objeto propiamente dicho. Por ejemplo, una clase podría ser
"autos", y un auto dado es una instancia de la clase.
La ventaja de esto es que como no hay programas que actúen modificando al objeto, éste se mantiene en
cierto modo independiente del resto de la aplicación. Si es necesario modificar el objeto (por ejemplo, para
darle más capacidades), esto se puede hacer sin tocar el resto de la aplicación… lo que ahorra mucho tiempo
http://www.librosgratis.org
Página 4
de desarrollo y debugging! En Java, inclusive, ni siquiera existen las variables globales! (Aunque parezca
difícil de aceptar, esto es una gran ventaja desde el punto de vista del desarrollo).
En cuanto a la herencia, simplemente significa que se pueden crear nuevas clases que hereden de otras
preexistentes; esto simplifica la programación, porque las clases hijas incorporan automáticamente los
métodos de las madres. Por ejemplo, nuestra clase "auto" podría heredar de otra más general, "vehículo", y
simplemente redefinir los métodos para el caso particular de los automóviles… lo que significa que, con una
buena biblioteca de clases, se puede reutilizar mucho código inclusive sin saber lo que tiene adentro.
Un ejemplo simple
Para ir teniendo una idea, vamos a poner un ejemplo de una clase Java:
public class Muestra extends Frame {
// atributos de la clase
Button si;
Button no;
// métodos de la clase:
public Muestra () {
Label comentario = new Label("Presione un botón", Label.CENTER);
si = new Button("Sí");
no = new Button("No");
add("North", comentario);
add("East", si);
add("West", no);
}}
Esta clase no está muy completa así, pero da una idea… Es una clase heredera de la clase Frame (un tipo de
ventana) que tiene un par de botones y un texto. Contiene dos atributos ("si" y "no"), que son dos objetos del
tipo Button, y un único método llamado Muestra (igual que la clase, por lo que es lo que se llama un
constructor).
Independiente de la plataforma
Esto es casi del todo cierto…
En realidad, Java podría hacerse correr hasta sobre una Commodore 64! La realidad es que para utilizarlo en
todo su potencial, requiere un sistema operativo multithreading (como Unix, Windows95, OS/2…).
Cómo es esto? Porque en realidad Java es un lenguaje interpretado… al menos en principio.
Al compilar un programa Java, lo que se genera es un seudocódigo definido por Sun, para una máquina
genérica. Luego, al correr sobre una máquina dada, el software de ejecución Java simplemente interpreta las
instrucciones, emulando a dicha máquina genérica. Por supuesto esto no es muy eficiente, por lo que tanto
Netscape como Hotjava o Explorer, al ejecutar el código por primera vez, lo van compilando (mediante un
JIT: Just In Time compiler), de modo que al crear por ejemplo la segunda instancia de un objeto el código ya
esté compilado específicamente para la máquina huésped.
Además, Sun e Intel se han puesto de acuerdo para desarrollar procesadores que trabajen directamente en
Java, con lo que planean hacer máquinas muy baratas que puedan conectarse a la red y ejecutar aplicaciones
Java cliente-servidor a muy bajo costo.
El lenguaje de dicha máquina genérica es público, y si uno quisiera hacer un intérprete Java para una
Commodore sólo tendría que implementarlo y pedirle a Sun la aprobación (para que verifique que cumple con
los requisitos de Java en cuanto a cómo interpreta cada instrucción, la seguridad, etc.)
Algunas características…
Entre las características que nombramos nos referimos a la robustez. Justamente por la forma en que está
diseñado, Java no permite el manejo directo del hardware ni de la memoria (inclusive no permite modificar
http://www.librosgratis.org
Página 5
...