Está en la página 1de 61

1

UNIVERSIDAD NACIONAL AUTNOMA DE MXICO


FACULTAD DE CONTADURA Y ADMINISTRACIN
ASIGNATURA DE PROGRAMACIN ORIENTADA A OBJETOS EN JAVA
AUTOR LUIS ARENAS HERNNDEZ

PRLOGO
Un apoyo que tiene el proceso enseanza-aprendizaje, es precisamente el material
didctico, ya sea a travs de apuntes, cuaderno de ejercicios, libros o aplicaciones de
computadora sobre todo si se trata de un rea tan dinmica como lo es la de la
Informtica.
Estas notas pueden ser de apoyo para la materia y se pretenden mostrar algunos
ejemplos y conceptos de la programacin orientada a objetos, enfocados a un lenguaje
de programacin de este tipo, que es JAVA.
Este trabajo, se desarrolla siguiendo dos ideas principales: la teora o conceptos sobre lo
que es la Programacin Orientada a Objetos (POO) y lo que es en si su utilizacin en la
programacin en JAVA, para lo cual se divide en las siguientes partes:

I.- Introduccin.
II.- Conceptos de la programacin orientada a objetos en JAVA.
III.- Estructuras del Lenguaje.
IV.- Programacin de interfases grficas.
V.- Programacin de Applets.
VI.- Programacin Cliente/Servidor.
VII.- Bibliografa.
VIII.-Anexos.

Nota: En el Anexo A, se encuentra el programa detallado de esta asignatura.

I- INTRODUCCIN
La velocidad con que avanza en los ltimos aos la tecnologa del Hardware de las
computadoras, es muy grande, con lo que se ha logrado tener computadoras ms
poderosas, baratas y compactas. Pero el Software no ha tenido el mismo
comportamiento, ya que al desarrollar aplicaciones, es frecuente que se excedan los
tiempos de entrega as como los costos de los sistemas de informacin (tanto de
desarrollo como de mantenimiento), adems de ser poco flexibles.
Se han creado diferentes herramientas de ayuda al desarrollo, para lograr aumentar la
productividad en el Software como son:

Tcnicas como las del Diseo Estructurado y el desarrollo descendente (top-


down)
Herramientas de Ingeniera de Software asistida por computadora
(ordenador) conocida como CASE
Desarrollo de lenguajes de programacin ms poderosos como los lenguajes
de cuarta generacin (4GL) y los orientados a objetos (POO).

1
2

Diversas herramientas como gestin de proyectos, gestin de la


configuracin, ayuda en las pruebas, bibliotecas de clases de objetos, entre
otras.

En donde se va hacer ms nfasis es en los lenguajes de programacin, sobre todo en


los que es donde se tiene la Programacin Orientada a Objetos (POO) y es donde se
tienen lenguajes como JAVA, que es el que se va a utilizar en esta asignatura.
Un lenguaje en trminos generales, se puede entender como ... los sistemas de
smbolos y signos convencionales que son aceptados y usados individual y socialmente,
con el fin de comunicar o expresar sentimientos, ideas, conocimientos , etc., por
ejemplo, el lenguaje natural o articulado, el corporal, el artificial o formal, los sistemas
1
de sealamiento, el arte, entre muchos otros tipos...
Existen tambin los lenguajes artificiales, que entre sus caractersticas, tenemos el que
no es ambiguo y es universal, entre los que se encuentran los de las Matemticas y los
de Programacin.
En los lenguajes de programacin (conjunto de sintaxis y reglas semnticas con el fin
de comunicar ideas sobre algoritmos entre las computadoras y las personas), existen
diferentes clasificaciones una de ellas es la que a continuacin se muestra:

Programacin Imperativa, donde el programa es una serie de pasos,


realizando cada uno de ellos un clculo (como ejemplos estn Cobol,
Fortran entre otros).
Programacin Funcional, el programa es un conjunto de funciones
matemticas que se combinan (como Lisp, Scheme, etc.).
Programacin Lgica (tambin conocida como Declarativa), aqu el
programa es una coleccin de declaraciones lgicas (ejemplo Prolog).
Programacin Concurrente, la programacin consiste en un grupo de
procesos corporativos, que llegan a compartir informacin ocasionalmente
entre ellos (ejemplos LINDA y Fortran de alto rendimiento HPF 1995)
Programacin guiada por eventos, el programa consiste en un ciclo
continuo y que va a responder a los eventos generados aleatoriamente (orden
no predecible), ya que dichos eventos son originados a partir de acciones del
usuario en la pantalla (ejemplos JAVA y Visual Basic)
Programacin Orientada a Objetos (POO), el programa est compuesto por
varios objetos que interactan entre ellos a travs de mensajes, los cuales
hacen que cambien su estado (ejemplos C++, Eiffel y JAVA)

I.1- El paradigma orientado a objetos


Se tratar definir qu son los paradigmas?, existen diferentes definiciones como que
son las que a continuacin se mencionan:

1
Cuairn Ruidaz Mara y Amelia Guadalupe Fiel Rivera, Notas del curso de Orientacin para la
elaboracin de textos didcticos de Ingeniera. 2 edicin, Mxico, Facultad de Ingeniera UNAM, 2004,
pgs. 7 y 8

2
3

...un conjunto de conocimientos y creencias que forman una visin del


mundo (cosmovisin)...2.
...Un paradigma es una forma de representar y manipular el conocimiento.
Representa un enfoque particular o filosofa para la construccin del
software...3
...Un modelo, ejemplo o molde...4

...La Programacin Orientada a Objetos (POO) es una metodologa de diseo de


software y un paradigma de programacin que define los programas en trminos de
clases de objetos, objetos que son entidades que combinan estado (es decir, datos) y
comportamiento (esto es, procedimientos o mtodos)... 5.

La programacin orientada a objetos es un programa con un conjunto de objetos, que


se comunican entre ellos para realizar tareas y que es un modelo que representa un
subconjunto del mundo real, tal fielmente como sea posible, de modo fcil y natural,
donde los objetos van a tener caractersticas (atributos) y comportamientos (mtodos).
Que a diferencia de los lenguajes procedurales, en donde los datos y los
procedimientos se encuentran separados y sin relacin alguna.

Los lenguajes procedurales, utilizan funciones y despus les pasan datos, en tanto que
los lenguajes orientados a objetos definen objetos y despus envan mensajes a los
objetos diciendo que realicen alguno de los mtodos especificados para el objeto.

Entre las ventajas de la programacin orientada a objetos es que los mtodos estn
pensados para hacer programas y mdulos ms fciles de escribir, mantener y
reutilizar, as como que sean modulares y reutilizables parte de los cdigos de estos
programas.
A continuacin se describirn sus mecanismos bsicos de la POO como son: objetos,
mensajes, mtodos y clases, los cuales se describen brevemente a continuacin.

Objetos.
Los Objetos, se pueden definir como las unidades bsicas de construccin, para la
conceptualizacin, diseo o programacin, esto es que son instancias agrupadas en
clases con caractersticas en comn y que son los atributos y procedimientos, conocidos
como operaciones o mtodos.
Tambin se puede decir que un objeto es una abstraccin encapsulada genrica de datos
y los procedimientos para manipularlos, tambin se puede decir que es una cosa o

2
http://www.monografias.com/trabajos16/paradigmas/paradigmas.shtml#queson
3
http://es.wikipedia.org/wiki/Paradigma_de_programaci%C3%B3n
4
FREEDMAN ALAN, Diccionario de Computacin, (5 edicin.), MXICO, McGraw-Hill, 1993, pg.
581.

5
http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos

3
4

entidad, que tiene atributos (propiedades) y de formas de operar sobre ellos que se
conocen como mtodos.
En forma mas simple se puede decir que un objeto es un ente que tiene caractersticas y
comportamiento.
Los objetos pueden modelar diferentes cosas como; dispositivos, roles, organizaciones,
sucesos ,ventanas (de Windows), iconos, etc.

Organizacin de los Objetos


Los objetos forman siempre una organizacin jerrquica, existiendo varios tipos de
jerarqua como los que a continuacin se mencionan:
Simples.- cuando su estructura es representada por medio de un rbol
(estructura de datos).
Compleja.- cualquier otra diferente a la de rbol.

Sea cual fuere la estructura se tienen en ella los siguientes tres niveles de objetos:
La raz de la jerarqua. Es un objeto nico, esta en el nivel ms alto de la
estructura y se le conoce como objeto Padre, Raz o Entidad.
Los objetos intermedios. Son los que descienden directamente de la raz y que a
su vez tienen descendientes (tienen ascendencia y descendencia) y representan
conjuntos de objetos, que pueden llegar a ser muy generales o muy
especializados, de acuerdo a los requerimientos de la aplicacin.
Los objetos terminales. Son todos aquellos que tienen ascendencia, pero que
no tienen descendencia.

Mensajes
En la programacin orientada a objetos, los objetos descritos anteriormente se
comunican a travs de seales o mensajes, siendo estos mensajes los que hacen que los
objetos respondan de diferentes maneras, por ejemplo un objeto en Windows como
una ventana de alguna aplicacin , puede cerrarse, maximizarse o restaurarse
(mtodos) de acuerdo al mensaje que le se enviado.
En otras palabras, un mensaje es una comunicacin dirigida a un objeto, que le ordena
que ejecute uno de sus mtodos pudiendo o no llevar algunos parmetros.

Mtodos
Es una accin que determina como debe de actuar un objeto cuando recibe un mensaje.
En analoga con un lenguaje procedural se le llamara funcin.
Un mtodo tambin puede enviar mensajes a otros objetos, para realizar una aacin o
para pedir informacin.

Clases, Superclase y Subclase


Es la generalizacin de un tipo especifico de objetos, esto se puede decir como el
conjunto de caractersticas (atributos) y comportamientos de todos los objetos que
componen a la clase.
Por ejemplo la clase plumn tiene todas las caractersticas (tamao, color, grosor del
punto, etc) y todos los mtodos o acciones (pintar, marcar, subrayar, etc), que pueden
tener todos los plumones existentes en la realidad.
Un plumn en especial como un marcador permanente para discos compactos (CDs)
de color negro y punto fino, es un objeto (o instancia) de la clase plumn.

4
5

Se tienen tres tipos de clase que son:


Abstracta.- Es muy general (ejem. Animal).
Comn .- Es intermedia (ejem. Mamferos).
Final.- Es muy especifica (ejem. GatoSiames).

La herencia (que se detallara ms adelante), maneja una estructura jerrquica de clases


o estructura de rbol (Estructura de Datos6), con lo que la POO todas las relaciones
entre clase se ajustan a esta estructura. En esta estructura cada clase tiene una sola
clase padre, la cual se conoce como superclase y la clase hija de una superclase se
conoce como subclase.

Superclase
La superclase, se puede definir en trminos sencillos como la clase padre de alguna
clase especifica y puede tener cualquier nmero de subclases..

Subclase
La subclase, es la clase hija de alguna clase especifica y solo puede tener una
superclase (en JAVA).

I.2- Principios fundamentales de la POO


Los principios fundamentales de la POO son: abstraccin, encapsulamiento, herencia y
polimorfismo, los cuales se describirn a continuacin.
Abstraccin
Es el proceso de representar entidades reales como elementos internos a un programa,
la abstraccin de los datos es tanto en los atributos, como en los mtodos de los objetos.
Es de hacer notar que por medio de la abstraccin se puede tener una visin global del
tema, por ejemplo en la clase PILA (Estructura de Datos, Ultimas Entradas Primeras
Salidas LIFO), se pueden definir objetos de este tipo, tomando nicamente las
propiedades LIFO (del ingls Last Input First Output) de las PILAS, algunos atributos
como lleno, vaco, el tamao y las operaciones o mtodos que se pueden realizar sobre
estos objetos como PUSH (meter un elemento) o POP (retirar un elemento) y no es
necesario que el programador conozca o sea un experto en la Estructura de Datos con la
que se implementa la PILA (como por ejemplo con una organizacin contigua o
simplemente ligada, ni de los algoritmos que realizan el PUSH y el POP).

Encapsulamiento
Cada objeto est aislado del exterior, esta caracterstica permite verlo como una caja
negra, que contiene toda la informacin relacionada con ese objeto. Este aislamiento

6
EUN AVILA JORGE IVAN Y CORDERO BORBOA LUIS GONZAGA., Estructuras de datos, (1
reimpresin.), MXICO, LIMUSA, tomada de la primera edicin de la UNAM (FACULTAD DE
INGENIERA), 1989, pgs 89- 110.

5
6

protege a los datos asociados a un objeto para que no se puedan modificar por quien no
tenga derecho a acceder a ellos.
Permite manejar a los objetos como unidades bsicas, dejando oculta su estructura
interna.

Herencia.
Las clases se encuentran relacionan entre s, formando una jerarqua de clasificacin.
La herencia es el medio para compartir en forma automtica los mtodos y los datos
entre las clases y subclases de los objetos. Los objetos heredan las propiedades y el
comportamiento de todas las clases a las que pertenecen.
Existe la herencia Simple y Mltiple, si un objeto pertenece a ms de una clase, se
llama herencia Mltiple, y no est soportada por algunos lenguajes como Java, en tanto
que la herencia Simple, es cuando un objeto pertenece a una sola clase.

Como se ejemplifica en la siguiente figura 3.1:

Herencia Simple Herencia Mltiple


(Una clase solo tiene una superclase) (Una clase tiene dos o ms superclases)

superclase superclase 1 superclase 2

clase 1 clase 2 clase

FIGURA 1.1 Herencia Simple y Herencia Mltiple.

Polimorfismo
Esta caracterstica facilita la implementacin de varias formas de un mismo mtodo,
con lo cual se puede acceder a varios mtodos distintos, que tienen el mismo nombre.
Existen dos tipos principales de polimorfismo, que son:

Por reemplazo.- dos o ms clase diferentes con el mismo nombre del mtodo,
pero hacindolo de forma diferente.
Por sobrecarga.- es el mismo nombre de mtodo ocupado varias veces,
ejecutndolo de diferente forma y diferencindose solamente por el argumento o
parmetro.

A continuacin se ejemplifican en la figura 1.2 estos dos tipos de polimorfismo.

Polimorfismo por reemplazo Polimorfismo por sobrecarga

6
7

A lu m n o
A tle ta
e s tu d ia ()

n a d a (lib re )

lo h a c e c o n la
c a b e z a h a c ia e l
A lu m n o E s co la riza d o A lu m n o S u a s u e lo
n a d a (d o rs o )
e s tu d ia () e stu d ia ()
lo h a c e c o n la
co n p ro fe s o re s c o n lib ro s c a b e z a h a c ia e l
c ie lo

FIGURA 1.2 .Polimorfismo por reemplazo y por sobrecarga.

I.3.- Anlisis y diseo orientado a objetos

Se han desarrollado metodologas, que tienen como una de sus funciones el lograr una
mayor productividad en el desarrollo de los sistemas de informacin. Existen diferentes
metodologas las cuales tienen diferentes fases y son precisamente dos de ellas en las
que se enfatizar y son el Anlisis y el Diseo.

Tal vez no sea tan importante ver cual es la mejor metodologa, si no el conocer alguna
y aplicarla, en general en la fase del Anlisis se identifica el qu se desea hacer?, es
un Anlisis detallado de los requerimientos del proyecto que se va a realizar, en el caso
de la POO es la abstraccin resumida y precisa de lo que debe de hacer el sistema
deseado y en la del Diseo cmo se va a hacer?.para cumplir con esos requerimientos,
que caractersticas de rendimiento hay que optimizar.

En el caso de la POO, existen diferentes metodologas que consisten en construir un


modelo (Representacin de la realidad a travs de diferentes variables) de un dominio
de aplicacin como:

OMT que es la Tcnica del Modelado de Objetos, el cual a grandes rasgos cuenta
con las siguientes cuatro fases: Anlisis, Diseo del Sistema, Diseo de Objetos e
Implementacin.7
UML ms recientemente, el cual es un Lenguaje Unificado de Modelado y es una
representacin grfica que sirve para modelar sistemas orientados a objetos, ya que
permite manejar los elementos descritos en los apartados anteriores (por ejemplo los
mensajes entre objetos, sincronizacin , etc.).
Entre sus principales caractersticas se encuentran: su flexibilidad, cuenta con
muchos elementos grficos.8

7
RUMBAUGH JAMES, BLAH MICHAEL, PREMERLANI WILLIAMS, HED FREDERICK Y
LORENSEN WILLIMAS. Modelado y diseo orientado a objetos METODOLOGA OMT (S/E),
ESPAA, PRENTICE-HALL, Espaa 1996, pgs. 643.
8
POOLEY PERDITA, Utilizacin de UML en Ingeniera del Software con Objetos y Componentes ( S/E), ESPAA,
MC-ADDISON WESLEY DE PEARSON EDUCACIN S.A., Madrid Espaa 2003, pgs. 291.

7
8

Al proceso del Anlisis y Diseo orientado a objetos, se conoce bajos las siglas ADDO.

I.4.- Lenguajes orientados a objetos

Las tcnicas, vistas anteriormente en las que se basa la programacin orientada a


objetos (como el encapsulamiento, abstraccin , etc) ya eran conocidas, desde hace ya
varios aos, sin embargo no todos los lenguajes proporcionan todas las facilidades
para escribir programas orientados a objetos. Existen discrepancias de cuales deben de
ser estas facilidades y se pueden agrupar en las siguientes:

Manejo de memoria automtico, incorporndose el concepto del recoletor


de basura, con lo que la memoria utilizada por objetos cuya utilidad ha
terminado es liberada por mecanismos propios del lenguaje, sin intervencin
del programador.
Abstraccin de datos a travs del lenguaje.
Estructura modular en objetos, tomando como base sus estructuras de datos.
Clases, Herencia y polimorfismo que puedan manipuladas a travs del
lenguaje.

Entre los lenguajes orientados a objetos destacan los siguientes:

Smalltalk
Objective-C
C++
Ada 95
Java
Ocaml
Python
Delphi
Lexico (en castellano)
C#
Eiffel
Ruby
ActionScript
Visual Basic
PHP
PowerBuilder
Clarion
Simula67

Existen lenguajes como C++ y otros lenguajes, como OOCOBOL, OOLISP,


OOPROLOG y Object REXX, han sido creados aadiendo extensiones orientadas a
objetos a un lenguaje de programacin ya existentes.

8
9

Una nueva tendencia en la abstraccin de paradigmas de programacin es la


Programacin Orientada a Aspectos (POA), pero esta metodologa an se encuentra en
proceso, aunque cada vez ms y ms investigadores e incluso proyectos comerciales
en todo el mundo ya la empiezan a adoptar.9 10

II CONCEPTOS DE LA PROGRAMACIN ORIENTADA A OBJETOS EN


JAVA

II.0 Introduccin a JAVA y como instalarlo


Java es un lenguaje de programacin de alto nivel que cuenta con las siguientes
caractersticas11: 12

Sencillo
Orientado a objetos.
Distribuido y dinmico
Interpretado
Robusto
Seguro
Neutral desde el punto de vista de la estructura
Porttil
De alto rendimiento
Multitarea
Multiplataforma (Mac, Windows y Linux)
Con administracin de memoria y recoleccin de basura

JAVA es un lenguaje de programacin que utiliza un compilador, para traducir del


cdigo fuente al cdigo ejecutable, aunque tambin tiene la caracterstica de ser un
lenguaje interpretado. El compilador de JAVA genera a partir del cdigo fuente de un
programa un cdigo intermedio llamado bytecode, el cual es independiente de la
plataforma en que se trabaje y este bytecode solo se puede ejecutar en la Mquina
Virtual de Java conocida como JVM, la cual es una estructura idealizada de JAVA y en
la mayora de los casos es utilizada para implementar software en vez de hardware.

9
http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos
10
JOYANES, Luis. Programacin Orientada a Objetos, segunda edicin, MC-GRAW
HILL/INTERAMERICANA DE ESPAA, Madrid 1998, p. 37.

11
TUCKER ALLEN Y NOONAN ROBERT, Lenguajes de Programacin principios y paradigmas, (
S/E), ESPAA, MC-GRAW HILL/INTERAMERICANA DE ESPAA, Madrid 2003, pg. 443.

12
ZUKOWSKI JHON, Programacin en Java 2 (S/E), ESPAA, EDICIONES ANAYA
MULTIMEDIA, Madrid 1999, pg. 40-44.

9
10

JAVA se esta haciendo muy popular por sus caractersticas dentro de los grupos de
desarrolladores, sobre todo con el auge que ha tenido Internet en los ltimos aos , a
pesar de ser un lenguaje relativamente joven (principios de los aos noventas), por
darse una idea de su rpida aceptacin, en las conferencias de JAVA Soft Java One
en San Francisco, desarrollada en Abril de 1996 trajo la atencin de cinco mil usuarios,
al ao siguiente fueron diez mil y en la actualidad no se sabe con exactitud, pero a
finales del siglo XX se estimaban redondeaba la cifra de cuatrocientos mil y siguen
creciendo.

La plataforma JAVA se basa solamente en software que corre sobre de las plataformas
basadas en hardware y tiene los siguientes dos componentes:

La JVM.
La interfaz de Programacin de Aplicaciones de JAVA conocida como API
JAVA.

En la figura 2.1 se hace una representacin de los componentes de la plataforma JAVA:

FIGURA 2.1 Plataforma JAVA

Tipos de programas en JAVA


Los programas en JAVA tiene tres tipos formatos que son: Applets, Aplicaciones y
Servlet y son los que a continuacin se describen:

Applets.- Los applets son pequeos programas que se incrusta en una pgina
Web y por un Navegador Web compatible con Java para poder ejecutarse. Es
frecuente que los applets se descargan junto con una pgina HTML desde un
Servidor Web y se ejecutan en la mquina cliente. Un applet recibe la
informacin directamente del explorador.
Aplicaciones.- Las aplicaciones tambin son programas conocidos como
standalone y que son ejecutados desde la lnea de comandos del sistema
operativo y son todos los programas que no caen en ninguna de las otras dos
caterias (applets o servlets).
Servlets.-Los servlets son programas especiales que se ejecutan en el servidor
Web.

Compilacin, obtencin del JDK y ejecucin de programas Java

El Kit de desarrollo de Java conocido como JDK (de sus siglas en Ingls), tiene los

10
11

elementos como son las herramientas y libreras necesarias para crear y ejecutar
applets y aplicaciones en Java. JDK puede crear y mostrar aplicaciones grficas.

Entre las libreras que tiene el JDK se encuentran las siguientes:13

javac. Es el nombre del compilador de Java y convierte el cdigo fuente escrito


en Java (archivo con extensin java) a bytecode (archivo con extensin class).
java . Es el interprete de JAVA, ejecuta el bytecode de los archivos con
terminacin punto class.
Appletviewer.-Es el intrprete en JAVA que se encaraga de ejecutar la clase de
los applets que estan dentro de los archivos HTML.
javadoc.- Ayuda a documentar, ya que crea cdigo HTML a partir del cdigo
fuente de JAVA y en los comentarios que contiene.
jdb.- Es el analizador de JAVA, para poder recorrer lnea a lnea el programa,
pudiendo analizar las variables y los puntos de interrupcin.
javap.- Es el desensamblador de JAVA y muestra las funciones a las que se
pueden tener acceso y que se encuentran dentro de los archivos con extensin
class.
Es de hacer notar que existen muchas ms utilidades, las mencionadas, son las ms
comunes.

Para obtener el JDK, se puede hacer en gratuitamente en la pagina de SUN


http://java.sun.com/ o http://javasoft.com/ .
Los requerimientos de memoria, varan de acuerdo a la versin y a las utilerias que se
instalaran, aproximadamente 150 megas en disco duro.

Instalacin del JDK para Windows 95 o 98


El JDK se encuentra en archivos que se auto extraen y es necesario indicar el directorio
donde se colocarn los archivos y directorios del JDK.

Una vez que se ha instalado el JDK, una forma de empezarlo a utilizar es desde una
ventana del sistema operativo DOS, ir al directorio donde se instal el Kit de la
siguiente forma:

cd j2sdk1.4.0_01\bind

suponiendo que el directorio y subdirectorio de instalacin fue el j2sdk1.4.0_01\bind

Construccin de aplicaciones con el JDK

Para construir una aplicacin, se requiere de utilizar algn editor de textos como puede
ser Word o Bloc de Notas por ejemplo y lo que si es muy importantes es que se necesita
salvar con la extensin java y ponerlo entre comillas, como se muestra a continuacin y
que se este en el directorio donde se instal el KIT (por ejemplo el
j2sdk1.4.0_01\bind):

HolaContaduria.java
13
Idem.

11
12

Otro aspecto importante, es que el nombre del archivo debe de coincidir con el nombre
de la clase y la extensin ser java.
Las convenciones que se siguen para el nombre de las clases es que, la primera letra sea
mayscula, seguida de letras minsculas ( nmeros) y si lleva ms de una palabra, la
primera letra de cada palabra, tambin empezar con una letra mayscula.

A continuacin se muestra un ejemplo:

Se edita el cdigo fuente.

public class HolaContaduria


{
public static void main(String args[])
{
System.out.print("Hola Contaduria");
}
}

Se guarda en un archivo con extensin java y entre comillas, para que sea un
archivo de texto

Guardar como y en nombre del archivo se pondr


HolaContaduria.java

Se compilar el programa con el siguiente comando:

javac HolaContaduria.java

Si se llegan a tener errores de compilacin, en este momento los desplegar y si


no se tiene ningn error, entonces se generar, un archivo con extensin class.

Se ejecutar el programa con:

java HolaContaduria

Y desplegar los resultados que arroje el programa.


Es de hacer notar que al ejecutar el programa no se pone ninguna extensin (que
de hecho sera la de class).
Los archivos que se generaron fueron:

HolaContaduria.java y HolaContaduria.class

A continuacin se pasar a lo que es en si el manejo en JAVA de los conceptos


mencionados de la POO en el puno UNO del temario.

II.1.- Clases de Objetos


Definicin de clases

12
13

Cuando se define una clase se especifica como sern los objetos de dicha clase, esto
quiere decir, de que variables y de que mtodos estar constituida. Las clases
proporciona una especie de plantilla o molde para los objetos, como podra ser el molde
para hacer paletas de hielo, los objetos que se crean, son en s las paletas de hielo, estas
paletas van a tener como atributos (caractersticas), su color, tamao, sabor, etc y
como acciones o mtodos (acciones), que se pueden congelar, derretir, etc.

Declaracin de clases
Para declarar una clase, se realiza utilizando la palabra reservada class, seguida del
nombre de la clase como se ejemplifica a continuacin:

class nombreClase // Se declara la clase


{
.
.// Aqu se declaran las variables y los mtodos
.
}

La definicin de la clase tiene dos partes que son:


La declaracin de la clase Indica el nombre de la clase precedido por la
palabra clave (o palabra reservada) class.
El cuerpo de la clase sigue a la declaracin de la clase y est contenido entre
los delimitadores { y } y contiene las declaraciones de las variables de la clase,
as como la declaracin e implementacin de los mtodos que operan sobre
dichas variables. Tambin se le conoce como elementos miembros.

Declaracin de variables de instancia

El estado de un objeto se representa por sus variables (conocidas como variables de


instancia). Estas son declaradas dentro del cuerpo de la clase.
En JAVA a un objeto se le conoce como instancia de una clase y para crearlo se llama a
una parte de lneas de cdigo conocidas con el nombre constructor de una clase que
tienen el mismo nombre de la clase.
Una vez que ya no se ocupa el objeto, se ejecuta el recolector de basura. Estos
concepto de objeto, constructor y de recolector de basura, se abordarn ms a detalle
en el siguiente captulo.

II.2.- Mtodos y atributos de los objetos

Un objeto tiene atributos y mtodos como se vio anteriormente, a continuacin se


describirn como se puede definir estos elementos en JAVA.

Mtodos.

13
14

Los mtodos interactan con los mensajes, determinando cuales son los que un objeto
puede recibir. Haciendo una analoga con la programacin procedural, se podra
comparar con las funciones o subrutinas.
Un mtodo cuenta con las siguientes partes:
Nombre del mtodo.
Valor que regresa.
Argumentos opcionales.
Modificadores en la declaracin del mtodo (como los de visibilidad)
Cuerpo del mtodo.

Nota: lo que se encuentra entre los picoparntesis es opcional, en las sintaxis que se
mostrarn en estas notas.

La sintaxis del mtodo es:


<Modificadores> valor_de_retorno nombre_del_Metodo( <lista de argumentos > )
{

// cuerpo del mtodo

Recordando que los mtodos, es lo que hace un objeto (es la accin) y cuando se llama
a un mtodo de un objeto es cuando se realiza el envo del mensaje al objeto. En JAVA
solo pueden ser creados como parte de una clase.

Atributos de los objetos


Los atributos son las caractersticas del objeto (que tiene, de que consta), en JAVA se
definen a travs de tipos de datos o variables, los cuales se dividen en:

Tipos de Datos Primitivos (TDP).- Solo se pueden manejar asignndoles algn


valor y se dividen en bolanos (lgicos) y numricos
Tipos de Datos por Referencia.- Aparte de asignarlos, se pueden con l a travs
de una referencia, que haciendo una analoga con los lenguajes procedurales,
equivaldra a los apuntadores.

En el siguiente capitulo, se profundizar un poco ms en cuanto a los diferentes tipos de


datos, viendo una clasificacin ms detallada.

Se toma la convencin de que al utilizar estos atributos en JAVA, se utilicen siempre


con letras minsculas y solo si se trata de ms de una palabra, entonces ser con
mayscula cada primera letra de cada palabra adicional y siempre juntas, sin espacios
en blanco, por ejemplo:
colorDelPelo

II.3.- Herencia

14
15

Una de las principales caractersticas de JAVA es la reutilizacin del cdigo, para la


reutilizacin del cdigo, se crean nuevas clases, pero utilizando las clases ya existentes
y la estructura jerrquica de clases o de rbol que se mencion anteriormente (en donde
todas las relaciones entre clases se ajustan a dicho rbol). Para la reutilizacin del
cdigo se utilizan los siguientes dos mtodos ms frecuentemente:

Composicin.- Donde se crean objetos a partir de clases existentes, la nueva


clase se compone de objetos de clases ya existentes.
Herencia.- Es como en la vida real, alguien hereda, adquieres algn bien o
caracterstica gentica de su padre, se puede decir: esta persona hered hasta ola
forma de caminar de su padre, en JAVA equivaldra a decir: esta clase es como
su clase padre, ya que conserva los atributos y los mtodos de la clase padre,
pudiendo alterar (por medio de los modificadores de acceso), ya sea para
quitar o agregar algunos de ellos en forma individual para esa clase en
especifico. Para manejarlo en JAVA se utiliza la palabra reservada extends.

En esta estructura de rbol solo se tiene una clase padre (recordando que JAVA
nicamente maneja herencia simple), la cual se conoce como superclase y en JAVA se
invoca con la palabra reservada super y l clase hija de una superclase se llama
subclase.

II.4- Polimorfismo

Como se vio en el capitulo anterior existen diferentes tipos (sobrecarga y reemplazo),


solo se podran agregar los siguientes comentarios:

Un objeto solamente tiene la forma que se le asigna cuando es construido, pero se


puede hacer referencia a l en forma polimrfica, ya que se puede referir a objetos de
diferentes clases y debe de existir una relacin de herencias entre clases.

El Polimorfismo permite separar el que del como y permite distinguir entre tipos de
objetos que son parecidos, esta diferencia se muestra travs del comportamiento de los
mtodos que heredan de la clase padre.

Las funciones (mtodos) polimrficas, son a las que no les interesa el tipo de variables
que reciben, como es el caso del print o write en lenguajes como BASIC o PASCAL,
que pueden desplegar, cualquier tipo de datos (entero, flota, string, etc.)

En el siguiente capitulo se mostrar un ejemplo donde estarn los conceptos vistos en


este capitulo, para ya tener ms bases en cuanto a la sintaxis del lenguaje.

15
16

III. ESTRUCTURA DEL LENGUAJE

La sintaxis (lo equivalente a la gramtica en un lenguaje natural) de un programa


escrito en JAVA es casi, casi igual a uno escrito en el lenguaje de programacin C++.
Generalmente las instrucciones terminan con un punto y coma ; con las excepciones
que maneja tambin en C/C++.

III.1.- Tipos de datos


Los tipos de datos en JAVA son los siguientes tres:
Primitivos.- Son unidades de informacin tales como caracteres, nmeros o
valores bolanos (lgicos).
Clases del sistema.- No son clases y no tienen mtodos propios.
Clases definidas por el usuario.- Como su nombre lo indica son hechas por el
usuario.

Los tipos primitivos en JAVA son:


bolean.- Los cuales pueden tener valores de falso o verdadero (trae/false).
char.-Es un carcter de 16 bits.
byte, short.- Cuenta con 8, 16,32 y 64 bits
int, long.- Tiene valores entero y enteros largos.
Flota, double.- Son nmeros de punto flotante (notacin cientfica) de 32 y 64
bits.

Dentro de la sintaxis de JAVA se encuentran los siguientes elementos:

Comentarios.
Declaraciones.
Bloques de cdigo.
Estructura de archivos fuentes.
Identificadores.
Palabras claves
Literales.
Expresiones y Operadores
Se describirn a continuacin los ms importantes.

Comentarios
Son las anotaciones que se utilizan por el programador, con el fin de documentar el
cdigo fuente, pero que no forma parte de ninguna instruccin. En JAVA se pueden
utilizar los dos sistemas que utiliza C/C++ que son el de /* */ y //, adems se puede
agregar un tercero, para cuando se genera el archivo de documentacin, que se explica
enseguida,

Comentarios en una o varias lneas.


Es cuando se utilizan los smbolos /* y */
Ejemplo

/*
Ejemplo de comentario

16
17

que puede utilizar


varias
lneas

*/

Comentarios de una sola lnea.


Se utiliza la doble diagonal //, el comentario se inicia a partir de la doble diagonal y
continua solo hasta el fin de la lnea.

// Ejemplo del comentario en una sola lnea

Comentarios para documentacin


Recordando que entre las libreras que tiene el JDK, se encuentra la de javadoc, que
tiene como funcin el generar un archivo de documentacin, se le pueden agregar
comentarios dentro de ese archivo, cuando en el cdigo fuente se utiliza el comentario
del asterisco, pero agragandole otro.

Ejemplo

/**
Este comentario va a ser utilizado por la
Herramienta javadoc
y se agregara en
en ese archivo
*/

Declaraciones
Es alguna lnea del programa.

Ejemplo

a = b + c;

Bloques de cdigo
Es un grupo de declaraciones (lneas de cdigo, o sentencias) que tienen alguna
funcionalidad. Va encerrado entre las llaves { y }, se puede poner en cualquier parte
donde se coloca una sentencia individual.

Ejemplo

public static void main(String args[])


{ /* Aqu empieza el bloque
Vuelo avion=new Vuelo();
avion.altitud=25;
avion.altura=50;
avion.velocidad=1000;
avion.latitud=500;
} Aqu termina el bloque */

17
18

En el punto III.2, se profundizar en lo que son los bloques y las sentencias.

Estructura de archivos fuente


Los archivos fuente, tiene los siguientes tres tipos de declaraciones, que se encuentran
fuera del bloque del cdigo:

packages.- Es la definicin del paquete a que pertenecen las clases del archivo.
import.- Da la referencia a una clase ya establecida y solo se utiliza el nombre
de la clase.
class.- Es donde se define la clase principal.

Ejemplo

package com.sybex.examples; // Se define un package


import java.io.PrintWriter; // Se define un import
public class PointTest { // Se define una clase
public static void main(String args[])
{

// cuerpo del programa

Identificadores
Es el nombre bajo el cual se pueden manipular las variables y son una secuencia de
caracteres, los cuales deben de comenzar con una letra y ser seguido de letras y/o
nmeros, signos especiales como _ y $, pudiendo ser las letras maysculas y/o
minsculas.
No existe lmite, en cuanto al nmero de caracteres en el nombre del identificador, pero
se recomienda que no sea muy largo, ya que se puede prestar a cometer errores y se
sugiere que sea un nombre representativo de lo que contiene o maneja.
Existen tambin variables de instancia (de objetos) que se detallaran en una seccin
ms adelante.

Ejemplos

Color a AvionComercial Avion_Militar

Palabras clave
Son palabras o identificadores que tienen una funcin especial en el compilador de
JAVA y que no pueden utilizarse como nombres de atributos y/o de mtodos, en la
tabla 3.1 se muestran las que utiliza JAVA.

18
19

abstract default if package synchronized


boolean do implements private this
break double import protected throw
byte else instanceof public throws
case extends int return transient
catch final interface short try
char finally long static void
class float native strictfp** volatile
const* for new super while
continue goto* null switch widefp

TABLA 3.1 Palabras claves en JAVA

Donde:
* Son palabras claves de JAVA que no se usan mucho actualmente, pero que versiones
anteriores si las usaban.
** Son palabras clave utilizada en la versin de JAVA 2.
true y false vistos como valores de tipos de datos primitivos, tampoco pueden ser
usados como identificadores.

Literales
Son valores constantes, constituidos por un conjunto de caracteres y que se escriben de
forma independiente, esto es en otras palabras se dice que un identificador es el smbolo
de un valor y la literal es el valor mismo. Son ejemplos de literales los nmeros (en
cualquiera de sus tipos), los caracteres y la cadena de caracteres

Ejemplo

Identificador Literal
NumDeVuelo = 747

Existen diferentes tipos de literales como las que a continuacin se mencionan:

Literales numricas
Se crean a partir de algn tipo de datos primitivo.
Ejemplos
747 // literal entera
3.13.159F // literal float

19
20

30030L // literal long


Literales booleanas
Consisten de las palabras reservadas trae y false.

Literales de caracter
Se manejan con un solo caracter y va entre apostrofes (comilla sencilla).

Ejemplos
H $ 3

Literales de cadena
Son un conjunto de caracteres, en el caso de JAVA son objetos (instancias) de la
clases String, teniendo mtodos parecidos a los de C/C++, para combinar,
probar y modificar cadenas con facilidad y se representan por una secuencia de
caracteres, las cuales van entre comillas (dobles)

Ejemplo
Hola Contadura Feliz Ao Nuevo 2006

Expresiones y operadores
Las expresiones son combinaciones de trminos, o de variables, operadores y llamadas
de mtodos hechas de acuerdo a la sintaxis del lenguaje y que regresar un solo valor,
del tipo que depender de los elementos usados.
Una expresiones es lo que se puede escribir a la derecha de una declaracin de
asignacin.

Ejemplo
salida = Hola Conrtadura;

i = j = 3; // Se pueden realizar asignaciones multiples


distancia = x2 x1; // Se pueden utilizar los operadores

Los operadores son los smbolos especiales que se encargan de realizar operaciones
como; la suma, la resta, la multiplicacin, etc.

La siguiente tabla 3.2 muestra un resumen de los distintos tipos de operadores.

Operador Significado o funcin Ejemplo

Operadores aritmticos

+ Suma a+b
- Resta a- b

20
21

* Multiplicacin a*b
/ Divisin a/b
% Mdulo (es el residuo de dos enteros) a%b
Operadores de asignacin

= Asignacin (es de derecha a izquierda) a=b


+= Suma y asignacin a += b (a=a + b)
-= Resta y asignacin a -= b (a=a - b)
*= Multiplicacin y asignacin a *= b (a=a * b)
/= Divisin y asignacin a / b (a=a / b)
%= Mdulo y asignacin a % b (a=a % b)
Operadores de relacin

== Igualdad a==b
!= Distinto a != b
< Menor que a<b
> Mayor que a>b
<= Menor o igual que a <= b
>= Mayor o igual que a >= b
Operadores especiales

++ Incremento a++
(postincremento)
++a
(preincremento)
-- Decremento a--
Postdecremento.- primero evala y luego (postdecremento)
decrementa --a
Predecremento.- primero decrementa y luego (predecremento)
evala
(tipo)expr Cast (permite hacer la conversin entre tipo de a = (int) b
datos primitivos)
+ Concatenacin de cadenas (permite unir cadenas) a = "cad1" +
"cad2"

21
22

. Acceso a variables y mtodos (es el operador a = obj.var1


punto)
Agrupacin de expresiones, para cambiar las
() a = (a + b) * c
prioridades de evaluacin
, Operador coma , int a,b,c;

TABLA 3.2 Operadores en JAVA

La siguiente tabla 3.3 muestra el orden o la precedencia que se les dio a los operadores,
los cuales aparecen en ese orden (de precedencia), los operadores que vienen en el
mismo rengln tienen igual precedencia (prioridad).

Operador Notas
[] () Los corchetes [ ] son para los arreglos
++ -- ! ~ ! es el NOT lgico (de negacin) y ~ es
el operador de bits de complemento a r
new (tipo)expr new se utiliza para crear instancias de
clases
* / % Multiplicacin, Divisin y Mdulo
+- Aditivos y de Substraccin
<< >> >>> Corrimiento de bits a la derecha y a la
izquierda
< > <= >= Relacionales
= = != Igualdad y diferente
& AND (operador de bits)
^ OR exclusivo (operador de bits)
| OR inclusivo (operador de bits)
&& AND lgico
|| OR lgico
?: Condicional Ternario
= += -= *= /= %= &= ^= |= <<= Asignacin
>>= >>>=

22
23

TABLA 3.3 Precedencia de los operadores en JAVA

Nota: Las expresiones, son evaluadas de izquierda a derecha y ya una vez evaluadas,
ese valor se pasa a la variable (identificadores) que se encuentra a la izquierda de la
expresin. Es de hacer notar que los operadores de bits (como en C/C++), tienen la
misma prioridad.

Variables
Las variables son localidades de memoria, en las que se almacenan los datos, cada una
tiene su propio nombre, tipo y valor. Los tipos de variables que maneja JAVA son de:

Instancia.-Se ocupan para definir los atributos de un objeto.


Clase.- Son variables en las que sus valores son idnticos para todas las
instancias de la clase
Locales.- Son las variables que se declaran y se utilizan cuando se definen los
mtodos.

El nombre de la variable ser algn identificador vlido (de acuerdo a lo explicado


anteriormente) y con el se hace la referencia a los datos que contienen la variable.

El tipo de una variable indica que valores puede manejar y alas operaciones que se
pueden hacer con ella, por ejemplo si es una variable de tipo entero, se pueden realizar
con ella las operaciones aritmticas, en tanto que si fueran de tipo carcter, no se
podran hacer este tipo de operaciones.

El valor que puede tomar es en s la literal, que va a depender precisamente de su tipo.

Para indicar el tipo y un nombre de una variable, se sigue la siguiente sintaxis:

TipoDeLaVariable nombreDeLaVariable;

Ejemplo

String letrero; // variable de tipo string


char letra; // variable de tipo char
int entero; // variable de tipo entero
float real; // variable de tipo float (variable real)
boolean logico; // variable de tipo lgico (verdadero o falso)
Avion boing; // se declara una variable llamada boing que es de tipo
// Avion

Vuelo comercial, militar, privado; // se declaran varias variables del mismo


// tipo, se declaran las variables comercial,
// militar y privado los tres de tipo Vuelo

String mensaje = Hola Contadura; // se declara la variable mensaje de tipo


// string y se inicializa al momento de su

23
24

// declaracion

Las variables como se mencion anteriormente pueden ser de los siguientes tipos:

Primitivo (nmero, carcter o booleano).

En la siguiente tabla 3.4 se muestra un condensado de este tipo de variables.

Tipo Descripcin Tamao/Formato


Nmeros enteros
byte Entero byte 8-bit
short Entero corto 16-bit
int Entero 32-bit
long Entero largo 64- bit
Nmeros reales
float Punto flotante 32-bit
double Punto flotante de doble presicin 64-bit
Otros tipos
16-bit caracteres
char Un solo carcter
Unicode
boolean Un valor booleano true o false

TABLA 3.4 Datos Primitivos en JAVA

Referencia
En JAVA ya no existen los apuntadores, pero se sustituyen con las referencias, el valor
de una variable de tipo referencia tiene una direccin de un grupo de valores
representados por una variable.

Ejemplo
Atleta nadador; // se hace la referencia a un objeto de la clase Atleta

String letrero; // se hace la referencia a un objeto de la clase string

III.2.- Estructuras de control


En este punto se va a profundizar en lo que son las sentencias, vistas con anterioridad
en el punto III.1.

24
25

Sentencia.- Tambin llamada instruccin, es la unidad bsica del lenguaje, es la tarea


ms sencilla que realiza un programa. Existen diferentes tipos de sentencias como:
sentencias de expresin, de declaracin de variables y de flujo, que son las que se
detallaran ms adelante.

Sentencias de expresin
Recordando que las expresiones terminan con punto y coma ; y a continuacin,
se presentan algunos ejemplos de tipos diferentes de sentencias.

Ejemplos:

pi = 3.14159; // sentencia de asignacin


a++; // sentencia de posincremento
--b; // sentencia de preincremento
System.out.println(Hola Contadura); // sentencia de llamada a un mtodo
Avion jet = new Avion( ); // sentencia para la creacin de objetos

Sentencias de declaracin de variables


Son para declarar variables.

Ejemplos

int b;
double a = 8933.234; // se puede inicializar el valor de la variable
String mensaje;
a=b=5; // se pueden inicializar mas de una variable al momento de
// declarar las variables

Sentencias de control de flujo


Estas sentencias determinan el orden en el cual sern ejecutadas otro
conjunto de sentencias, entre las ms comunes estn las siguientes:

Las sentencias condicionales como: el if then else, el switch.


Las de iteracin o bucles como: el for, el while, el do while.

Las sentencias de control de flujo y en general las sentencias son muy parecidas
a las que se ocupan en C/C++, a excepcin de que JAVA no tiene el goto.

A continuacin se presentan ms detalladamente estas sentencias de control de flujos.

La sentencia condicionales

if then else
La sentencia if evala en primer lugar su expresin condicional, la cual solo podr tener
dos valores: verdadero o falso y dependiendo de ello lleva la ejecucin de un grupo de
sentencias o de otro grupo de ellas o ninguna sentencia. Con esta sentencia se lograra
que la computadora tome decisiones, basndose en el criterio de la condicin dada.

25
26

La sintaxis en general del if then es:

if (condicin)
{
Conjunto de sentencias;
}

En este caso solo se trata del if then donde nicamente se realiza(n) la(s) sentencia(s),
cuando la condicin que se evala es verdadera, y en caso contrario cuando es falsa no
se realiza nada y continua con el flujo del programa despus del if. Es de hacer notar
que lleva las dos llaves de { y } para delimitar el bloque de instrucciones que se
ejecutaran cuando sea verdadera la condicin, pudiendo ser opcionales, cuando se trate
de una sola instruccin.

La sintaxis del if then else es:

if (condicin)
{
Conjunto de sentencias grupoa;
}
else
{
Conjunto de sentencias grupob;
}

La diferencia con el if then es que aqu si se ejecuta el conjunto de sentencias del


grupoa, cuando la condicin es verdadera, en tanto que si la condicin es falsa se
ejecutan las sentencias del grupob. En ambos casos se contina la ejecucin del
programa despus del if.

La sintaxis del if anidado es:

if (condicion1)
{
instruccion;
}
else
if (condicion2)
{
instruccion;
}
.
.
.
.
else
{
instruccion;
}

26
27

Se pueden emplear, tanto if then, como if then else.

La sintaxis del if else if es:

if (condicion1)
{
instruccion;
}
else if (condicion2)
{
instruccion;
}
.
.
.
.
else
{
instruccion;
}

Y tambin se pueden emplear, tanto if then, como if then else. Es de hacer notar, que
para cualquiera de las sintaxis anteriores del if, no es necesario dejar las sangras, que
se indican en los renglones anteriores, pero se recomienda dejarlos, para mayor claridad
en la programacin.

Otra variante del if es la alternativa ? (condicional ternario) y su sintaxis es:

exp1 ? exp2: exp3

Donde exp1 se evala y si resulta verdadera, se evala exp2 y si es falsa exp1, entonces
se evala exp3.

Ejemplos.
if (valor > 0) // ejemplo del if then con una sentencia
System.out.println("Hola Contadura");

if (valor > 9) //ejemplo del if then else con varias sentencias


{
System.out.println("Hola Contadura");
System.out.println("Hola Administracin");
}
else

27
28

{
a=3;
System.out.println("a=3");
}

a=20; // ejemplo del condicional ternario


b=a= = 20?10:20;
System.out.println ("b quedo con el valor de 10");

Nota: el System.out.println es una de las formas ms sencillas para desplegar


resultados.

La sentencia switch
Es una estructura de seleccin y se utiliza cuando se quiere comparar una variable (solo
de tipo entero o char) con una serie de valores diferentes, se indican los posibles
valores que puede tomar la variable y las sentencias que se ejecutarn cuando la
variable coincide con alguno de estos valores.

Para el switch se tiene la siguiente sintaxis:

switch (variable o expresin)


{
case cte1:
bloque de sentencias
break;
case cte2:
bloque de sentencias
break;
case cte3:
bloque de sentencias
break;
.
.
.
.
case cten:
bloque de sentencias
break;
default:
bloque de sentencias
}

Su funcin es la de realizar solo el grupo de sentencias correspondientes de acuerdo al


valor de la variable que deber de evaluarse. Es como si se tratara de varios ifs
anidados. A grandes rasgos su funcionalidad se puede resumir en los siguientes puntos:

Solo puede evaluar la expresin por igualdad.

28
29

Solo puede evaluar expresiones enteras y si se utilizan de tipo carcter se


convierten automaticamente a sus valores enteros.
El uso del break, indica que salga de la instruccin switch transfiere el control
al final de la sentencia switch, es por ello que el default, puede o no llevar
break, ya que es la ltima parte del switch. Si se desea que ms de un case se
realice, se pueden omitir los breaks, ya que se saldr de este switch hasta que
encuentre un break o termine todo el cuerpo del sitwch.
Puede tener otros sitwch anidados en alguno de los cases, en donde si se repita
el valor de la constante.
Si se desea que para ms de una opcin de case, se ejecute lo mismo, bastara
con no ponerle el break.
El default (su bloque de sentencias), lo realizar solo cuando no se cumpla
ninguna de las condiciones que se indicaron con cada uno de los cases.

Ejemplo:
int a=4;
switch(a)
{
case 3:
printf("I");
case 2:
printf("I");
case 1:
printf("I");
break;
case 4:
printf("I");
printf("V");
break;
default:
printf("no es un numero que este entre 1 y 4");
}

Las sentencias de iteracin o bucles


Permiten ejecutar un nmero finito (si es que no se llega a un loop) de veces un grupo
de sentencias, hasta que se llega a cumplir cierta condicin.

El ciclo for
Logra repetir una sentencia o un bloque de sentencias mientras la condicin se cumpla.
Para el for, su sintaxis es la siguiente:

for (variable de inicio; condicin ; accin de incremento o decremento)


{
grupo de sentencias
}

29
30

La inicializacin que se da en la variable de inicio, es una sentencia de asignacin que


se utiliza para establecer una variable que controle el ciclo.

La condicin es una expresin que prueba la variable de inicio que controla el ciclo y
determinar cuando salir de l.

El incremento o decremento es el que hace que cambie la variable de inicio, para que
en algn momento dado pueda salir del ciclo.

Los ciclos while y do while

Estos ciclos son muy parecidos al for solo que tienen algunas ligeras variantes ya que
repite un bloque de sentencias mientras se cumpla con la condicin, sobre todo en su
sintaxis, a continuacin se describen ms a detalle.

Para el do while su sintaxis es:

do

conjunto de sentencias

} while (condicin);

Es un ciclo repetitivo, que se va a realizar lo que se encuentra dentro de los


delimitadores { y } , mientras se cumpla la condicin. Primero ejecuta el conjunto de
sentencias y luego evala la condicin.

Para el while se tiene la siguiente sintaxis:

while (condicin)

Conjunto de sentencias

Su funcin es como el do while, solo que aqu, primero pregunta (evala) y luego

ejecuta.

30
31

break y continue

El break es una de las instrucciones de salto, que cuando se ejecuta, se va a la


siguiente instruccin, esto es; fuerza la terminacin de la instruccin, de donde
apareci el break, sin hacer caso de las lneas que estn despus del break.

Se utiliza en el switch dentro de los cases y tambin se utiliza para la terminacin


inmediata de un ciclo, brincando la condicin de terminacin del ciclo.

El continue, tambin es una instruccin de salto, pero contina la accin de la


instruccin, ya que fuerza una nueva iteracin del ciclo, ignorando todo el cdigo que
aparezca a continuacin.

return

Logra la salida del mtodo actual de ejecucin, regresando que el control del programa
vuelva al cdigo que lo llam. Pudiendo devolver un valor, el cual va seguido despus
de la palabra reservada return. El tipo de este valor es del mismo que el que tiene la
declaracin del mtodo a excepcin del mtodo que sea declarado void y entonces no
regresar ningn valor, como sucede en C/C++.

Ejemplo:

return raiz;

Constructores, creacin de objetos y recoleccin de basura

Una vez que se ha definido la clase, se pueden crear objetos, de esa clase, para lo cual
es necesario declararlos, de forma similar a como se declaran variables de tipo de datos
sencillos, pero ahora se usa la clase como tipo de objeto, es similar a la sentencia
struct y malloc de C.

Creacin de objetos.

En la creacin de objetos se utiliza la palabra clave new, es de hacer notar que no


siempre se deben de declarar los objetos antes de utilizarlos, ya que existen clases
predeterminadas como String.

Ejemplo:

31
32

En la lnea siguiente se realiza al mismo tiempo la creacin y la referencia del objeto

Vuelo avion=new Vuelo();

En las siguientes dos lneas ser realizan por separado la creacin y la referencia del
objeto.

Vuelo avion; // Se crea la variable objeto (memoria stack)

// es en s la declaracin del objeto

avion = new Vuelo(); // Se realiza la referencia del objeto

//(memoria heap). Se inicializa el objeto

El operador new

new crea una instancia de clase proporcionando la memoria necesaria al objeto creado,
este operador esta vinculado con el constructor.

Constructores.

Como se coment en el captulo anterior, es un tipo especfico de mtodo, cuyo


nombre es el mismo nombre que la clase. Y que es utilizado cuando se quieren crear
objetos de esa clase y es utilizado o ejecutado al crear e iniciar dicho objeto.

Puede existir ms de un constructor y se conocen como constructores mltiples, con o


sin parmetros. Si no existe algn constructor, JAVA proporciona uno por omisin, el
cual inicializa las variables del objeto con los valores que se dan predeterminadamente.

Recoleccin de basura

Es un proceso que tiene JAVA, para reclamar el espacio de memoria de un objeto,


cuando ya no exista ninguna referencia al objeto.

Manejo de mtodos y variables

Recordando que un objeto puede tener atributo o caractersticas y mtodos o


acciones, va a ser necesario acceder a ellos a travs del operador punto(.), de las
siguientes maneras, para poder trabajar con estos elementos del objeto.

Manejando sus variables (atributos) en forma directa. Cuya sintaxis es:

nombreDelObjeto.nombreDeLaVariable;

32
33

Utilizacin de sus mtodos (acciones).- Su formato es:

nombreDel Objeto.nombreDelMtodo (<lista de argumentos>);

NOTA: recordando que lo que se encuentra entre pico parntesis es opcional.

Ejemplo:

/* Programa creado con el nombre de Alumno.java */

class Alumno

int numCta; // Se declaran las variables (atributos)

String nombre; // de la clase Alumno

int edad;

String direccion;

int cveCarrera;

Alumno() //Primer constructor de la clase Alumno

{ //(se pueden tener varios constructores)

numCta=0; //cuya funcin en este ejemplo es la de

nombre = null; //inicializar las variables de la clase

edad = 0; //no tiene ningn parmetro

direccion = null;

cveCarrera = 0;

33
34

Alumno(int numCta, String nombre, int edad, String direccion,

int cveCarrera) // se delcara el segundo contructor

this.numCta = numCta; // la palabra clave this que se

this.nombre = nombre; // refiere solo a las varibales

this.edad = edad; // de este mtodo

this.direccion = direccion;

this.cveCarrera = cveCarrera;

void despliegaDatos (int numCta, String nombre) /* Se utiliza el Polimorfismo (por

sobrecarga) con este mtodo que tiene dos formas, este es con

parametros */

System.out.println("\nEn el metodo con parametros los datos son:");

System.out.println("Cta = " + numCta + " Nombre:" +

nombre);

void despliegaDatos () /* Se utiliza el mismo mtodo ahora

sin parmetros

Sytem.out.println permite desplegar mensajes y

34
35

datos en el monitor y acepta los caracteres de escape

pra el salto de lneas, que se utilizan en C*/

System.out.println("\n\nEn el metodo sin parametros los datos son:");

System.out.println("Cta = " + numCta + " Nombre: " +

nombre + " Edad: " + edad + " Direccion: " +

direccion + " Cve de la carrera " +

cveCarrera);

public static void main(String args[]) /* Se declara el mtodo

principal */

Alumno alUno = new Alumno();/* Se utiliza el primer constructor


*/

Alumno alDos = new Alumno (745, "Luis Arenas", 24, "Conocida",22);

/* Se utiliza el segundo constructor con

Parmetros */

alUno.numCta=999; /* Se inicializan algunas de las variables*/

alUno.nombre="Juan Perez";

// alUno.direccion="Palaza de la Constitucion 130";

alUno.despliegaDatos(alUno.numCta, alUno.nombre); /* se llama

al mtodo despliegaDatos con parmetro el objeto)*/

35
36

alDos.despliegaDatos(); /* se utiliz al mtodo depliegaDatos

a traves del objeto alDos */

La salida del programa es:

En el mtodo con parmetros los datos son:

Cta = 999 Nombre: Juan Perez

En el mtodo sin parmetros los datos son:

Cta = 745 Nombre: Luis Arenas Edad: 24 Direccin: Conocida Cve de la carrera 22

Herencia de clases en JAVA


Retomando el concepto de herencia visto en el capitulo anterior, se mostrar como se
utiliza en JAVA, recordando que este concepto esta muy vinculado a la estructura
jerrquica del rbol, donde se organizan las relaciones entre las clases.

En JAVA se maneja solo la herencia simple, por lo que cada clase solo tiene una clase
padre, la cual se conoce como superclase y a la clase hija como subclase. Una
subclase hereda las variables y mtodos de su superclase, aunque puede llegarse a dar
el caso de que se anulen o se agreguen algunos de estos elementos.

Para implementar una subclase, se utiliza la palabra clave extends en la declaracin de


la clase. Su sintaxis es la siguiente:

class nombreDeSubclase extends nombreDeSuperclase


{

En JAVA se puede implementar la herencia mltiple (cuando una subclase tiene ms de


una clase padre), de dos formas:
Declarando varias herencias simples.
Por ejemplo. La clase a sea subclase de b y de c, se puede declarar las siguientes
herencias simples.

class B

36
37

{
// cuerpo de la clase B
}

class C
{
// cuerpo de la clase C
}

class A extends c
{
// cuerpo de la clase A
}

A travs de Interfaces.- Las cuales se detallaran ms adelante.

Es de hacer notar, que la madre de todas las clases en JAVA es la Object (superclase de
todas las clases).

Sobre escritura de mtodos


Una subclase hereda todos los mtodos de su superclase a excepcin de que la subclase
sobrescriba los mtodos.

Se dice que una subclase sobrescribe un mtodo de su superclase cuando crea un


mtodo con las mismas caractersticas de nombre, nmero y tipo de argumentos, que el
mtodo de la superclase. Y se emplea generalmente para agregar, quitar o modificar la
funcionalidad del mtodo que se hereda de la superclase.

Ejemplo:

class A
{
void metodoUno(String var)
{
// Cuerpo del metodoUno
}

void metodoDos( )
{
// Cuerpo del metodoDos
}
}

class B extends A
{
/* Estos mtodos sobrescriben a los mtodos de la clase padre */
void metodoUno (String var)
{

37
38

// Cuerpo del metodoUno modificado en la subclase B


}

void metodoDos( )
{
// Cuerpo del metodoDos modificado en la subclase B
}
}

Tipos de Clases (abstractas, comn y final)


Clase abstracta.- Recordando el rbol jerrquico de las clases, la raz de todas ellas se
conoce como clase abstracta y es la clase que declara la existencia de mtodos pero no
la implementacin de dichos mtodos, esto es no lleva las llaves { } y las sentencias
entre ellas.

En una clase abstracta por lo menos uno de los mtodos debe ser declarado abstracto.

Se utiliza la palabra clave abstract, para declarar una clase o un mtodo como
abstractos.

Ejemplo:
abstract class A
{
abstract void metodoUno(String var1);
void metodoDos( )
{
// Cuerpo del metodoDos
}
}

De una clase abstracta no se puede crear objetos, pero si se puede heredar y las
subclases, podrn agregar la funcionalidad a los mtodos abstractos. Puede darse el
caso de que si no lo hacen as, las subclases sern tambin abstractas.

Una clase comn, es la parte del rbol jerrquico que se encuentra entre en los niveles
intermedios de dicho rbol. En esta clase se puede heredar y crear objetos. Se tiene
ascendencia y descendencia.

En la clase final, no se puede heredar, se tiene ascendencia, pero no descendencia y es


el nivel que se encuentra mas abajo del rbol jerrquico. Y se utiliza la palabra clave
final.

Ejemplo:
final class animal
{
//cuerpo de la clase animal
}

38
39

Interfaces
Una interface es un conjunto de constantes y de mtodos abstractos La definicin de
una interface es prcticamente igual que el de una clase, ya que solo se sustituye la
palabra clave class por . interface.

Ejemplo:

interface Mamifero
{
// Cuerpo de la interface Mamifero
}

Con la plabara clave implements, se puede hacer uso de una o de varias interfaces, con
lo cual se puede simular la herencia mltiple, que se mencion anteriormente,

Ejemplo:

class Gato implements Mamifero


{
// Cuerpo de la clase Gato
}

Ejemplo:

class Rana extends Invertebrados implements Pescados, Anfibios.


{
// Cuerpo de la clase Rana que heredo de tres clase diferentes (Invertebrados
// Pescados y Anfibios
}
NOTA: Se pueden anular o sobrescribiendo nuevamente los mtodos, en las subclases.

III.3.- Paquetes de JAVA


Un paquete es un grupo de clases e interfaces relacionadas y sirve para lograr que la
clase sea ms fcil de localizar, logrando tambin un mejor control de acceso a los
miembros de una clase. Se pueden utilizar paquetes ya desarrollados por JAVA o bien
por los realizados por el mismo programador o por terceros.

Creacin de paquetes
Si se desea realizar que alguna clase o interface pertenezca a un paquete se utiliza la
siguiente sintaxis:

package nombre;

donde nombre puede ser tener una sola palabra o varias separadas por puntos, ya que
esta compuesto como sigue dicho nombre:

39
40

nomDel Paquete.nombreDel SubpaqueteUno.nombreDelSubpaqueteDosclase

Ejemplo 1:

package paquete1;
class ClaseUno
{
//Cuerpo de la ClaseUno
}

Ejemplo 2:

package paquete2.apellido; // Los nombres de los paquetes corresponden con el


class ClaseDos // nombre de los directorios en el sistema de archivos
{
// Cuerpo de la ClaseDos
}

Si se desea utilizar una clase en especial, se utiliza la palabra reservada import..

Ejemplo:

import java.util.Date;

Si se ahora se requiere utilizar todas loas clases de un paquete especifico, se utiliza el


asterisco.

Ejemplo:

Import java.util.*;

El orden en que van apareciendo en un archivo fuente de una aplicacin de JAVA estos
elementos que se estn tratando es el siguiente:

package contadura.informatica.software; //Se le da el nombre al paquete que se va a


crear

import java.util.Date; //Se declaran los paquetes que se van a


utilizar
import java.awt.Panel; //en esta aplicacin

class Lenguajes4GL extends Panel //Se utiliza solo el nombre de la clase


importada
//ya que se importo solamente esa en
particular
//del paquete ms grande java y dentro de el
esta
//el paquete awt.

40
41

//Si se hubiera importado un conjunto de


clases
//seria necesario especificar todo el nombre
del
//paquete, subpaquete(s) y clase
{
// Cuerpo de la clase Lenguajes4GL
}

Otro programa puede utilizar este paquete haciendo la referencia a el de la siguiente


manera:

import contadura.informatica.software.Lenguajes4GL;

Un punto importante, es que la importacin de paquetes y de clases, indica nicamente


al compilador de JAVA donde buscar el cdigo que necesita, sin aumentar el tamao
del programa.

Tambin se puede importar una clase hecha por el mismo programador o por otra
persona como la clase Salida que se define a continuacin:

class Salida
{
// Cuerpo de la clase Salida
}

En un programa se puede importar la clase Salida, como se muestra enseguida:

import Salida;
class EjemploUno
{
// Cuerpo de la clase EjemploUno donde se ocupa algn(nos) mtodos de la
//clase que se import
}

Es de hacer notar que la clase que se importa debe de estar en el directorio actual de
trabajo, si no va a mandar un mensaje de error, pero tambin se pueden organizar los
programas de acuerdo por ejemplo, a su aplicacin en diferentes directorios y a travs
de la importacin se pueden compartir y utilizar en diferentes programas, aunque no se
encuentren en el directorio actual de trabajo, pero se deber de utilizar la variable de
entorno de CLASSPATH, para indicarle al compilador de JAVA, en que otros
directorios busque los paquetes, su sintaxis es:

SET CLASSPATH =C:\directorio1;C:\directorio2;%CLASSPATH%

41
42

Se pueden aadir varios directorios donde busque el paquete, nicamente indicndolos


en esta instruccin separados por punto y coma (;) y no dejando espacios en blanco
junto al signo igual.

La versin 2 de JAVA, presenta un conjunto de cerca de sesenta paquetes, los cuales


estn dentro de del paquete general llamado java.*, entre los ms importantes se
encuentran:
java.lang.-Tiene las clase con las que puede trabajar el programa
principal.
java.util.-Se encuentran clases especializadas como son la de los
calendarios.
java.io.-Proporciona un archivo independiente del dispositivo y servicios
de Entrada/Salida.
java.awt.-Contiene la mayora de las clases dedicadas a los grficos.
Este paquete es de vital importancia y se detallar ms a detalle en el
siguiente captulo.
java.net.-Son las clases que pueden trabajar con los programas de bajo
nivel en Internet y WWW.
java.applet.-Cuenta con una clase que puede trabajar con el lenguaje
HTML, el cual se utiliza en los applets de JAVA. Este paquete tambin
se describir ms a detalle en el captulo cinco.

III.4.- Programacin con excepciones


Un punto trascendental en la elaboracin y ejecucin de programas es el manejo de
errores, los cuales pueden ser detectados en dos fases:

En la compilacin, que seran los errores de sintaxis y de estos brinda mucha


ayuda el compilador, ya que indica el nmero de la lnea donde se detecto el
error, as como el mensaje de error.
En la ejecucin, donde la mayora de esos errores seran los de semntica o
lgicos, como por ejemplo la divisin entre cero, que el compilador en muchos
de los casos no lo detecta, ya que puede ser algn datos que lea el programa el
que se utilice, para realizar esa divisin y que en algn momento pueda llegar a
ser cero. Si no se detectan a tiempo estos errores, puede hacer que el programa
termine abortando su ejecucin, dando resultados que no son los deseados, si es
que llega a darlos, y en algunos casos, se puede llegar a perder inclusive
informacin.

Por lo que es conveniente, que varios de estos errores sean manejados en el momento
de la ejecucin del programa, para que esta no se vea afectada.

Es necesario asilar la posible causa de error y manejarla, de tal forma que no cause
problemas, ya sea indicando haga algo y que el programa aborte su ejecucin o que
prosiga su ejecucin.

Haciendo una analoga, casi es como el manejo de interrupciones cuando se


programa en ensamblador.

42
43

Cuando sucede una excepcin impide la continuacin de la ejecucin de una parte del
programa y no puede continuar, porque no se tiene la informacin suficiente para
solucionar ese problema o situacin inesperada.

JAVA permite seleccionar la parte del cdigo donde se contemple que pueden suceder
situaciones inesperadas, as como cuales podran ser y en cada una de ellas se indica
que acciones se van a seguir.

Las excepciones en Java son objetos y tienen su propio rbol de jerarqua. La clase raz
de ellas es Throwable, que es una subclase de Object (la clase madre en JAVA). Los
mtodos que se definen para estos objetos sern los que manden los mensajes error
que estn relacionados con cada uno de los diferentes tipos de excepciones. En la
figura III.1 se muestra este rbol a grandes rasgos:

FIGURA III.1 rbol de excepciones en JAVA

De esta figura se puede apreciar lo siguiente; los errores y las excepciones son
subclases de Throwable, por lo que heredan sus mtodos, entre los que se encuentran:

toString( ) muestra el nombre de una excepcin junto con el mensaje que


devuelve getMessage().

getMessage( ) se utiliza para obtener un mensaje de error asociado con una


excepcin.

printStackTrace ( ) permite imprimir el registro del snack donde se inici la


excepcin.

III.5.- Clusula try match


Cuando se activa una excepcin, se lanza, alguien debe de capturarla y hacer algo.
Se utilizan los controladores de excepcin para determinar en un momento la excepcin
que se ha lanzadoEl manejo de excepciones en JAVA permite separar el cdigo del
problema a resolver, del cdigo de errores que se puede generar.

43
44

Se delimita un bloque a travs de la palabra clave try dentro del mtodo, para aislar el
cdigo que puede generar una excepcin, esto es para especificar el bloque de
declaraciones cuyas excepciones sern controladas por medio de una serie de clusulas
catch, las cuales pude variar en cuanto a su nmero. Esto quiere decir que un mismo
bloque delimitado por try puede tener varios catchs, que detecten diferentes causas de
excepcin y diferentes acciones a seguir.

Cuando se lanza o tienen lugar una de estas excepciones, entonces se ejecutar el


bloque de la excepcin, que coincida con el de la clase o superclase de la excepcin.

Su sintaxis es:
try
{
//cuerpo del bloque que puede generar excepciones
}

Cuando una excepcin es lanzada, se debe de manejar por medio de otro bloque de
cdigo aparte, conocido como el manejador de excepciones, existiendo un bloque por
cada excepcin diferente que se maneje. Estos manejadores de excepciones se
distinguen por llevar la palabra clave catch.

Cada bloque de cdigo de catch funciona como un mtodo de un solo parmetro o


argumento, siendo ste el que indica que tipo de error o excepcin es con el que se
activa. La sintaxis general es:

try
{
//cuerpo del bloque que puede generar excepciones
}
catch(nombreDel Error1 identificador1)
{
// Mtodo que maneja la excepcin del nombreDel Error1
}
catch(nombreDel Error2 identificador2)
{
// Mtodo que maneja la excepcin del nombreDel Error2
}
.
. //Tantos catchs como sean necesarios
. //(nmero de excepciones que se puedan generar)

Tambin se puede atrapar cualquier tipo de excepcin, a travs de la clase base


Exception su sintaxis es la siguiente:

Match (Exception e)
{
// Bloque que maneja la excepcin en general
}

44
45

Dentro del bloque se pueden manejar algunos de los mtodos de la superclase de


Exception, que es Throwable, como se puede apreciar en la figura III.1.

Declaracin throwable,
Se puede lanzar una excepcin a travs de la declaracin throw su formato se muestra a
continuacin:

throwable expresin;

Siendo expresin la que se valore con la clase Throwable o en su subclases y en la


mayora de los casos se utiliza con new.

Ejemplo:
throw new IOException(Mensaje de error);

IV. PROGRAMACIN DE INTERFASES GRFICAS


A principios de la dcada de los noventas, es cuando Internet se empieza a popularizar,
al pasar al mbito universitario y comercial, en esa poca, se utilizaban en los
navegadores ms populares de esa poca como Mosaic, solo presentaciones de texto
esttico, posteriormente imgenes sin movimiento y a ltimos aos, elementos de
sonido y animaciones, cada vez se usan ms los ambientes grficos.

Es precisamente por principios de la dcada pasada, que es cuando nace JAVA,


logrando satisfacer en gran medida los requerimientos que Internet va exigiendo, con
todos estos elementos, que hacen que de paginas estticas, se logren paginas ms
atractivas, con movimiento e interactivas.

En la versin de JAVA 1.0 se dise la interfaz grfica de usuario (GUI),la cual da la


facilidad de construir aplicaciones grficas, compatible con cualquier plataforma.
Posteriormente se logr mejorar estas aplicaciones con la creacin del awt (Abstaract
Window Toolkit) yes en la versin de JAVA 1.1 en que se perfecciono el awt y adems
se le incorpor otra herramienta que se conoce como Java Beans, la cual tiene
componentes para la creacin de ambientes visuales.
Se consolida este ambiente grfico en la versin de JAVA 2, que es con la que se
prepararon los ejercicios, que se muestran en este trabajo.

IV.1.- El paquete JAVA.awt


Como se mencion en el captulo anterior java.awt, contiene la mayora de las clases
dedicadas a los grficos y es el ms grande e importante de todos los de JAVA. Se
dividen los siguientes grandes grupos:

El dedicado a los componentes GUI (interfaz grfica de usuario) y son:


o El subrbol Component.
o El subrbol MenuComponent.
El de clases especializadas en la gestin de capas.

45
46

o FlowLayout.
o BordeLayout.
o CardLayout.
o GrildLayout.
o GridBagLayout y GridBagConstraints.
o Instes.
El de clases grficas.
o Graphics, Graphics2D y PrintGraphics.
o Image.
o Color y SystemColor.
o Font.
o FontMetrics.
o AlphaComposite y Composite.
o BasicStroke y Stroke.
o GraphicsConfigTemplate, GraphicsConfiguration, GraphicsDevice y
GraphicsEnvironment.
o GradientPaint y TexturePaint.
o RenderingHints,
El de clases geomtricas.
o Point.
o Polygon.
o Dimension.
o Rectangle.
o Shape.
El de clase por eventos
o Event.
o AWTEvent.
o AWEventMulticaster.
o EventQueue.
o ActiveEvent.
Y el que tiene todas las dems clases varias.
o MediaTracker.
o Toolkit.
o PrintJob.
o Cursor.
o ComponentOrientation.

IV.2.- Componentes y elementos grficos


Cuando se desean realizar animaciones, se utilizarn diferentes clases como la GUI,
entre las caractersticas que se manejarn son las de los colores e imgenes.
En el prrafo anterior nicamente se mencionaron las clases graficas de awk, en este
punto se describirn con un poco ms de detalle las ms importantes de ellas.

Graphics, Graphics2D y PrintGraphics


La clase Graphics es de tipo abstracta y puede manejar modelos en 2D, sus mtodos
ms importantes pueden realizar funciones como:

o Dibujar Texto.

46
47

o Copiar reas rectangulares.


o Dibujar figuras o superficies tales como; rectngulos, valos, polgonos y arcos.
o Trazar lneas.
o Traslacin del sistema de coordenadas.
o Recortar rectngulos.
o Cambiar el color.
o Funciones para solicitar grficos.

La clase Graphics2D es una extensin de Graphics con la particularidad, que puede


desarrollar un modelo en 2D ms complejo, ya que entre lo que puede realizar esta lo
siguiente:

o Dibujar las imgenes, al mismo tiempo que realiza una serie de


transformaciones.
o Dibujar formas con caractersticas tales como el de presentar la vista previa, o
con lneas de diferentes grosores, etc.
o Un manejo de texto, que permita el recortar una parte de l.
o Mover o trasladar el sistema de coordenadas.
o Funciones para solicitar grficos.

La ltima clase de este grupo que es PrintGraphics, en realidad es una interfaz, que
cuenta con todos los mtodos de Graphics y direcciona el resultado de los comandos en
la impresora, ya que lo ms comn es que se presenten en el monitor.

Image
Permite el manejo de imgenes independiente de cualquier plataforma, basndose en un
mapa de bits (bitmaps), los mtodos que tienen estas clases permiten realizar cosa como
las que a continuacin se mencionan:

Pedir las propiedades de la imagen, tales como el formato, de los derechos del
copyright, entre otros.
Solicitar las dimensiones de una imagen.
Y realizar un contexto grfico para la imagen, que permita trabajar con los
mtodos de dibujo de Graphics.

Color y SystemColor
Permite a travs de una estructura de datos manejar de forma independiente a la
plataforma, se pueden manejar varios mtodos y entre las acciones que permite hacer se
tienen las siguientes:

Transformacin entre los modelos RGB y HSB.


Manejo de los componentes de los colores rojo, verde y azul.
Modificar la intensidad del brillo de un color.

Font yFontMetrics
Permiten acceder y solicitarle al sistema de fuentes locales para la realizacin de
funciones tales como:

47
48

Determinar una familia de fuentes, estilo, as como del tamao, dndolas por
puntos.
Pedir los atributos y medidas de una fuente, tales como el nombre, estilo,
tamao del punto, ancho , etc.

AlphaComposite y Composite
Composite es una interfaz, permite manipular las imgenes para darles efectos como el
de la transparencia y AlphaComposite es el responsable de producir la transparencia.

BasicStroke y Stroke
La clase BasicStroke da la facilidad de trabajar con: el ancho del lpiz, los atributos de
un boceto y de decoraciones utilizando lneas.
En tanto que Stroke es la clase que se encarga de describir el lpiz virtual, en la que el
usuario dibuja en el monitor a mano alzada.

GraphicsConfigTemplate, GraphicsConfiguration, GraphicsDevice y


GraphicsEnvironment
Estas clase permiten describer los destinos de las operaciones que son utilizada por
Graphics2D, ya que cada entorno grfico esta compuesto de una serie de dispositivos,
requiriendo cada uno de ellos su propia configuracin.

GradientPaint y TexturePaint
GradientPaint, permite dar un gradiente lineal de color y TexturePaint proporciona
una imagen, que ser utilizada para rellenar el modelo.

RenderingHints
Esta clase ayuda a Graphics2D, para que trabaje con los atributos del dibujo original.

IV.3.- Modelo para el manejo de eventos


Un evento es algo, que puede activar alguna reaccin, para el caso del
funcionamiento de una computadora, entre los que se tienen los siguientes.

o Del ratn, como lo son los diferentes clics del ratn.


o De movimientos del ratn, como el de arrastre.
o Clics de botones.
o Introduccin de caracteres en un campo de texto.
o Y selecciones de opciones, con el empleo del ratn.

Para cada tipo de evento que se llegase a producir, el programa debe de contemplar un
mtodo especial que se denomina manipulador de eventos, para cada tipo de dicho
evento.
Un manipulador de eventos, es una clase que implementa la interfaz apropiada al
evento que aconteci.

Event.- Es la clase que permite delegar eventos.AWTEvent.AWEventMulticaster.

48
49

V. PROGRAMACIN DE APPLETS

Recordando del primer captulo, los applets son programas pequeos, que son
introducidos en una pgina Web y que requieren de un Navegador Web compatible con
Java para poder ejecutarse. Es frecuente que los applets se descarguen junto con la
pgina HTML desde un Servidor Web y se ejecutan en la mquina cliente.
Los applets son herramientas, que soportan la aplicacin o arquitectura de
Cliente/Servidor, que se puede utilizar en una red de computadoras.

Los applets estndar estn construidos en la clase Applet, el cual se encuentra en el


paquete java.applet, de donde derivan sus propias clases de applets con solo usar la
palabra clave extends, como se muestra en el ejemplo que se muestra en los parrafos
posteriores.

Ventajas y deventajas de un applet


Pero todo en la vida tiene sus ventajas y desventajas y lo un applet no es la excepcin, a
continuacin se describen algunas de ellas:

Desventajas
o No puede tocar ningn disco duro o local.
o No puede ejecutar comandos del sistema operativo.
o Un applet debe de concertarse a travs de un socket (el cual es uno de los
extremos de comunicacin entre procesos, en un entorno de red).

Ventajas
o Facilitan la construccin de aplicaciones en una red de computadoras (sobre
todo en la arquitectura Cliente/Servidor).
o No se instala.- Funciona como una aplicacin independiente de la plataforma.
o Actualizacin instantnea.- La actualizacin del applet es del lado del servidor y
se ve reflejada cualquier actualizacin del lado del cliente.

V.1.- Declaracin de un applet

De manera similar a como se crea una aplicacin, se hace en el applet , a continuacin


se muestra un ejemplo:

Se edita el cdigo fuente.

import java.applet.*; //Se realiza la importacion de los paquetes


import java.awt.*; //del applet y de los graficos

public class AppletHolaContaduria extends Applet


{
public static void imprime( Graphics g)
{
g.drawString( Hola Contaduria", 50, 50); //se manda el
} // letrero y las
} //coordenadas

49
50

Se guarda en un archivo con extensin java y entre comillas, para que sea un
archivo de texto

Guardar como y en nombre del archivo se pondr


AppletHolaContaduria.java

Se compilar el programa con el siguiente comando:

javac AppletHolaContaduria.java

Si se llegan a tener errores de compilacin, en este momento los desplegar y si


no se tiene ningn error, entonces se generar, un archivo con extensin class.

Se crea con algn editor de textos, de forma similar al archivo de extensin .java, uno en
HTML, el cual incluir el applet como el ejemplo que a continuacin se muestra:

<HTML>
<HEAD>
<TITLE>PRIMER APPLET</TITLE>
</HEAD>
<BODY>
<BR>
<CENTER>
<APPLET
CODE=AppletHolaContaduria.class
WIDTH=200
HEIGHT=150>
</APPLET>
</CENTER>
</BODY>
</HTML>

Se guarda el archivo entre comillas y con extensin .html como se


ilustra a continuacin:

Guardar como y en nombre del archivo se pondr


AppletHolaContaduria.html

A travs de un navegador que puede ser Netscape o Explored por ejemplo, se


abrir este applet, dando la opcin de FILE y se actualizar la pagina,
ejecutndose y mostrar, para este ejemplo:

Hola Contadura

Los archivos que se generaron fueron:

ApplerHolaContaduria.java.

50
51

HolaContaduria.class.
AppletHolaContaduria.html.

V.2.- Ciclo de vida


Los applets utilizan marcos de trabajo conocidos como framework y su superclase es
JApplet, pudiendo sobrescribir sus mtodos. Existen varios mtodos que controlan lo
que podra considerarse el ciclo de vida de un applet como lo es su creacin y ejecucin
en una pgina Web.

A continuacin se describen brevemente los mtodos init, start, stop, destroy, paint y
update.

init
Es el primer mtodo a llamar, es donde se inicializa el appet y slo se llama una vez

start
Es llamado despus de init, dicho mtodo es llamado cada vez que un applet aparece
nuevamente en la pantalla, por ejemplo si el usuario al utilizar algn navegador se va de
pgina en pgina, de tal suerte que llega a una y navegando, regresa a la misma donde
estaba el applet, entonces se llama otra vez al mtodo init.

stop
Se llama cada vez que el navegador quita el foco del applet, o bien termina sus
operaciones, porque el navegador guiado por el usuario se mueve a otra pgina.

destroy
Es llamado cada vez que el applet, termin de utilizarse y va a ser eliminado de la
memoria.

paint
Se llama cuando se dibuja nuevamente el applet, pasando un objeto de la clase
Graphics y usando en los mtodos del objeto a dibujaren el applet.

update
Sirve para cuando se va a volver a dibujar una parte del applet.

V.3.- Restricciones de seguridad


Como se mencion al principio de este capitulo, los applets tienen sus ventajas y
desventajas, entre las que se encuentran precisamente las referentes a las de seguridad y
son las que a continuacin se comentan:

Protegen la integridad de los datos y de la informacin, ya que no puede tocar


ningn disco duro o local.
No puede ejecutar comandos del sistema operativo, con esto evitan que por
equivocacin o por mala fe como algn cracker o hacker puedan afectar el
funcionamiento del sistema.

51
52

Prev errores de inconsistencia, por realizar una actualizacin instantnea,


debido a que la actualizacin del applet es del lado del servidor y se ve reflejada
cualquier actualizacin del lado del cliente.

V.4.- Paso de parmetros


Cuando se crea la aplicacin de HTML (tambin se pueden introducir etiquetas
<APPLET> en el cdigo del arhivo con extensin java), para crear una pgina Web se
usa la etiqueta <APPLET>, para visualizar el applet, donde se ponen varios parmetros
entre los que se describen a continuacin algunos de los ms utilizados, de acuerdo a la
siguiente sintaxis:

<APPLET
[CODEBASE =URL]
CODE = nombre del archivo
[ALT = texto alterno]
[NAME = nombre de instancia]
WIDTH = pixeles
HEIGHT = pixeles
[ALIGN = alineacin]
[VSPACE = pixeles]
[HSPACE = pixeles]
>
[ <PARAM NAME = nombre VALUE = valor>]
.
.
.
.
[ <PARAM NAME = nombre VALUE = valor>]
</APPLET>

Donde:
CODEBASE: URL dice el directorio en donde se busca el cdigo del applet.
CODE, es el nombren del archivo del applet, con todo y extensin .class.
ALT, es el texto de error, que se va a desplegar, si es que el navegador soporta
el applet, pero no lo puede ejecutar por alguna causa.
NAME, es el nombre del applet en el navegador, ya que es necesaio darles
nombres a los applets para poder buscar otras applets.
WIDTH y HEIGHT, es la anchura y la altura respectivamente, del espacio
reservado para el applet.
ALIGN, pudiendo ser LEFT, RIGHT, TOP, BOOTOM, MIDDLE, etc, para
especificar la alineacin del applet.
VSPACE, es el espacio ubicado sobre y desde el applet
HSAPCE, Es el espacio que se ubica a la derecha e izquierda del applet
PARAM NAME, es el nombre del parmetro que se le va a pasar al applet.
PARAM VALUE, es en s el valor del parmetro.

52
53

NOTA: la convencin que se sigui es que lo que se encuentra entre los parntesis
cuadrados [ y ], son comandos opcionales a diferencia de los ejemplos anteriores, que
se ponan con pico parntesis, porque se podan confundir con los comandos de HTML.

VI: PROGRAMACIN CLIENTE/SERVIDOR

VI.1.- Arquitectura de las aplicaciones para red


Por lo general las aplicaciones Web, son procesadas, por entero del lado del servidor,
trayendo consigo un uso excesivo de memoria, manteniendo al usuario en espera
mientras termina de ejecutarse dicha aplicacin. Pero los navegadores que agrega
JAVA, del lado del cliente (usuario), pueden ejecutar aplicaciones, aparte de desplegar
los documentos HTML, poniendo a correr el proceso en el lugar adecuado.

VI.2- Implantacin de clientes y servidores


VI.3.- Interfaz JDBC

Introduccin a JDBC
Para poder entender JDBC, es necesario recordar un poco sobre el lenguaje de consulta
SQL. El cual es un lenguaje para crear, manejar y examinar las tablas de las bases de
datos relacionales, es un lenguaje de cuarta generacin (4GL), de aplicacin especfica,
que con comandos pequeos, llega a realizar operaciones de alto nivel, como lo son las
consulta, generacin de reporte, ordenamientos, etc.

SQL se estandarizo en el ao de 1992, con el fin de que cualquier programa pudiera


comunicarse, con la mayora de los sistemas de las bases de datos, sin cambiar los
comandos SQL, sin embargo cada base de datos, cuenta con una interfase diferente, as
como diferentes extensiones de SQL, proporcionada por cada proveedor, por lo que fue
necesario crear un interfase basada en C llamada ODBC, para estandarizar la
comunicacin con una base de datos, basada en SQL.

SQL, es un lenguaje muy poderoso, pero esta enfocado solo al manejo de las bases de
datos, para realizar aplicaciones en otras reas, como clculos, despliegues grficos,
etc., se deben de ocupar otros lenguajes de programacin de aplicaciones generales,
como los que han tenido auge en los tiempos ms recientes como los orientados a
objetos (POO), como pediera ser C++, pero la desventaja que tienen es que todava
vienen arrastrando la gran dependencia a una sola plataforma, siendo JAVA, tal vez el
primero que logra esta independencia, gracias a la utilizacin de su cdigo intermedio
bytecode.

JAVA maneja libreras estndar, entre las que se encuentra JDBC, la cual es una
evolucin de ODBC y la compaa que creo JAVA (JavaSoft), realiz un puente
JDBC-ODBC, para lograr una portabilidad en el uso de las bases de datos.

Para poder utilizar una aplicacin en JAVA que utilice JDBC, es necesario contar con
las siguientes acciones:

Crear una base de datos.- A travs de herramientas distintas a las de JAVA y


que soporten el manejo por medio de SQL. Y cargar el puente JDBC-ODBC.
Para lo cual se requiere la clase JdbcOdbcDriver, que tiene el formato:

53
54

ClassForName(sun.jdbc.odbc.JdbcOdbcDriver);

Realizar la conexin a un ODBC Data Source.- La cual es una base de datos,


que cuenta con el drive de ODBC.
Por ejemplo
Connection con = DriverManager.getConnection(url,login,password);
Introducir los datos/informacin a la base de datos.- Por medio de sentencias
como las que se muestran a continuacin:

Statement stmtcon.createStatement( );

Consultar la informacin de la base de datos. Para lo cual se ocupa el mtodo de


executeQuery con que cuenta JAVA y los resultados son devueltos en un objeto
tipo ResultSet y pueden ser analizados rengln por rengln, a travs de los
mtodos ResultSetNext y ResuktSet.getXXX

VI.4.- Implantacin de servicios en lnea

ANEXO A

PROGRAMA ORIGINAL DE LA ASIGNATURA: PROGRAMACIN


ORIENTADA A OBJETOS EN JAVA
CLAVE: 2040
PLAN:98 CRDITOS: 8
LICENCIATURA: INFORMTICA SEMESTRE : 9
AREA: INFORMTICA HRS. CLASE: 2
REQUISITOS: NINGUNO HRS. POR SEMANA: 4
TIPO DE ASIGNATURA: OBLIGATORIA ( ) OPTATIVA ( x )

OBJETIVO GENERAL:
PRESENTAR AL PARTICIPANTE LOS CONCEPTOS FUNDAMENTALES DE

54
55

LA PROGRAMACIN ORIENTADA A OBJETOS APLICNDOLOS CON EL


USO DEL LENGUAJE JAVA PARA EL DESARROLLO DE APLICACIONES
GENERALES
TEMAS: HORAS SUGERIDAS:

I - INTRODUCCIN 6
II. CONCEPTOS DE LA PROGRAMACIN
ORIENTADA A OBJETOS EN JAVA
16

III. ESTRUCTURA DEL LENGUAJE 16


IV. PROGRAMACIN DE 8
INTERFASES GRFICAS

V. PROGRAMACIN DE APPLETS 8

VI: PROGRAMACIN CLIENTE/SERVIDOR 8

EVALUACIN
6
_____
TOTAL 68

TEMAS:

I- INTRODUCCIN
I.1- El paradigma orientado a objetos
I.2- Principios fundamentales de la POO
I.3.- Anlisis y diseo orientado a objetos
I.4.- Lenguajes orientados a objetos

II. CONCEPTOS DE LA PROGRAMACIN ORIENTADA A


OBJETOS EN JAVA
II.1.- Clases de Objetos

55
56

II.2.- Mtodos y atributos de los objetos


II.3.- Herencia
II.4- Polimorfismo

III. ESTRUCTURA DEL LENGUAJE


III.1.- Tipos de datos
III.2.- Estructuras de control
III.3.- Paquetes de JAVA
III.4.- Programacin con excepciones
III.5.- Clusula try catch

IV. PROGRAMACIN DE INTERFASES GRFICAS


IV.1.- El paquete JAVA.awt
IV.2.- Componentes y elementos grficos
IV.3.- Modelo para el manejo de eventos

V. PROGRAMACIN DE APPLETS
V.1.- Declaracin de un applet
V.2.- Ciclo de vida
V.3.- Restricciones de seguridad
V.4.- Paso de parmetros

VI: PROGRAMACIN CLIENTE/SERVIDOR


VI.1.- Arquitectura de las aplicaciones para red
VI.2- Implantacin de clientes y servidores
VI.3.- Interfaz JDBC
VI.4.- Implantacin de servicios en lnea

ANEXO B

PROGRAMA DE PROPUESTO DE LA ASIGNATURA: PROGRAMACIN


ORIENTADA A OBJETOS EN JAVA
CLAVE: 2040
PLAN:98 CRDITOS: 8
LICENCIATURA: INFORMTICA SEMESTRE : 9
AREA: INFORMTICA HRS. CLASE: 2
REQUISITOS: : PROGRAMACIN DE HRS. POR SEMANA: 4
LENGUAJES DE CUARTA
GENERACIN
TIPO DE ASIGNATURA: OBLIGATORIA ( ) OPTATIVA ( x )

56
57

OBJETIVO GENERAL:
PRESENTAR AL PARTICIPANTE LOS CONCEPTOS FUNDAMENTALES DE
LA PROGRAMACIN ORIENTADA A OBJETOS APLICNDOLOS CON EL
USO DEL LENGUAJE JAVA PARA EL DESARROLLO DE APLICACIONES
GENERALES
TEMAS: HORAS SUGERIDAS:

I INTRODUCCIN 10
II. ESTRUCTURA DEL LENGUAJE 16
III. CONCEPTOS DE LA PROGRAMACIN
ORIENTADA A OBJETOS EN JAVA 16

IV. PROGRAMACIN DE
INTERFASES GRFICAS 10
V. PROGRAMACIN DE APPLETS
10

6
EVALUACIN _____
TOTAL 68

TEMAS:

Objetivo: Presentar un panorama general del paradigma de la


Programacin Orientada a Objetos, as como los conceptos bsicos
que se requieren para comprender este tipo de programacin.

I- INTRODUCCIN
I.1- El paradigma orientado a objetos
I.2- Principios fundamentales de la POO

57
58

I.3.- Anlisis y diseo orientado a objetos


I.4.- Lenguajes orientados a objetos

Objetivo: Dar a conocer los elementos principales de que consta la


sintaxis y la semntica del lenguaje de programacin JAVA.

II. ESTRUCTURA DEL LENGUAJE


II.1.- Tipos de datos
II.2.- Estructuras de control, constructores, creacin de objetos y recoleccin de
basura
II.3.- Paquetes de JAVA
II.4.- Programacin con excepciones
II.5.- Clusula try catch

Objetivo: Mostrar brevemente el funcionamiento de la plataforma


empleada (la Java Virtual Machine JVM), as como el proceso de
creacin, compilacin y ejecucin de una aplicacin hecha en
JAVA.

III. CONCEPTOS DE LA PROGRAMACIN ORIENTADA A


OBJETOS EN JAVA
III.1.- Introduccin a JAVA
III.2.- Cmo instalarlo
III.2.- Clases de Objetos
III.3.- Constructores y Destructores
III.4.- Mtodos
III.5.- Herencia
III.6- Polimorfismo

Objetivo: Proporcionar los elementos para la utilizacin de los


paquetes bsicos de JAVA, para poder utilizar un ambiente
grfico.

IV. PROGRAMACIN DE INTERFASES GRFICAS


IV.1.- El paquete JAVA.awt
IV.2.- Componentes y elementos grficos
IV.3.- Modelo para el manejo de eventos

Objetivo: Dar los conocimientos bsico, para poder elaborar y


ejecutar programas de tipo Applet.

V. PROGRAMACIN DE APPLETS
V.1.- Declaracin de un applet
V.2.- Ciclo de vida
V.3.- Restricciones de seguridad
V.4.- Paso de parmetros

58
59

BIBLIOGRAFA BSICA

1. DEITEL H.M. Y DEITEL P.J., Como programar en C/C++, (2 edicin.), MXICO,


PEARSON EDUCACIN PRENTICE-HALL,1995, 927 pp.

2. EUN AVILA JORGE IVAN Y CORDERO BORBOA LUIS GONZAGA., Estructuras de


datos, (1 reimpresin.), MXICO, LIMUSA, tomada de la primera edicin de la UNAM
(FACULTAD DE INGENIERA), 1989, 219 pp.

3. GOODRICH MICHAEL T. Y TAMASSIA ROBERTO , Estructuras de Datos en Java, (2.


Edicin en ingls y 1 en espaol.), MXICO, COMPAA EDITORIAL CONTINENTAL
GRUPO PATRIA CULTURAL, 2002, 641 pp.

4. LANGSAM YEDIDYAH, AUGENSTEIN MOSHE J. Y TENENBAUM AARN M. ,


Estructuras de Datos con C y C++, (2. edicin.), MXICO, PRENTICE-HALL
HISPANOAMERICANA, 1997, 672 pp.

5. RUMBAUGH JAMES, BLAH MICHAEL, PREMERLANI WILLIAMS, HED


FREDERICK Y LORENSEN WILLIMAS. Modelado y diseo orientado a objetos
METODOLOGA OMT (S/E), ESPAA, PRENTICE-HALL, Espaa 1996, pgs. 643.

BIBLIOGRAFA COMPLEMENTARIA

59
60

1. CEBALLOS, Francisco J., Enciclopedia de Microsoft Visual Basic 6, Espaa, Alfa omega-
Rama, 2002.
2. CEBALLOS, Francisco J., Microsoft Visual Basic 6. curso de programacin, Espaa, Alfa
omega-Rama, 2002.

SUGERENCIAS DIDCTICAS:

Exposicin audiovisual ( X )

Exposicin oral ( X )

Ejercicios dentro de la clase ( X )

Seminarios ( )

Lecturas obligatorias ( X )

Trabajos de investigacin ( X )

Prcticas de taller o laboratorio ( X )

Prcticas de campo ( )

Otras ( )

SUGERENCIAS PARA LA EVALUACIN:

Exmenes parciales ( X )

Exmenes finales ( X )

Trabajos y tareas fuera de aula ( X )

Participacin en clase ( X )

Asistencia a prcticas ( )

Otras ( )

60
61

Es de hacer notar, que podra tenerse una segunda asignatura, que fuera la continuacin de esta.
o bien que se tuviera como antecedente el manejo de bases de datos y la programacin en
C/C++.

61