You are on page 1of 21

Diagrama de clases

Ejemplo de diagrama de clases de una Universidad.

Un diagrama de clases es un tipo de diagrama esttico que describe la estructura de un sistema mostrando sus clases, atributos y las relaciones entre ellos. Los diagramas de clases son utilizados durante el proceso de anlisis y diseo de los sistemas, donde se crea el diseo conceptual de la informacin que se manejar en el sistema, y los componentes que se encargaran del funcionamiento y la relacin entre uno y otro. Representacin de: - Requerimientos en entidades y actuaciones. - La arquitectura conceptual de un dominio - Soluciones de diseo en una arquitectura - Componentes de software orientados a objetos

[editar]Definiciones

Propiedades tambin llamados atributos o caractersticas, son valores que corresponden a un objeto, como color, material, cantidad, ubicacin. Generalmente se conoce como la informacin detallada del objeto. Suponiendo que el objeto es una puerta, sus propiedades seran: la marca, tamao, color y peso.

Operaciones comnmente llamados mtodos, son aquellas actividades o verbos que se pueden realizar con/para este objeto, como por ejemplo abrir, cerrar, buscar, cancelar, acreditar, cargar. De la misma manera que el nombre de un atributo, el nombre de una operacin se escribe con minsculas si consta de una sola palabra. Si el nombre contiene ms de una palabra, cada palabra

ser unida a la anterior y comenzar con una letra mayscula, a excepcin de la primera palabra que comenzar en minscula. Por ejemplo: abrirPuerta, cerrarPuerta, buscarPuerta, etc.

Interfaz es un conjunto de operaciones que permiten a un objeto comportarse de cierta manera, por lo que define los requerimientos mnimos del objeto. Hace referencia apolimorfismo.

Herencia se define como la reutilizacin de un objeto padre ya definido para poder extender la funcionalidad en un objeto hijo. Los objetos hijos heredan todas las operaciones y/o propiedades de un objeto padre. Por ejemplo: Una persona puede especializarse en Proveedores, Acreedores, Clientes, Accionistas, Empleados; todos comparten datos bsicos como una persona, pero adems cada uno tendr informacin adicional que depende del tipo de persona, como saldo del cliente, total de inversin del accionista, salario del empleado, etc.

Al disear una clase se debe pensar en cmo se puede identificar un objeto real, como una persona, un transporte, un documento o un paquete. Estos ejemplos de clases de objetos reales, es sobre lo que un sistema se disea. Durante el proceso del diseo de las clases se toman las propiedades que identifican como nico al objeto y otras propiedades adicionales como datos que corresponden al objeto. Con los siguientes ejemplos se definen tres objetos que se incluyen en un diagrama de clases:

Ejemplo 1: Una persona tiene nmero de documento de identificacin, nombres, apellidos, fecha de nacimiento, gnero, direccin postal, posiblemente tambin tenga nmero de telfono de casa, del mvil, FAX y correo electrnico. Ejemplo 2: Un sistema informtico puede permitir administrar la cuenta bancaria de una persona, por lo que tendr un nmero de cuenta, nmero de identificacin del propietario de la cuenta, saldo actual, moneda en la que se maneja la cuenta. Ejemplo 3: Otro objeto pueden ser "Manejo de Cuenta", dnde las operaciones bancarias de una cuenta (como en el ejemplo 2) se manejarn realizando diferentes operaciones que en el diagrama de clases de balurdes slo se representan como operaciones, que pueden ser:

Abrir Cerrar Depsito Retiro Acreditar Intereses

Estos ejemplos constituyen diferentes clases de objetos que tienen propiedades y/u operaciones que contienen un contexto y un dominio, los primeros dos ejemplos son clases de datos y el tercero clase de lgica de negocio, dependiendo de quin disee el sistema se pueden unir los datos con las operaciones. El diagrama de clases incluye mucha ms informacin como la relacin entre un objeto y otro, la herencia de propiedades de otro objeto, conjuntos de operaciones/propiedades que son implementadas para una interfaz grfica.

8. DIAGRAMAS DE CLASES 18 de marzo de1999 Son los diagramas ms comunes en el modelado de sistemas orientados a objetos. Un diagrama de clase muestra un conjunto de clases, interfaces, y colaboraciones y sus relaciones entre ellos. Los diagramas de clase se usan en el diseo del modelo esttico para ver un sistema. Para las dems partes, este modelado involucra el vocabulario del sistema, el modelado de colaboraciones, o modelado de esquemas. Los diagramas de clase son tambin la base para un par de diagramas relacionados: Diagramas de Componente y Diagramas de Instalacin(Deployment). Los diagramas de clase son importantes no solo para la visualizacin, especificacin y documentacin del modelo estructural, pero tambin para la construccin de sistemas ejecutables. Ingeniera hacia adelante e ingeniera inversa. La construccin de software tiene muchas caractersticas similares, excepto, que la calidad(Fluidez) de software, uno tiene la habilidad de definir la construccin de bloques bsicos para ir detallando(scratch). UML, usa los diagramas de clase para visualizar el aspecto esttico de esa construccin de bloques y sus relaciones y especificar esos detalles para la construccin, que se puede ver en la fig. 8-1.

Trminos y Conceptos. Un diagrama de clases muestra un conjunto de clases, interfaces, y colaboraciones y sus relaciones. Grficamente un diagrama de clase es una coleccin de vrtices y arcos. Propiedades comunes: Un diagramas de clase es justo un tipo especial de diagrama y comparte propiedades comunes al igual que todos los otros diagramas -un nombre y un contenido grfico son una proyeccin dentro de un modelo. Contenido. Un diagrama de clases comnmente con tiene lo siguiente:

Clases Interfaces Colaboraciones Dependencia Generalizacin Relaciones de asociacin

Los otros diagramas de clase pueden contener notas y restricciones. Los diagramas de clase pueden tambin contener paquetes o subsistemas ambos de los cuales son usados para agrupar elementos de su modelo. Algunas veces se quieren instancias de lugar en el diagrama de clases, como tambin especialmente cuando se quiere visualizar el tipo de una instancia(posibilidad dinmica). Usos comunes: - Modelado del diseo esttico de un sistema. Esta vista en primer lugar soporta los requerimientos funcionales de un sistema - el servicio del sistema debera de proveer este a los usuarios finales. Para el modelo de diseo esttico de la vista de un sistema, tpicamente se usan diagramas de clases en alguna de estas tres alternativas: 1. Modelo del vocabulario de un sistema. El modelo del vocabulario de un sistema involucra tomar decisiones acerca de las cuales son parte del sistema y cuales quedan fuera del ambiente. Los diagramas de clase especifican estas abstracciones y sus responsabilidades. 2. Modelado simple de colaboraciones. Una colaboracin es una sociedad de clases, interfaces, y otros elementos, estos trabajan juntos para proveer igual comportamiento de colaboracin, esto es ms grande que la suma de todos los elementos. Por ejemplo, cuando se esta modelando la semntica de una transaccin en un sistema distribuido, no se puede fijar la vista en una simple clase, para entender cual ir. Esta semntica es llevada fuera por un conjunto de clases que trabajan juntas. Los diagramas de clases se usan para visualizar y especificar este conjunto de clases y sus relaciones. 3. Modelo lgico del esquema de la base de datos. Pensar en un esquema como la eliografa(dibujo) para el diseo conceptual de una base de datos. En muchos dominios se quiere almacenar

mucha informacin persistente en una base de datos relacional o en base de datos orientada a objetos. Se pueden modelar esquemas para estas bases de datos usando diagramas de clases. TECNICAS COMUNES DE MODELADO Modelado de Colaboraciones Simples. Las clases no estn solas, cada trabajo en colaboracin con otros genera semntica igual de grandiosa que cada una de manera individual. Por lo tanto, en agregacin a la captura del vocabulario del sistema, tambin es necesario poner la atencin en la visualizacin, especificacin, construccin y documentacin de varios caminos esto junto al vocabulario de trabajo. Se usa el diagrama de clases para representar tales colaboraciones. Cuando se crea un diagrama de clases se modela una parte de los elementos y el conjunto de relaciones de vistas del diseo del sistema. Por esta razn, cada diagrama de clase debera centrarse en una colaboracin en un tiempo. Para Modelar una colaboracin.

Identificar el mecanismo a modelar. Un mecanismo representa igual funciones o comportamiento de las partes del sistema, son modelados esto como resultado de la interaccin de una sociedad de clases, interfaces, y otros elementos. Para cada mecanismo identifica las clases, interfaces y otras colaboraciones que participan en esta colaboracin. Identifica las relaciones entre esos objetos tambin. Escenarios de uso para dirigirse a esos elementos. A lo largo del camino se descubren partes del modelo que fueron omitidas y partes que fueron planeadas semnticamente errneas. Asegura la propagacin de estos elementos con el contenido de ellos. Para clases empezar trayendo un buen balance de responsabilidades. Entonces, sobre el tiempo, vuelve esto entre atributos concretos y operaciones.

Por ejemplo fig. 8-2, muestra un conjunto de clases dibujadas para la implementacin de un robot autnomo. La figura se centra en las clases involucradas en el mecanismo para el movimiento del robot en una sola ruta. Se encuentra una clase abstracta(motor) con dos hijos en concreto,

SteeringMotor y MainMotor. Ambas clases heredan las cinco operaciones de su padre, Motor. Las dos clase permiten, girar, muestran como partes de otras clases Driver. La clase PathAgent tiene una asociacin uno-auno con la clase Driver y una asociacin uno-a-muchos con CollisionSensor. Los atributos y operaciones no son mostradas por PathAgent, no obstante son responsabilidades dadas. Son muchas mas las clases involucradas en este sistema, pero este diagrama se centra solo en esas abstracciones, esas son las involucradas directamente en el movimiento del robot.

Modelado lgico del esquema de la base de datos. Muchos de los sistemas a modelar tienen objetos persistentes, con lo cual por medio de ellos pueden ser almacenados en una base de datos para recuperarse mas tarde. Muy frecuentemente se usa una base de datos Relacional, una base de datos orientada a objetos, o un hbrido BD relacional/objetos para almacenar lo persistente. El UML soporta tambin el modelo lgico del esquema de la base de dato, como tambin la base de datos fsica.

En UML los diagramas de clase son un super conjunto de los diagramas E-R(Entidad-Relacin), comnmente las herramientas de modelado para el diseo lgico de la base de datos. Donde clsicamente los diagramas E-R se contraen en los datos, los diagramas de clase van mas all por permitir el modelado del comportamiento tambin. En la base de datos fsica, esas operaciones lgicas son generalmente asignadas entre los triggers o procedimientos almacenados.

Para modelar un esquema.


Identificar las clases en el modelo cuyos estados sean los ms trascendentes en el tiempo de vida de sus aplicaciones. Crear un diagrama de clases y marcar aquellas que sean persistentes. Expandir los detalles estructurales de esas clases, en general, estas especificaciones de detalles de sus atributos y centrarse en las asociaciones y en sus cardinalidades eso estructura esas clases. Observar para el modelo comn ese complicado diseo fsico de la base de datos, tal como asociaciones cclicas, asociaciones uno-auno, uno-a-muchos y asociaciones muchos-a-muchos. Donde necesariamente se crea una abstraccin intermedia para simplificar la estructura lgica. Considerar tambin el comportamiento de esas clases para expandir operaciones, esto es importante para el acceso a datos y la integridad de los datos. En general, se provee la mejor separacin concerniente, reglas de negocios concernientes con la manipulacin de conjuntos de objetos que deberan ser encapsulados en una capa acerca de esas clases persistentes. Donde posiblemente, el uso de herramientas ayudan a transformar el diseo lgico a diseo fsico.

Fig. 8-3 muestra un conjunto de clases de un sistema de informacin para una escuela. Esta fig. expande un diagrama de clases y permite ver el detalle de esas clases revelando un nivel suficiente para la construccin fsica de la base de datos. Empieza con el botn izquierdo de este diagrama, en l puedes encontrar la clase de nombre Student, Course e Instructor. Esto es una asociacin entre Student y Course, especificando que un estudiante asiste a cursos. Adems, todo

estudiante puede asistir a cualquier nmero de cursos y todos los cursos pueden tener cualquier nmero de estudiantes. Todas las seis de estas clases son marcadas como persistentes, indicando a sus instancias que estn intentando vivir en una base de datos o de igual forma persistir almacenados. Este diagrama tambin expone los atributos de las seis clases. Nota que todos esos atributos son de tipo primitivo. Cuando se modela un esquema, generalmente se quiere modelar las relaciones para cualquier tipo no primitivo usando una agregacin explcita en vez de un atributo. Dos de esas clases(School y Department) muestran diferentes operaciones para la manipulacin de sus partes. Estas operaciones son incluidas porque ellas son importantes para el mantenimiento en la integridad de datos.(Por ej. Agregar o borrar un departamento). Son muchas otras operaciones que se deben considerar para esto y para otras clases, tal como consultas de los prerequisitos de un curso antes de asignar un estudiante. Estas son muchas reglas de negocios que son operaciones para la integridad de la base de datos y tambin son el mejor lugar en un alto nivel de abstraccin para este esquema.

Ingeniera hacia adelante e ingeniera inversa. El modelado es importante, pero hay que recordar que el principal producto del desarrollo en equipo es el software, no los diagramas. Las razones de crear modelos es predecir el tiempo de liberacin del software que satisfaga las metas de los usuarios y del negocio. Por esta razn, es importante que ese modelo que se crea y la implementacin tengan un mapeo de uno a otro y tambin un camino este minimizado o uniforme eliminado los costos de manejar el modelo y la implementacin en sincrona con otro diferente. Para usos similares de UML, los modelos que se crean nunca deberan mapearse al cdigo. Por ejemplo, si tu estas modelando el proceso de un negocio usando diagramas de actividad, muchas de las actividades del modelo involucran gente, no computadoras. En otros casos, se quiere modelar sistemas cuyas partes son, del nivel de abstraccin, justo una pieza de hardware.(en otro nivel de abstraccin, es bueno que el hardware contenga empotrado el calculo y el software). En mas casos, la creacin de modelos puede mapear al cdigo. En UML no se especifica un mapeo particular a algn lenguaje de programacin orientada a objetos, pero UML fue diseado con tal mapeo en mente. Este es especialmente cierto para los diagramas de clase, con lo cual el contenido tiene un mapeo claro con todas las industrias fuertes de lenguajes orientados a objetos, tales como Java, C++, Smalltalk, Eiffel, Ada, Object-Pascal, y Forte. El UML fue diseado para el mapeo a una variedad de lenguajes comerciales basados en objetos, tales como Visual Basic.

Ingeniera hacia adelante. Es el proceso de transformar un modelo en cdigo a un mapeo en un lenguaje de implementacin. La ingeniera hacia adelante resulta en una

perdida de informacin, porque el modelo escrito UML es semnticamente ms rico que cualquier lenguaje de programacin orientado a objetos. De hecho esta es una mayor razn por lo que es necesario modelar en adicin al cdigo. Caractersticas estructurales tales como colaboraciones, y caractersticas de comportamiento tales como interacciones pueden ser visualizadas claramente en UML , pero no son tan claras para un lnea de cdigo. Un Diagrama de clases para la ingeniera hacia adelante:

Identificar las reglas para el mapeo al lenguaje de implementacin o lenguaje de preferencia. Esto es algo que se quiere hacer para un proyecto o para la organizacin como un todo. Dependiendo de la semntica del lenguaje elegido, se tienen muchas restricciones para usar las caractersticas del UML. Por ejemplo, el UML permite al modelo herencia mltiple pero Smalltalk permite solo herencia simple. Se puede prohibir a los desarrolladores para el modelado usar la herencia mltiple(con esto se hace al modelo dependiente del lenguaje) o desarrollar un lenguaje que transforma estas ricas caractersticas en un lenguaje de implementacin(con lo cual se hace un mapeo ms complejo). Usar valores de marca para especificar ligas con el lenguaje. Esto se puede hacer en el lenguaje individual de clases si se necesita un control preciso. Se puede hacer en un nivel alto tal como con colaboraciones o paquetes. Usar herramientas para la ingeniera hacia adelante para los modelos.

Fig 8-4. Ilustra un simple diagrama de clase especificando una instanciacin de series de modelos de responsabilidades. Esta instanciacion en particular involucra tres clases: Client, EventHandler, y GUIEventHandler. El Client y EvenHandler son mostradas como clases abstractas, donde como Guieventhandler es concreto. Event-handler tiene las operaciones usadas esperadas de este modelo(HandlerRequest), si bien dos atributos privados tienen que ser agregados para esta instanciacin.

Todas esas clases especifican un mapeo a Java, como nota en su valor de marca. La ingeniera hacia adelante en estos diagramas de clases esta fuertemente ligado a java, usando una herramienta. La ingeniera hacia adelante de la clase EventHandler produce el siguiente cdigo: public abstract class EventHandler { EventHandler successor; private Integer currentEventID; private String source; EventHandler() {} public void handleRequest() {} }

Ingeniera inversa. Es el proceso de transformar cdigo en un modelo a un mapeo de la especificacin del lenguaje de implementacin. La ingeniera inversa es resultado de la abundancia de informacin, algo de lo cual esta en un nivel bajo de detalle que se necesita para construir modelos tiles. En algn momento la ingeniera inversa es incompleta. Esto trae prdida de informacin de los modelos de la ingeniera hacia adelante al cdigo, y tambin cuando no se puede recrear completamente un modelo de cdigo a menos que las herramientas dosifiquen informacin en la fuente de comentarios semnticamente mas all del lenguaje de implementacin. Un Diagrama de clases para la ingeniera inversa:

Identifica las reglas de mapeo del lenguaje de implementacin o lenguaje preferido. Esto es lo que algunas veces quieres para tu proyecto o la organizacin como un todo. Usa una herramienta que caracteriza al cdigo necesario de la ingeniera inversa. Se usan herramientas para generar un nuevo modelo o modificar un existente que previamente fue usado en la ingeniera hacia adelante. Usa herramientas, para crear diagramas de clases para el modelado de consultas. Por ejemplo se puede empezar con una o ms clases, entonces se expande el diagrama para la siguiente especificacin de relaciones, u otras clases vecinas. Exponer u ocultar detalles en el contenido de este diagrama de clases segn sea necesario para lo que se intenta comunicar.

Con sta comienzo una serie de notas sobre Java, especialmente para aquellos que quieren comenzar a conocerlo y usarlo. Esto se origin en un inters que surgi en algunos de los suscriptores del mailing list de desarrolladores de web, y que pongo a disposicin tambin del de webmasters. Seguramente muchos de ustedes sabrn mucho ms sobre Java que yo, y les agradecer todo tipo de comentarios o correcciones. La idea es dar una gua ordenada para el estudio de este lenguaje, muy poderoso y de gran coherencia, aunque todava adolece de algunas limitaciones que seguramente se irn 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 caractersticas notables:


robusto gestiona la memoria automticamente no permite el uso de tcnicas de programacin inadecuadas multithreading cliente-servidor mecanismos de seguridad incorporados herramientas de documentacin 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 ms claros. Un objeto, desde nuestro punto de vista, puede verse como una pieza de software que cumple con ciertas caractersticas:

encapsulamiento herencia

Encapsulamiento significa que el objeto es auto-contenido, o sea que la misma definicin del objeto incluye tanto los datos que ste usa (atributos) como los procedimientos (mtodos) que actan sobre los mismos. Cuando se utiliza programacin orientada a objetos, se definen clases (que definen objetos genricos) y la forma en que los objetos interactan entre ellos, a travs 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 podra ser "autos", y un auto dado es unainstancia de la clase. La ventaja de esto es que como no hay programas que acten modificando al objeto, ste se mantiene en cierto modo independiente del resto de la aplicacin. Si es necesario modificar el objeto (por ejemplo, para darle ms capacidades), esto se puede hacer sin tocar el resto de la aplicacin lo que ahorra mucho tiempo de desarrollo y debugging! En Java, inclusive, ni siquiera existen las variables globales! (Aunque parezca difcil 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 programacin, porque las clases hijas incorporan automticamente los mtodos de las madres. Por ejemplo, nuestra clase "auto" podra heredar de otra ms general, "vehculo", y simplemente redefinir los mtodos para el caso particular de los automviles lo que significa que, con una buena biblioteca de clases, se puede reutilizar mucho cdigo 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; // mtodos de la clase: public Muestra () {

Label comentario = new Label("Presione un botn", 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 mtodo 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 podra 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). Cmo 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 seudocdigo definido por Sun, para una mquina genrica. Luego, al correr sobre una mquina dada, el software de ejecucin Java simplemente interpreta las instrucciones, emulando a dicha mquina genrica. Por supuesto esto no es muy eficiente, por lo que tanto Netscape como Hotjava o Explorer, al ejecutar el cdigo 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 cdigo ya est compilado especficamente para la mquina husped. Adems, Sun e Intel se han puesto de acuerdo para desarrollar procesadores que trabajen directamente en Java, con lo que planean hacer mquinas muy baratas que puedan conectarse a la red y ejecutar aplicaciones Java cliente-servidor a muy bajo costo. El lenguaje de dicha mquina genrica es pblico, y si uno quisiera hacer un intrprete Java para una Commodore slo tendra que implementarlo

y pedirle a Sun la aprobacin (para que verifique que cumple con los requisitos de Java en cuanto a cmo interpreta cada instruccin, la seguridad, etc.)

Algunas caractersticas
Entre las caractersticas que nombramos nos referimos a la robustez. Justamente por la forma en que est diseado, 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 intrprete siempre tiene el control. Inclusive el compilador es suficientemente inteligente como para no permitir un montn de cosas que podran traer problemas, como usar variables sin inicializarlas, modificar valores de punteros directamente, acceder a mtodos o variables en forma incorrecta, utilizar herencia mltiple, etc. Adems, Java implementa mecanismos de seguridad que limitan el acceso a recursos de las mquinas 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). Tambin est diseado especficamente para trabajar sobre una red, de modo que incorpora objetos que permiten acceder a archivos en forma remota (via URL por ejemplo). Adems, con el JDK (Java Development Kit) vienen incorporadas muchas herramientas, entre ellas un generador automtico de documentacin que, con un poco de atencin al poner los comentarios en las clases, crea inclusive toda la documentacin de las mismas en formato HTML!

El Java Development Kit


Todo lo que puedan pedir para desarrollar aplicaciones en Java est en:
http://java.sun.com/aboutJava/index.html

En particular, deberan bajarse el JDK y el API Documentation de:

http://java.sun.com/java.sun.com/products/JDK/1.0.2/index.html

(Tambin les puede interesar en particular el Tool Documentation y alguno de los otros paquetes de la pgina) Nota: en este site tambin hay un tutorial de Java, aunque es un poco difcil de seguir para el principiante. El JDK (versin 1.0.2) est disponible para SPARC/Solaris, x86/Solaris, MS-Windows 95/NT, y MacOS. Tambin est disponible el fuente para el que quiera adaptarlo para otro sistema operativo, y he ledo por ah que hay una versin dando vueltas para Linux y HP-UX. Bsicamente, el JDK consiste de:
el compilador Java, javac el intrprete Java, java un visualizador de applets, appletviewer el debugger Java, jdb (que para trabajar necesita conectarse al server de Sun) el generador de documentacin, javadoc

Tambin se puede bajar del mismo site un browser que soporta Java (y de hecho est escrito totalmente en Java), el Hotjava. Para instalarlo simplemente hay que descompactar el archivo (sugiero que creen un directorio java para eso), pero tengan en cuenta NO DESCOMPRIMIR el archivo classes.zip! Importante para los usuarios de Windows95: todas estas aplicaciones deben ejecutarse desde una ventana DOS. En particular, utilizan nombres largos y distinguen maysculas de minsculas, as que tengan en cuenta esto que es fuente de muchos errores. Una cosa muy importante: para que todo ande bien aceitado, agreguen:
el directorio de los programas en el path (ej: c:\java\bin) las variables de entorno:

CLASSPATH=.;C:\java\lib\classes.zip HOMEDRIVE=C: HOMEPATH=\ HOME=C:\

con los valores adecuados a su entorno. Noten que en CLASSPATH agregu el directorio actual (.), para poder compilar y ejecutar desde cualquier directorio.

Empecemos de una vez!


Bueno, suponiendo que hayan instalado todo, y antes de comenzar a programar en Java, una pequea aclaracin : En realidad se puede decir que hay tres Javas por ah:
Javascript: es una versin de Java directamente interpretada, que se incluye como parte de una pgina HTML, lo que lo hace muy fcil y cmodo para aplicaciones muy pequeas, pero que en realidad tiene muchas limitaciones: no soporta clases ni herencia no se precompila no es obligatorio declarar las variables verifica las referencias en tiempo de ejecucin no tiene proteccin del cdigo, ya que se baja en ascii no todos los browsers lo soportan completamente; Explorer, por ejemplo, no soporta las ltimas adiciones de Netscape, como las imgenes animadas. Java standalone: programas Java que se ejecutan directamente mediante el intrprete java. Applets: programas Java que corren bajo el entorno de un browser (o del appletviewer)

En s los dos ltimos son el mismo lenguaje, pero cambia un poco la forma en que se implementa el objeto principal (la aplicacin). Vamos a ver cmo crear las aplicaciones para que, sin cambios, se puedan

ejecutar casi igual en forma standalone o como applet (en realidad hay cosas que los applets no pueden hacer, como acceder a archivos sin autorizacin).

Javascript
No vamos a detenernos mucho en Javascript, por las limitaciones antedichas; si les interesa podemos dedicarnos un poco a este lenguaje en el futuro. Por ahora, slo un ejemplo sencillo: Calculadora en Javascript:
<HTML> <HEAD> <SCRIPT LANGUAJE="Javascript"> function calcula(form) { if (confirm("Est seguro?")) form.resultado.value = eval(form.expr.value) else alert("Vuelva a intentarlo...") } </SCRIPT> </HEAD> <BODY> <FORM> Introduzca una expresin: <INPUT TYPE="text" NAME="expr" SIZE=15> <INPUT TYPE="button" NAME="Boton" VALUE="Calcular" ONCLICK="calcula(this.form)"> <BR> Resultado: <INPUT TYPE="text" NAME="resultado" SIZE=15> <BR> </FORM> </BODY> </HTML>

Bsicamente, el cdigo se encuadra entre los tags <SCRIPT></SCRIPT>, y los parmetros se pasan al mismo mediante un form (<FORM></FORM>). El lenguaje utilizado es muy parecido al C++, y bsicamente el cdigo se ejecuta mediante una accin de un botn (ONCLICK="calcula(this.form)"). Al presionar el botn, se llama a la funcin calcula con el parmetro this.form, que se refiere al form al que pertenece el botn. La funcin asigna al valor del campo resultado del form que se le pasa como parmetro (form.resultado.value) el resultado de evaluar

el valor de la expresin del campo exprde dicho form (eval(form.expr.value)). Hay MUCHOS ejemploes de Javascript en:
http://www.c2.net/~andreww/javascript/

incluyendo decenas de calculadoras, juegos y otras yerbas! All tambin encontrarn la documentacin y un tutorial sobre Javascript.

Al fin Java!
Bueno, no del todo Les dejo un ejemplo para ir probando, y en captulo II empezamos en serio . Una vez que bajaron el JDK, carguen del directorio demo la pgina example1.html con su browser-favorito-que-soporte-Java. Van a ver un lindo relojito. Si bajan example1.html y el Clock2.class a otro server y cargan la pgina desde ah voil! Ningn problema, usen el sistema operativo que usen, ya que el applet se ejecuta en su mquina y no en el server. Y, si como es mi caso, disponen de un servidor en otro pas, vern que esto es cierto ya que la hora que muestra no es la del server, sino la de la mquina que carga el applet! Nos vemos en el prximo captulo!

<> Pgina de tutoriales <> Siguiente Capitulo <>

You might also like