⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java1.htm

📁 E-books about Java Programing in Spanish
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<HTML>
<HEAD>
<TITLE>Java desde Cero</TITLE>

<META NAME="GENERATOR" CONTENT="Internet Assistant for Microsoft Word 2.0z">
</HEAD>
<BODY background=.gif  TEXT=000000 LINK=FF0000 VLINK=A62A2A>
<H1>Java desde Cero<BR>
</H1>
<P>
Con &eacute;sta comienzo una serie de notas sobre Java, especialmente
para aquellos que quieren comenzar a conocerlo y usarlo. Esto
se origin&oacute; en un inter&eacute;s que surgi&oacute; en algunos
de los suscriptores del mailing list de desarrolladores de web,
y que pongo a disposici&oacute;n tambi&eacute;n del de webmasters.
<P>
Seguramente muchos de ustedes sabr&aacute;n mucho m&aacute;s sobre
Java que yo, y les agradecer&eacute; todo tipo de comentarios
o correcciones.
<P>
La idea es dar una gu&iacute;a ordenada para el estudio de este
lenguaje, muy poderoso y de gran coherencia, aunque todav&iacute;a
adolece de algunas limitaciones que seguramente se ir&aacute;n
superando con el tiempo.
<H2>Qu&eacute; es Java</H2>
<P>
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).
<P>
Java es un lenguaje:
<UL>
<LI>de objetos
<LI>independiente de la plataforma
</UL>
<P>
Algunas caracter&iacute;sticas notables:
<UL>
<LI>robusto
<LI>gestiona la memoria autom&aacute;ticamente
<LI>no permite el uso de t&eacute;cnicas de programaci&oacute;n
inadecuadas
<LI>multithreading
<LI>cliente-servidor
<LI>mecanismos de seguridad incorporados
<LI>herramientas de documentaci&oacute;n incorporadas
</UL>
<H2>Lenguaje de Objetos</H2>
<P>
Por qu&eacute; puse &quot;de&quot; objetos y no &quot;orientado
a&quot; 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.
<H3>Qu&eacute; es un objeto? </H3>
<P>
Bueno, se puede decir que todo puede verse como un objeto. Pero
seamos m&aacute;s claros. Un objeto, desde nuestro punto de vista,
puede verse como una pieza de software que cumple con ciertas
caracter&iacute;sticas:
<UL>
<LI>encapsulamiento
<LI>herencia
</UL>
<P>
Encapsulamiento significa que el objeto es auto-contenido, o sea
que la misma definici&oacute;n del objeto incluye tanto los datos
que &eacute;ste usa (<I>atributos</I>) como los procedimientos
(<I>m&eacute;todos</I>) que act&uacute;an sobre los mismos.
<P>
Cuando se utiliza programaci&oacute;n orientada a objetos, se
definen <I>clases</I> (que definen objetos gen&eacute;ricos) y
la forma en que los objetos interact&uacute;an entre ellos, a
trav&eacute;s de <I>mensajes</I>. Al crear un objeto de una clase
dada, se dice que se crea una <I>instancia</I> de la clase, o
un objeto propiamente dicho. Por ejemplo, una clase podr&iacute;a
ser &quot;autos&quot;, y un auto dado es una <I>instancia</I>
de la clase.
<P>
La ventaja de esto es que como no hay programas que act&uacute;en
modificando al objeto, &eacute;ste se mantiene en cierto modo
independiente del resto de la aplicaci&oacute;n. Si es necesario
modificar el objeto (por ejemplo, para darle m&aacute;s capacidades),
esto se puede hacer sin tocar el resto de la aplicaci&oacute;n&#133;
lo que ahorra mucho tiempo de desarrollo y debugging! En Java,
inclusive, <I>ni siquiera existen las variables globales</I>!
(Aunque parezca dif&iacute;cil de aceptar, esto es una gran ventaja
desde el punto de vista del desarrollo).
<P>
En cuanto a la herencia, simplemente significa que se pueden crear
nuevas clases que hereden de otras preexistentes; esto simplifica
la programaci&oacute;n, porque las clases hijas incorporan autom&aacute;ticamente
los m&eacute;todos de las madres. Por ejemplo, nuestra clase &quot;auto&quot;
podr&iacute;a heredar de otra m&aacute;s general, &quot;veh&iacute;culo&quot;,
y simplemente redefinir los m&eacute;todos para el caso particular
de los autom&oacute;viles&#133; lo que significa que, con una
buena biblioteca de clases, se puede reutilizar mucho c&oacute;digo
inclusive sin saber lo que tiene adentro.<BR>
<BR>
<H3>Un ejemplo simple</H3>
<P>
Para ir teniendo una idea, vamos a poner un ejemplo de una clase
Java: <BR>
<PRE>
<FONT SIZE=2>public class Muestra extends Frame {
// atributos de la clase
Button si;
Button no;
// m&eacute;todos de la clase:
public Muestra () {
Label comentario = new Label(&quot;Presione un bot&oacute;n&quot;, Label.CENTER);
si = new Button(&quot;S&iacute;&quot;);
no = new Button(&quot;No&quot;);
add(&quot;North&quot;, comentario);
add(&quot;East&quot;, si);
add(&quot;West&quot;, no);
}
}<BR>
</FONT>
</PRE>
<P>
Esta clase no est&aacute; muy completa as&iacute;, pero da una
idea&#133; Es una clase heredera de la clase <I>Frame</I> (un
tipo de ventana) que tiene un par de botones y un texto. Contiene
dos atributos (&quot;si&quot; y &quot;no&quot;), que son dos objetos
del tipo <I>Button</I>, y un &uacute;nico m&eacute;todo llamado
Muestra (igual que la clase, por lo que es lo que se llama un
<I>constructor</I>).
<H2>Independiente de la plataforma</H2>
<P>
Esto es casi del todo cierto&#133; 
<P>
En realidad, Java podr&iacute;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&#133;).
<P>
C&oacute;mo es esto? Porque en realidad Java es un lenguaje interpretado&#133;
al menos en principio.
<P>
Al compilar un programa Java, lo que se genera es un seudoc&oacute;digo
definido por Sun, para una m&aacute;quina gen&eacute;rica. Luego,
al correr sobre una m&aacute;quina dada, el software de ejecuci&oacute;n
Java simplemente interpreta las instrucciones, emulando a dicha
m&aacute;quina gen&eacute;rica. Por supuesto esto no es muy eficiente,
por lo que tanto Netscape como Hotjava o Explorer, al ejecutar
el c&oacute;digo por primera vez, lo van compilando (mediante
un <I>JIT</I>: <I>J</I>ust <I>I</I>n <I>T</I>ime compiler), de
modo que al crear por ejemplo la segunda instancia de un objeto
el c&oacute;digo ya est&eacute; compilado espec&iacute;ficamente
para la m&aacute;quina hu&eacute;sped.
<P>
Adem&aacute;s, Sun e Intel se han puesto de acuerdo para desarrollar
procesadores que trabajen directamente en Java, con lo que planean
hacer m&aacute;quinas muy baratas que puedan conectarse a la red
y ejecutar aplicaciones Java cliente-servidor a muy bajo costo.
<P>
El lenguaje de dicha m&aacute;quina gen&eacute;rica es p&uacute;blico,
y si uno quisiera hacer un int&eacute;rprete Java para una Commodore
s&oacute;lo tendr&iacute;a que implementarlo y pedirle a Sun la
aprobaci&oacute;n (para que verifique que cumple con los requisitos
de Java en cuanto a c&oacute;mo interpreta cada instrucci&oacute;n,
la seguridad, etc.)
<H2>Algunas caracter&iacute;sticas&#133;</H2>
<P>
Entre las caracter&iacute;sticas que nombramos nos referimos a
la robustez. Justamente por la forma en que est&aacute; dise&ntilde;ado,
Java no permite el manejo directo del hardware ni de la memoria
(inclusive no permite modificar valores de punteros, por ejemplo);
de modo que se puede decir que es virtualmente imposible colgar
un programa Java. El int&eacute;rprete siempre tiene el control.
<P>
Inclusive el compilador es suficientemente inteligente como para
no permitir un mont&oacute;n de cosas que podr&iacute;an traer
problemas, como usar variables sin inicializarlas, modificar valores
de punteros directamente, acceder a m&eacute;todos o variables
en forma incorrecta, utilizar herencia m&uacute;ltiple, etc.
<P>
Adem&aacute;s, Java implementa mecanismos de seguridad que limitan
el acceso a recursos de las m&aacute;quinas donde se ejecuta,
especialmente en el caso de los Applets (que son aplicaciones
que se cargan desde un servidor y se ejecutan en el cliente).
<P>
Tambi&eacute;n est&aacute; dise&ntilde;ado espec&iacute;ficamente
para trabajar sobre una red, de modo que incorpora objetos que
permiten acceder a archivos en forma remota (via URL por ejemplo).
<P>
Adem&aacute;s, con el JDK (Java Development Kit) vienen incorporadas
muchas herramientas, entre ellas un generador autom&aacute;tico
de documentaci&oacute;n que, con un poco de atenci&oacute;n al
poner los comentarios en las clases, crea inclusive toda la documentaci&oacute;n

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -