Вы находитесь на странице: 1из 74

PROGRAMA DE ENSEANZA ABIERTA 2004/2005

UNIVERSIDAD NACIONAL

Curso: 000348

Departamento de Lenguajes y

DE EDUCACIN A DISTANCIA

Sistemas Informticos

Programacin Orientada a Objetos en JAVA

Gua Didctica

Rubn Heradio Gil


Jos Antonio Cerrada Somolinos
Juan Jos Escribano Rdenas
Jos Flix Estvariz Lpez
Sebastin Rubn Gmez Palomo
Covadonga Rodrigo San Juan

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

NDICE
1. INTRODUCCIN GENERAL.............................................................................. 5
2. OBJETIVOS ............................................................................................................ 6
3. PRERREQUISITOS ............................................................................................... 6
4. MATERIAL............................................................................................................. 6
4.1. BIBLIOGRAFA BSICA ........................................................................................................... 7
4.2. BIBLIOGRAFA DE AMPLIACIN ........................................................................................... 7
4.3. CONTENIDO DEL CD-ROM................................................................................................ 8
4.3.1. Entorno de programacin............................................................................................ 8
4.3.2. Material adicional para resolver los cuadernos de evaluacin................................. 9
4.3.3. Instalacin del entorno de programacin ................................................................ 11
Paso 1: instalacin de Java SDK ..................................................................................... 11
Paso 2: instalacin de RealJ.............................................................................................. 17
Paso 3: instalacin de la ayuda de SDK en RealJ.......................................................... 20
Paso 4: instalacin del paquete javagently...................................................................... 22
4.3.4. Edicin, compilacin y ejecucin de un ejemplo: Anillos Olmpicos ............. 25
4.3.5. Resumen de organizaciones de carpetas .................................................................. 35
Organizacin de las carpetas del CD-ROM .................................................................. 35
Organizacin de las carpetas de su ordenador acabada la instalacin ....................... 36
4.4. PROBLEMAS CON REALJ EN LOS SISTEMAS OPERATIVOS WINDOWS 2000, NT SERVER
Y XP.............................................................................................................................................. 37

4.4.1. Instalacin de JCreator ............................................................................................... 38


4.4.2. Gua rpida de uso ...................................................................................................... 41
4.4.2.1. Creacin de un Proyecto .................................................................................... 41
4.4.2.2. Creacin de una Clase ......................................................................................... 45
4.4.2.3. Compilacin y ejecucin..................................................................................... 46
5. ESQUEMA DEL CURSO..................................................................................... 47
5.1. UNIDAD DIDTICA 1. FUNDAMENTOS. ............................................................................ 47
CAPTULO 3. Estructuracin. ........................................................................................... 48

Pgina 3

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

CAPTULO 4. Cambiando el estado.................................................................................. 51


CAPTULO 5. Controlando el flujo................................................................................... 53
CAPTULO 6. Tablas unidimensionales y multidimensionales. .................................... 55
CAPTULO 7. Dando formato........................................................................................... 56
5.2. UNIDAD DIDTICA 2. POTENCIA. ..................................................................................... 59
CAPTULO 8. Objetos en marcha. .................................................................................... 59
CAPTULO 9. Abstraccin y herencia. ............................................................................. 61
CAPTULO 10. Interfaces grficas de usuario. ................................................................ 63
CAPTULO 11. Programacin dirigida por sucesos........................................................ 65
CAPTULO 12. Applets en accin. .................................................................................... 65
6. ERRATAS EN EL LIBRO DE REFERENCIA ...................................................71
Pgina 20 ................................................................................................................................. 71
Pgina 59 ................................................................................................................................. 71
Pgina 114 ............................................................................................................................... 72
7. CRITERIOS DE EVALUACIN ........................................................................ 73
8. PROFESORADO .................................................................................................. 73
9. TUTORAS............................................................................................................ 73
10. CALENDARIO GENERAL................................................................................ 74

Pgina 4

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

1. INTRODUCCIN GENERAL
La Programacin Orientada a Objetos (POO) se basa en el empleo de clases y objetos. Una
clase es un tipo abstracto de datos (TAD) con estructura y estado interno. Cada clase tiene
definidas unas operaciones para acceder a ese estado o modificarlo. Los objetos son
ejemplares o instancias de una clase. El objetivo de este paradigma, es obtener un
software ms consistente, robusto y reutilizable, fcil de verificar, mantener, refinar y
extender.
JAVA es un lenguaje de POO que ha surgido recientemente (la primera versin es
del ao 1995) y presenta las siguientes caractersticas:

Sencillo y fcil de aprender, sobretodo si se tienen conocimientos del lenguaje


C/C++, lenguaje del que hereda muchas estructuras.

Permite desarrollar aplicaciones en red.

Es interpretado. Su compilador no genera cdigo para la mquina en la que se


ejecuta sino un cdigo intermedio o bytecode para la llamada mquina virtual
JAVA.

Es multiplataforma ya que existe intrprete JAVA para PCs, Macintosh y


estaciones de trabajo SUN.

La creacin de la interfaz grfica de usuario est contemplada en el propio


lenguaje.

Soporta la concurrencia con el empleo de mltiples hebras de ejecucin.

Dado que JAVA es un lenguaje de POO, el programador se puede centrar en los


datos de su aplicacin y en los mtodos que manejan dichos datos, en lugar de pensar en
trminos de procedimientos, como en el lenguaje C. Esto tambin se puede conseguir con
C++ pero la escritura de los programas es mucho ms simple en JAVA.

Pgina 5

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

2. OBJETIVOS
En este curso se pretende introducir al alumno en el uso del lenguaje JAVA desde
el punto de vista de la POO. Dentro de la POO el curso se centrar en:

La definicin y utilizacin de las clases.

El comportamiento de las clases.

La composicin frente a la herencia.

El alumno aprender a resolver problemas del siguiente modo: en primer lugar


identificar un objeto principal del problema y describir su comportamiento. A
continuacin definir una clase que se comporte de ese modo. Por ltimo, la solucin
consistir en aadir el mtodo main a la clase principal.

3. PRERREQUISITOS
El curso est orientado a aquellas personas con cierta prctica en el uso de
computadores. Est destinado a aficionados o profesionales de la informtica que quieran
introducirse en las metodologas de POO mediante el uso del lenguaje de programacin
JAVA. Es aconsejable, aunque no imprescindible, tener algunos conocimientos de
programacin de propsito general y tener la posibilidad de utilizar un computador con
lector de CD-ROM.

4. MATERIAL
Adems del texto base, el curso consta de este documento, dos cuadernillos de
evaluacin a distancia (ver seccin Criterios de evaluacin) y un CD-ROM (ver seccin Gua de
instalacin del entorno de programacin).

Pgina 6

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

4.1. Bibliografa bsica


Como texto base del curso se utilizar el libro:

Judy Bishop. JAVA. Fundamentos de Programacin. Addison Wesley. Madrid, 1999.


El citado libro no se incluye con este material y el alumno debe adquirirlo en alguna
tienda o biblioteca. Todos los temas se corresponden con captulos del libro de texto
obligatorio. No se han incluido los captulos 13, 14 y 15 por implicar conocimientos de
programacin concurrente que superaran el nivel introductorio pretendido en el presente
curso. De este modo, la primera unidad didctica se corresponde con los siete primeros
captulos del libro mientras que la segunda con los que van del 8 al 12.

4.2. Bibliografa de ampliacin


Los siguientes textos no son necesarios para el seguimiento del curso, pero
permiten profundizar al alumno interesado en las distintas materias objeto de estudio.

Bruce Eckel. Piensa en JAVA. Prentice Hall. Madrid, 2002.


NOTA: La carpeta Java\Thinking in Java del CD-ROM del curso contiene la versin inglesa
de este libro.

David Arnow, Gerald Weiss. Introduccin a la programacin con JAVA. Un enfoque


orientado a objetos actualizado a JAVA2. Addison Wesley. Madrid, 2001.

Enrique Castillo, ngel Cobo, Patricia Gmez, Cristina Solares. JAVA TM. Un
lenguaje de programacin mutltiplataforma para Internet. Paraninfo. Madrid, 1997.

Mark Allen Weiss. Estructuras de datos en JAVA. Addison Wesley. Madrid, 2000.

Pgina 7

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

4.3. Contenido del CD-ROM


4.3.1. Entorno de programacin

La instalacin del entorno de programacin que proponemos, comprende la


subinstalacin de cinco componentes de libre distribucin (totalmente gratuitos). Todos
estos componentes se incluyen en el CD-ROM del curso. Pasamos a describirlos
brevemente, sealando la direccin web donde tambin pueden adquirirse:

Java SDK (Software Development Kit): el Kit de Desarrollo de Java es el


autntico motor de Java, contiene todas sus clases estndares y un compilador
para transformar el cdigo fuente (*.java) en bytecode (*.class). Puede
obtenerse en la carpeta Instalar del CD-ROM bajo el nombre de j2sdk1_4_0-win.exe y en la direccin web:

http://java.sun.com/

RealJ: es un IDE (Integrated Development Environment), EDI en castellano


(Entorno de Desarrollo Integrado), que integra la edicin, compilacin y
ejecucin de programas Java. Puede obtenerse en la carpeta Instalar del CDROM bajo el nombre de realjn.exe y en la direccin web:
http://www.realj.com/

Ayuda del Java SDK en formato Winhelp. Puede obtenerse en la carpeta


Instalar\Ayuda del CD-ROM y en la direccin web:

http://www.confluent.fr/javadoc/jdk14e.html

Clases auxiliares javagently que proporciona Judy Bishop, autora del libro de
referencia JAVA. Fundamentos de programacin. Como comprobaremos
durante el curso, nos sern sumamente tiles al desarrollar programas Java.

Pgina 8

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

Pueden obtenerse en la carpeta Instalar\javagently del CD-ROM y en la


direccin web:
http://www.cs.up.ac.za/javagently

4.3.2. Material adicional para resolver los cuadernos de evaluacin

La evaluacin final del curso se basar en la solucin enviada por el alumno de los
cuadernos de evaluacin a distancia. Este curso consta de dos cuadernos, correspondientes
a las Unidades Didcticas 1 y 2. Los cuadernos contienen el enunciado de los ejercicios que
el alumno debe resolver. Para facilitar el entendimiento de los enunciados, el CD-ROM del
curso contiene por cada ejercicio una demostracin del aspecto final que debe presentar su
solucin.
Dentro del CD-ROM, las unidades didcticas se han organizado en dos carpetas
UD1 y UD2. Cada una de ellas, dispone de dos subcarpetas:

Material: contiene material adicional que se suministra al alumno para la


realizacin de ciertos ejercicios (por ejemplo, ficheros *.java, imgenes,
pginas HTML, ...).

Prueba: presenta la demostracin de todos los ejercicios propuestos en los


cuadernos de evaluacin. Para activar las demostraciones basta con hacer doble
clic con el ratn sobre los archivos Ejecutame.bat correspondientes.

Clarifiquemos estas indicaciones con un ejemplo: supongamos que el alumno se


enfrenta a la resolucin del ejercicio 1: Ordenacin de figuras geomtricas, de la Unidad
Didctica 2. Para realizar este ejercicio, el alumno deber emplear el fichero Principal.java
que le proporcionamos en la carpeta Material.

Pgina 9

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

Pasemos a ejecutar la demostracin del ejercicio. Para ello, basta con hacer doble
clic con el ratn sobre el archivo Ejecutame.bat dentro de la carpeta Prueba correspondiente.

Pgina 10

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

OBSERVACIN: La ejecucin de las demostraciones slo funcionar tras


haberse instalado completamente el entono de programacin y siempre desde
CD-ROM (ver seccin Instalacin del entorno de programacin).

A continuacin se activar la demostracin. Para terminar su ejecucin basta con


cerrar la ventana que se gener.

4.3.3. Instalacin del entorno de programacin

Exponemos a continuacin el proceso de instalacin del entorno de programacin


paso a paso.
Paso 1: instalacin de Java SDK
Introducir el CD-ROM del curso y examinar su contenido con el Explorador de Windows.
Al explorador se accede a travs de los mens Inicio Programas Explorador de Windows.

Pgina 11

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

2. Abrir la carpeta Java/Instalar y hacer doble clic con el ratn sobre el archivo
j2sdk-1_4_0--win.exe.

Pgina 12

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

3. El instalador muestra la siguiente ventana:

4. A continuacin, el instalador del Java SDK muestra un mensaje de bienvenida. Pulsar


Next.

Pgina 13

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

5. El instalador presenta la licencia de Sun Microsystems. Pulsar Yes.

6. Java SDK nos permite especificar su futura ubicacin. Es aconsejable mantener la


carpeta propuesta por defecto, es decir, limtese a pulsar Next.

Pgina 14

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

7. La instalacin de SDK incluye varias opciones. Es aconsejable mantener las opciones


seleccionadas por defecto (todas), es decir, limtese a pulsar Next.

8. Seleccione el navegador (Browser en ingls) que utiliza habitualmente y pulse Next.

Pgina 15

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

9. Espere un instante mientras se termina la instalacin de SDK.

10. La instalacin de SDK ha concluido. Pulse Finish.

Pgina 16

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

Paso 2: instalacin de RealJ


1. Abrir la carpeta Java/Instalar y hacer doble clic con el ratn sobre el archivo realjn.exe.

2. El instalador de RealJ muestra un mensaje de bienvenida. Pulsar Siguiente.

Pgina 17

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

3. El instalador presenta la licencia de RealJ. Seleccionar I agree y a continuacin pulsar


Siguiente.

4. RealJ nos permite especificar su futura ubicacin. Es aconsejable mantener la carpeta


propuesta por defecto, es decir, limtese a pulsar Siguiente.

Pgina 18

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

5. RealJ nos permite concretar los accesos directos o atajos que deseamos tener. Le
aconsejamos que deseleccione la opcin Start RealJ when the computer is turned on. De lo
contrario, se iniciar este programa cada vez que encienda su ordenador. A continuacin,
pulse Install.

6. La instalacin de RealJ ha concluido. Pulse Finish.

Pgina 19

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

7. Compruebe que se ha creado el icono de RealJ en el escritorio de Windows.

Paso 3: instalacin de la ayuda de SDK en RealJ


1. Crear con el Explorador de Windows una carpeta que se llamar Java y servir de carpeta
de trabajo durante el curso.

Pgina 20

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

2. Copiar la carpeta Java/Instalar/Ayuda del CD-ROM en la carpeta C:\Java que acabamos


de crear.

3. Abrir RealJ haciendo doble clic con el ratn sobre su icono en el escritorio de Windows.

4. En el men del entorno RealJ, seleccionar la opcin File Preferences.

5. En el cuadro de texto Path to JDK help files in WinHelp format, escribir


C:\Java\Ayuda\JDK13.HLP y pulsar Aceptar.

Pgina 21

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

6. Cerrar la aplicacin RealJ.


Paso 4: instalacin del paquete javagently
1. Copiar la carpeta Java/Instalar/javagently del CD-ROM en la carpeta de trabajo Java.

Pgina 22

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

2. Abrir RealJ haciendo doble clic con el ratn sobre su icono en el escritorio de Windows.

3. Seleccionar la opcin Preferences del men File.

4. Seleccionar la pestaa Paths y pulsar AddFolder.

Pgina 23

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

5. Seleccionar la carpeta Java y pulsar Aceptar.

6. Pulsar Aceptar.

Pgina 24

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

4.3.4. Edicin, compilacin y ejecucin de un ejemplo: Anillos Olmpicos

Para ilustrar el uso del entorno de programacin nos serviremos del ejemplo 2.2: Anillos
olmpicos (pgina 20 del libro de referencia Java. Fundamentos de la programacin).
Este ejemplo contiene fallos, por lo que aconsejamos consultar la seccin Erratas en el libro
de referencia de este documento.
1. Crear la carpeta dentro del directorio de trabajo Java donde guardaremos nuestro
programa.

2. Abrir RealJ haciendo doble clic con el ratn sobre su icono en el escritorio de Windows.

Pgina 25

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

3. En RealJ deber crearse un proyecto por cada programa. Para crear un proyecto basta
con seleccionar Project NewProject.

4. RealJ ofrece facilidades para crear los tipos de proyecto ms comunes, generando de
forma automtica el cdigo esqueleto de la aplicacin. Nosotros prescindiremos de estas
facilidades, por lo que se mantendr la seleccin por defecto Empty Project. Escribir el
nombre del proyecto (AnillosOlimpicos). Aconsejamos que este nombre sea descriptivo
de su contenido y no demasiado largo. A continuacin, pulsar OK.

Pgina 26

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

5. Inmediatamente surge la pantalla del nuevo proyecto.

6. El ejemplo a realizar contiene una sola clase. Para crearla basta con pulsar
seleccionar la opcin File New. A continuacin, elegir Java Source File y pulsar OK.

Pgina 27

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

7. Sobre el documento nuevo que acaba de surgir, editamos el cdigo del programa
ejemplo.

Nombre de la clase:
Anillos

Pgina 28

UNED. Matrcula Abierta

8. Pulsando

Programacin Orientada a Objetos en JAVA

o seleccionando la opcin File Save guardamos la clase que hemos

editado en la carpeta que creamos en el primer paso. El nombre del fichero .java debe
coincidir exactamente con el nombre de la clase, respetndose letras maysculas y
minsculas.

9. Aadir la clase editada al proyecto. Para ello, seleccionar la opcin Project Add Java
Source Files.

Pgina 29

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

10. Elegir la clase a aadir en el proyecto y pulsar Abrir.

11. Como puede observarse en la zona izquierda del proyecto, la nueva clase ha sido
aadida. Este sencillo ejemplo nicamente consta de una sola clase. En casos ms
complicados, habr que repetir los pasos 6-10 tantas veces como clases tenga el programa.
Para facilitar la edicin de cdigo, puede expandir el rbol de clases pulsando con el ratn
sobre

. El posicionamiento sobre fragmentos de cdigo se agiliza sobremanera haciendo

doble clic con el ratn sobre el mtodo deseado en el rbol de clases.

Pgina 30

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

12. Indicar en el proyecto cual es la clase principal. En el ejemplo, al existir una nica clase,
sta ser la principal. Posicinese sobre la clase en la zona izquierda del proyecto
, y pulse el botn derecho del ratn. Surgir un men, en el deber seleccionar
Set as Main.

13. Vamos a compilar nuestro ejemplo. Pulse

o seleccione la opcin Build Build.

Como hasta el momento no habamos guardado el proyecto, RealJ nos pregunta si


deseamos hacerlo. Contestar S.

14. Guardar el proyecto en la carpeta que creamos en el primer paso. La extensin del
fichero debe ser un nico .jpr. En ocasiones RealJ aade dos extensiones, por ejemplo
AnillosOlimpicos.jpr.jpr, debiendo eliminarse una de ellas.

Pgina 31

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

15. Al terminar la compilacin, RealJ indica que se ha producido un error.

16. Por lo visto, Color.yelow no est definido en la clase java.awt.Color. Para


rectificar el error, consultaremos la ayuda de SDK. Pulsar F1 o seleccionar la opcin
Help JDK Help.

Pgina 32

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

17. Puesto que el fallo est en Color, busquemos Color en el ndice de la ayuda. Para
ello, seleccionar la pestaa Indice, escriba Color en el primer cuadro de texto y pulse
Mostrar.

18. La ayuda nos mostrar una seleccin de los temas que ha encontrado relacionados con
la bsqueda de Color. Seleccione Color y pulse Mostrar.

Pgina 33

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

19. Desplazndonos por la ayuda encontramos que el color correcto no es yelow si no


yellow.

20. Rectificamos el error y volvemos a compilar, repitiendo los pasos 14 y 15.

Pgina 34

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

21. En esta ocasin no hay errores, siendo perfecta la compilacin. Ejecutemos el


programa pulsando

, seleccionando la opcin Build Run Application o simplemente

presionando F5.

22. Detendremos la ejecucin del programa pulsando

en la zona inferior de RealJ o

en la ventana Anillos Olimpicos, como en cualquier aplicacin de Windows.

4.3.5. Resumen de organizaciones de carpetas


Organizacin de las carpetas del CD-ROM

Instalacin

Material de soporte
para la realizacin de
los cuadernos de
evaluacin

Demostraciones de los
ejercicios de los
cuadernos de
evaluacin

Pgina 35

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

Organizacin de las carpetas de su ordenador acabada la instalacin


Carpeta de trabajo
Ejercicios

SDK (ubicacin por


defecto)

RealJ (ubicacin por


defecto)

Pgina 36

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

4.4. Problemas con RealJ en los sistemas operativos Windows 2000, NT


Server y XP
En RealJ la ejecucin de programas que poseen entrada de datos desde el teclado se realiza
mediante la opcin Run with Console del men Build. Sin embargo, esta opcin es defectuosa
en los sistemas operativos Windows 2000, NTServer y XP.
Los autores de RealJ prometen solventar este problema en la versin 3.55 de su
producto. Mientras tanto, y para los usuarios de los sistemas operativos mencionados,
aconsejamos utilizar otro entorno de programacin: JCreator.

JCreator puede obtenerse gratuitamente en las direcciones:

http://www.jcreator.com

http://www.uned.es/pea-programacion-java/

Pgina 37

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

4.4.1. Instalacin de JCreator

Abra el Explorador de Windows y colquese en la carpeta donde ha descargado y


descomprimido el archivo jcrea300.zip.

Para instalar JCreator, haga doble clic sobre el archivo Setup.exe:

Pgina 38

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

Seleccione .java y pulse Next.

Asegrese de que la carpeta que aparece en pantalla se corresponde con el lugar donde
instal el Java SDK. Pulse Next.

Pgina 39

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

Pulse Finish.

Pgina 40

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

4.4.2. Gua rpida de uso

A continuacin se presenta como realizar en JCreator el ejemplo de los Anillos


Olmpicos (pgina 20 del libro de referencia Java. Fundamentos de la programacin).
4.4.2.1. Creacin de un Proyecto

Para construir un programa debe crear previamente un proyecto. Para ello, seleccione
Project New Project.

Pgina 41

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

Seleccione Empty Project y pulse Next.

Introduzca el nombre del proyecto y su ubicacin.

Pgina 42

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

El ClassPath es una variable de entorno que le sirve al SDK de Java para saber donde
buscar clases auxiliares (nosotros lo utilizaremos para que SDK sepa donde localizar el
paquete javagently proporcionado por la autora del libro de referencia). Para configurar el
ClassPath posicinese en la pestaa Required Libraries y pulse Next.

Bautice a la librera como javagently, tal y como se refleja en la figura.

Pgina 43

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

Pulse Add Add Path

Seleccione su carpeta Java (ver pgina 35 de la Gua Didctica).

Pgina 44

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

Seleccione javagently. Pulse Finish.

4.4.2.2. Creacin de una Clase

Para crear una clase dentro de su proyecto, pulse

Utilice el campo Name para nombrar a su clase y el campo Location para especificar su
ubicacin. Pulse Finish.
Ahora ya puede editar su clase.

Pgina 45

UNED. Matrcula Abierta

Pulse

Programacin Orientada a Objetos en JAVA

para guardar su clase.

4.4.2.3. Compilacin y ejecucin

Para compilar todas las clases contenidas en un proyecto, pulse Pulse

(Compile Project).

El mensaje de la figura nos informa de que el proceso de compilacin ha finalizado con


xito.

Para ejecutar su programa, pulse

Pgina 46

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

Para finalizar la ejecucin de su programa pulse el smbolo

sealado por la flecha.

5. ESQUEMA DEL CURSO


El curso est organizado en dos partes. En la primera se presentan los fundamentos
de la programacin en general, es decir, los conceptos de variable, asignacin, seleccin,
iteracin, paso de parmetros y tipos de datos. A continuacin, en la segunda parte se
muestran las principales caractersticas de la orientacin a objetos, as como las prestaciones
que ofrece JAVA para el desarrollo de aplicaciones web.
En los siguientes apartados se dan unas recomendaciones para el estudio de las
Unidades didcticas 1 y 2.

5.1. Unidad didtica 1. Fundamentos.


Los dos primeros captulos del libro de referencia son introductorios. Una lectura
de los mismos, as como el estudio del apartado Gua de instalacin del entorno de
programacin son suficientes para abordar los siguientes captulos.

Pgina 47

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

CAPTULO 3. Estructuracin.

La construccin de software es una tarea reciente y compleja, siendo hoy da


habitual la existencia de errores en programas comerciales. Por otra parte, el
mantenimiento de desarrollos realizados por terceras personas suele ser arduo y en
ocasiones incluso inviable, decidindose el rechazo del software antiguo y la elaboracin de
nuevas versiones desde cero, con el enorme trabajo que esto conlleva. Los conceptos
presentados al inicio del captulo: legibilidad, reusabilidad, eficiencia y la necesidad de
pruebas, son esenciales para la realizacin de software de calidad, y deben estar
constantemente presentes en la mente de todo programador.
El alumno debe familiarizarse con los tipos simples de JAVA: int, long, double
byte, short, float, boolean y char. La necesidad del tipo boolean se comprender al

estudiar las estructuras de iteracin y seleccin. Como se ver en posteriores captulos, la


conversin o casting entre tipos es realmente til.
Una de las estructuras iterativas ms caractersticas de JAVA (y en general de
cualquier lenguaje de programacin) son los bucles for. Es imprescindible comprender
perfectamente su funcionamiento, por lo que animamos al alumno a la realizacin de los
ejemplos 3.1, 3.2 y 3.3 del libro. Conviene acostumbrarse a introducir los programas en el
entorno de programacin RealJ y ejecutarlos comprobando su funcionamiento. Si el cdigo
falla, no debe asustarse, ya que el libro contiene algunas erratas (ver apartado Erratas de este
documento). Al contrario, trate de localizar el posible error y subsnelo, pues ser una
prctica habitual cuando escriba sus propios programas. Aconsejamos jugar con los
programas, as, le proponemos alterar el ejemplo 3.2 para que la tabla de conversin pase de
grados Fahrenheit a Celsius, es decir, dar la vuelta al enunciado y suponer que el laboratorio
oceanogrfico del ejemplo realiza las mediciones en grados Fahrenheit.
Los conceptos de mtodo y paso de parmetros no son triviales para alguien que no
haya programado anteriormente en otro lenguaje. Si este es su caso, lea atentamente los
apartados 3.4. Construyendo parmetros y 3.5. Pasando parmetros del libro. Examine
cuidadosamente el ejemplo 3.4 y nuevamente trate de invertir el enunciado,

Pgina 48

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

transformando grados Fahrenheit en Celsius. Para ello, sustituya el mtodo o funcin de


conversin fahrenheit por la anloga celsius y realice los cambios pertinentes en main.
Volviendo a la idea de legibilidad, probablemente el alumno se habr percatado de
que en el libro las clases se nombran en maysculas (por ejemplo, Etiquetas,
TablaConversin, ...), mientras que las variables y los mtodos lo hacen en minsculas

(col, fahrenheit, main, ...). Esta es una convencin comnmente seguida por los
programadores en JAVA y es aconsejable que la siga.
No puede abordarse la programacin de software de cierta complejidad codificando
directamente sobre el ordenador. Al igual que antes de construir un edificio ladrillo sobre
ladrillo, es necesario disponer de los planos del mismo, el programador deber contar con
un diseo del programa antes de codificar. Existen numerosas notaciones para disear
planos software, siendo JMT una de las ms extendidas. Por ello, no debe pasar por alto
el apartado 3.4 Pautas para el diseo de clases, y antes de la realizacin de cualquier programa,
acostmbrese a disear su solucin en JMT.
El ejemplo 3.6, el Caso de estudio I y el ejercicio 1: Tabla de Multiplicar de la Gua
Didctica 1, revisan todos los conceptos introducidos en este captulo. Dichos supuestos
prcticos implican la compresin de numerosos e importantes conceptos. El alumno sin
experiencia previa en programacin puede sentirse abrumado ante tanta informacin. Sin
embargo, el estudio detenido de los diagramas JMT, la introduccin de la solucin en el
entorno de programacin, su ejecucin, y la experimentacin con la misma introduciendo
variaciones, le permitirn asentar los conocimientos.

Pgina 49

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

Ejercicios aconsejados (NO debe devolverlos al profesor)


1. Introducir en el entorno de programacin RealJ y ejecutar los siguientes
programas propuestos en el libro de texto obligatorio Java. Fundamentos de
Programacin, solventando posibles erratas si fuera necesario:
a. Ejemplo 3.1: Etiquetas mltiples (pgina 65)
b. Ejemplo 3.2: Tabla de conversin (pgina 67)
c. Ejemplo 3.3: Cancin de fuego de campamento (pgina 69)
d. Ejemplo 3.4: Una tabla de conversin grande (pgina 74)
e. Ejemplo 3.6: Etiquetas con clase (pgina 85)
f. Caso de estudio I: Vales de comida y bebida (pgina 88)
2. Modificar los ejemplos 3.2 y 3.4 para que la conversin se produzca de
grados Fahrenheit a Celsius.

Ejercicios obligatorios (DEBE devolverlos al profesor junto con los


Cuadernos de Evaluacin a Distancia)
1. Ejercicio 1: Tabla de Multiplicar, de la Unidad Didctica 1.

Pgina 50

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

CAPTULO 4. Cambiando el estado.

En JAVA estndar la entrada/salida de datos, aunque potente, es muy compleja y


engorrosa de utilizar, especialmente para trabajar con nmeros, en cuyo caso siempre es
necesario convertir de forma explcita de cadena de caracteres al tipo numrico concreto
que se desee emplear. Esta complejidad responde a la intencin de los creadores de Java
(Sun Microsystems) de que el tratamiento de la entrada/salida de datos se realice del mismo
modo independientemente de si se hace a travs del teclado, archivo o web (URL).
Adems, los programadores en JAVA, en su afn por escribir cdigo de la forma ms
resumida posible, en muchas ocasiones generan textos poco legibles, como por ejemplo:
BufferedReader flujo = new BufferedReader
(new InputStreamReader(System.in));

que es equivalente al siguiente cdigo, ms fcil de entender:


InputStreamReader flujoAux = new InputStreamReader(System.in);
BufferedReader flujo = new BufferedReader(flujoAux);

Una explicacin clara al respecto puede encontrarse en las pginas 65-77 del libro
de ampliacin:

David Arnow, Gerald Weiss. Introduccin a la programacin con JAVA. Un enfoque


orientado a objetos actualizado a JAVA2. Addison Wesley. Madrid, 2001.
Afortunadamente, Judy Bishop, autora del libro de referencia obligatorio del curso,
nos proporciona la clase Text, mucho ms sencilla de usar que los mecanismos estndar.
Realice el ejemplo 4.1 para hacerse una idea del mecanismo de entrada de datos por teclado
de JAVA. A continuacin, haga los ejemplos 4.2, 4.3 y 4.4 para familiarizarse con la clase
Text.

AVISO IMPORTANTE: En el entorno de programacin RealJ, para poder ejecutar


programas con entrada de datos desde teclado, es necesario seleccionar la opcin Run with
Console del men Build.

Pgina 51

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

En estos casos, la opcin Run Application no resulta vlida.


La instruccin de seleccin ms empleada en cualquier lenguaje de programacin,
incluido JAVA, es if-else. Conviene por tanto, asimilar perfectamente su
funcionamiento. Introduzca en el entorno de programacin RealJ y ejecute los ejemplos 4.5,
4.6 y 4.7. Consulte la seccin Erratas en el libro de referencia de este documento, ya que el
enunciado del ejemplo 4.7 es errneo.
Es fundamental que los programas informticos sean robustos, es decir, que
puedan reaccionar frente a cualquier situacin anmala que se produzca. As por ejemplo,
un programa cuyo fin sea realizar la divisin entre dos nmeros deber protegerse ante la
posible introduccin por parte del usuario de 0 como divisor. El mecanismo que
proporciona JAVA para robustecer programas son las excepciones. Realice los ejemplos
4.8 y 4.9, as como el ejercicio 2: Agenda telefnica, de la Unidad Didctica 1.

Pgina 52

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

Ejercicios aconsejados (NO debe devolverlos al profesor)


1. Introducir en el entorno de programacin RealJ y ejecutar los siguientes
programas propuestos en el libro de texto obligatorio Java. Fundamentos de
Programacin, solventando posibles erratas si fuera necesario:
a. Ejemplo 4.1: Felicitaciones (pgina 99)
b. Ejemplo 4.2: Sumando una secuencia de nmeros
(pgina 101)
c. Ejemplo 4.3: Entrada de un archivo (pgina 105)
d. Ejemplo 4.4: Guardando una etiqueta (pgina 106)
e. Ejemplo 4.5: Sumando de tres formas (pgina 109)
f. Ejemplo 4.6: El nmero ms alto (pgina 112)
g. Ejemplo 4.7: Cheques falsificados (pgina 114), con erratas
h. Ejemplo 4.8: Suma con excepciones (pgina 119)
i.

Ejemplo 4.9: Medallas olmpicas (pgina 122)

Ejercicios obligatorios (DEBE devolverlos al profesor junto con los


Cuadernos de Evaluacin a Distancia)
1. Ejercicio 2: Agenda telefnica, de la Unidad Didctica 1.

CAPTULO 5. Controlando el flujo.

La utilizacin de bucles for es aconsejable para la realizacin de tareas repetitivas


cuando el nmero de iteraciones se conoce de antemano. Si esto no ocurre, deben usarse
bucles condicionales while o do. Introduzca y ejecute en el entorno de programacin el
ejemplo 5.1. A continuacin, resuelva dicho ejemplo empleando un bucle do en lugar de
while (que es la solucin propuesta en el libro).

Pgina 53

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

Los bucles condicionales son especialmente tiles para controlar la entrada de


datos. Examine los ejemplos 5.3 y 5.4.
La instruccin switch proporciona comodidad cuando el nmero de condiciones a
evaluar en una seleccin es elevado. Adems, facilita la legibilidad del cdigo en estos casos.
Sin embargo, presenta una fuerte restriccin: los valores de la expresin a evaluar
nicamente pueden ser enteros o caracteres, por lo que en ocasiones nos veremos
obligados a recurrir al if-else. Ejecute los ejemplos 5.2 y 5.5 en el entorno de
programacin RealJ.
La generacin de nmeros aleatorios es un problema frecuente en la programacin.
El caso de estudio 2, adems de agrupar los conceptos presentados en el captulo, presenta la
clase estndar de JAVA de generacin aleatoria Random, por lo que aconsejamos su estudio.

Ejercicios aconsejados (NO debe devolverlos al profesor)


1. Introducir en el entorno de programacin RealJ y ejecutar los siguientes
programas propuestos en el libro de texto obligatorio Java. Fundamentos de
Programacin, solventando posibles erratas si fuera necesario:
a. Ejemplo 5.1: Mximo comn divisor (pgina 132)
b. Ejemplo 5.2: Cambio de moneda (pgina 137)
c. Ejemplo 5.3: Controlando un motor (pgina 141)
d. Ejemplo 5.4: No dando en el blanco (pgina 143)
e. Ejemplo 5.5: Comprobando una clase de fechas (pgina 145)
f. Caso de estudio 2: Juego de piedra-tijeras-papel (pgina 149)

Ejercicios obligatorios (DEBE devolverlos al profesor junto con los


Cuadernos de Evaluacin a Distancia)
1. Ejercicio 3: Dado, de la Unidad Didctica 1.

Pgina 54

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

CAPTULO 6. Tablas unidimensionales y multidimensionales.

La agrupacin estructurada de elementos del mismo tipo es extraordinariamente


til, y su uso es comn en todas las ciencias (pinsese por ejemplo, en las matrices y
vectores utilizados en matemticas). JAVA y la prctica totalidad de los lenguajes de
programacin posibilitan estas estructuras mediante tablas, tambin llamadas arrays.
Dada su tremenda potencia, ser habitual la inclusin de tablas en nuestros
programas, por lo que debe estudiar atentamente el apartado Propiedades de las tablas de la
pgina 162. Quizs, las dos propiedades ms caractersticas de las tablas son la facilidad de
acceso a sus elementos y la invariabilidad de su tamao en tiempo de ejecucin. El ejemplo
6.1 es introductorio y le permitir familiarizarse con la definicin y el uso de tablas. El
ejemplo 6.2 har hincapi en la necesidad de estructurar y separar los programas segn las
tareas a desarrollar. Esta estrategia facilita entre otras cosas:

el trabajo en grupo.

el aislamiento y la localizacin de errores.

Una vez asimilado el concepto de tabla unidimensional o vector, podemos


extenderlo dimensionalmente, siendo el caso bidimensional el ms tpico entre los

n-

dimensionales. Aconsejamos la realizacin de los ejemplos 6.2 y 6.3, as como del ejercicio 4:
Producto de Martices, de la Unidad Didctica 1.
La ordenacin de tablas y la bsqueda de elementos en las mismas son operaciones
muy frecuentes en programacin. En este captulo se introducen los mtodos ms sencillos
(pero no los ms eficientes) para realizar estas tareas: ordenacin de tablas por seleccin
directa y bsqueda lineal de elementos en tablas. La ejecucin del ejemplo 6.4 en el
entorno de programacin RealJ ayudar a comprender estas cuestiones. Adems, el citado
ejemplo presenta el mtodo compareTo de comparacin entre cadenas de caracteres.
JAVA proporciona tablas de altas prestaciones como son las clases Vector y
Hashtable. Estas herramientas pueden ser realmente tiles en problemas concretos, sin

embargo, es ms comn el empleo de tablas estndar. Le recomendamos el estudio de


ejemplo 6.6 para descubrir la potencia de JAVA en la gestin de tablas de dispersin.

Pgina 55

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

Una operacin bastante tpica en JAVA es la transformacin entre variables bsicas


(int, char, ...) y objetos. Dicha operacin se realiza mediante clases sobre. El mencionado
ejemplo 6.6 le ayudar a entender este mecanismo.

Ejercicios aconsejados (NO debe devolverlos al profesor)


1. Introducir en el entorno de programacin RealJ y ejecutar los siguientes
programas propuestos en el libro de texto obligatorio Java. Fundamentos de
Programacin, solventando posibles erratas si fuera necesario:
a) Ejemplo 6.1: Contador de frecuencias (pgina 160)
b) Ejemplo 6.2: Competiciones de buceo (pgina 166)
c) Ejemplo 6.3: Exploracin en busca de oro (pgina 171)
d) Ejemplo 6.4: Estadsticas de pluviosidad (pgina 174)
e) Ejemplo 6.5: Ordenando palabras de un archivo (pgina 182)
f) Ejemplo 6.6: Calificador de estudiantes (pgina 189)

Ejercicios obligatorios (DEBE devolverlos al profesor junto con los


Cuadernos de Evaluacin a Distancia)
1. Ejercicio 4: Producto de Matrices, de la Unidad Didctica 1.

CAPTULO 7. Dando formato.

Como ya habr apreciado, el trabajo con cadenas de caracteres es bastante comn.


La mayora de los lenguajes clsicos de programacin (C, Modula2, ...) definen las cadenas
de caracteres como tablas de caracteres. Sin embargo, JAVA proporciona de forma
explcita este tipo mediante dos clases: String y StringBuffer. Dichas clases disponen
de numerosos mtodos que facilitan su manipulacin. StringBuffer es ms eficiente que
String (consume menos memoria del computador), por lo que se recomienda su uso

Pgina 56

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

cuando las alteraciones en cadenas de caracteres sean frecuentes. Estudie con atencin el
ejemplo 7.1 y trate de resolverlo utilizando la clase StringBuffer en lugar de String. Para
obtener una relacin de los mtodos que ofrece StringBuffer consulte la ayuda JDK de
RealJ tal y como se describe a continuacin:
1. Seleccione la opcin JDK Help

2. Introduzca la palabra que est buscando, en nuestro caso, StringBuffer

3. Desplcese por la ayuda hasta localizar el mtodo deseado.


Pgina 57

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

El apartado 7.2. Troceadores y la clase Text expone la implementacin de Text.


Creemos innecesario su estudio, pues basta con que el alumno se familiarice con la manera
de utilizar dicha clase.
JAVA es un lenguaje de utilizacin universal, por ello presenta entre otras
prestaciones las siguientes:

El paquete java.text (no confundir con la clase Text del paquete


javagently), que permite formatear nmeros y unidades monetarias de

cualquier pas. Teniendo en cuenta que una proporcin mas que considerable
del software que se desarrolla en el mundo son aplicaciones bancarias,
deducimos la gran utilidad de este paquete.

La clase Date, que posibilita el manejo de fechas, calendarios y tiempo.

Aconsejamos por tanto, el estudio de los ejemplos 7.3, 7.4, 7.5, 7.6 y 7.7.

Pgina 58

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

Ejercicios aconsejados (NO debe devolverlos al profesor)


1. Introducir en el entorno de programacin RealJ y ejecutar los siguientes
programas propuestos en el libro de texto obligatorio Java. Fundamentos de
Programacin, solventando posibles erratas si fuera necesario:
a. Ejemplo 7.1: Eliminando espacios dobles (pgina 198)
b. Ejemplo 7.3: Tabla de conversin de monedas (pgina 210)
c. Ejemplo 7.4: Das de compras (pgina 214)
d. Ejemplo 7.5: Formateando y analizando fechas (pgina 216)
e. Ejemplo 7.6: Probando husos horarios (pgina 218)
f. Ejemplo 7.7: Fechas multilinges (pgina 219)
2. Resolver el ejemplo 7.1 utilizando la clase StringBuffer en lugar de
String.

Ejercicios obligatorios (DEBE devolverlos al profesor junto con los


Cuadernos de Evaluacin a Distancia)
1. Ejercicio 5: Palndromos, de la Unidad Didctica 1.

5.2. Unidad didtica 2. Potencia.

CAPTULO 8. Objetos en marcha.

El encapsulamiento facilita el trabajo en grupo, la reutilizacin de software y el


aislamiento de errores facilitando su identificacin. Es por tanto necesario dominar los
modificadores de accesibilidad que proporciona JAVA. Estudie minuciosamente el ejemplo
8.1.

Pgina 59

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

En la resolucin de un problema mediante programacin orientada a objetos,


inicialmente han de identificarse las clases participantes, a continuacin sus relaciones y
finalmente se detallan sus atributos y mtodos. El ejemplo 8.2 le ayudar a familiarizarse con
esta metodologa.
Es fundamental la distincin entre variable y objeto, es decir, entender claramente
que el trabajo con variables implica el uso de valores, mientras que con objetos, conlleva la
utilizacin de referencias. Este hecho conlleva dos importantes consecuencias:
1. La igualdad entre variables se evala con el operador booleano ==, mientras que
entre objetos debe emplearse el mtodo equals correspondiente.
2. La copia de una variable en otra se realiza mediante asignacin =, por el
contrario, los objetos han de copiarse, o mejor dicho, clonarse con el mtodo
clone correspondiente.

En los lenguajes de programacin clsicos, no existen tablas cuyo tamao pueda


variar durante la ejecucin de un programa, siendo necesario emplear un recurso llamado
puntero. Este mecanismo exige manejar manual y explcitamente la memoria del
computador. A base de punteros, es posible construir listas, es decir, tablas dinmicas. El
principal inconveniente de las listas respecto a las tablas es el difcil acceso a sus elementos.
A diferencia de estos lenguajes, JAVA s proporciona de forma explcita tablas dinmicas
mediante la clase Vector (ver pgina 185 del libro). Por ello, consideramos irrelevante la
lectura de la seccin 8.4 Listas de objetos, as como el Caso de estudio 3: Cafetera de Nelson. Damos
por acabado este captulo con la seccin

8.3 Propiedades de los objetos.

Pgina 60

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

Ejercicios aconsejados (NO debe devolverlos al profesor)


1. Introducir en el entorno de programacin RealJ y ejecutar los siguientes
programas propuestos en el libro de texto obligatorio Java. Fundamentos de
Programacin, solventando posibles erratas si fuera necesario:
a. Ejemplo 8.1: Exploremos la proteccin (pgina 233)
b. Ejemplo 8.2: Cafetera de Nelson (pgina 236)

CAPTULO 9. Abstraccin y herencia.

Este captulo presenta dos mecanismos fundamentales que posibilitan la extensin


de clases y por tanto, la reutilizacin de cdigo en orientacin a objetos: la abstraccin
(mediante el uso de clases abstractas e interfaces) y la herencia.
En la herencia mltiple una clase puede derivarse de varias clases base. Por ejemplo,
supngase

que

se

tienen

las

clases

Estudiante

Trabajador,

un

EstudianteTrabajador podra derivarse entonces de ambas clases.

Aunque la herencia mltiple es atractiva y en algunos lenguajes (incluyendo C++)


se puede implementar, est rodeada de sutiles detalles que complican su diseo. Por
ejemplo, es posible que las dos clases base contengan dos mtodos con la misma signatura
pero distintas implementaciones. Del mismo modo, ambas clases pueden tener atributos
con nombres idnticos. Entonces, cul deberamos usar?
Supongamos que en el ejemplo de EstudianteTrabajador, Persona es una clase
con el atributo nombre y el mtodo toString. Supngase adems que Estudiante
extiende a Persona y sobrescribe el mtodo toString para incluir el ao de graduacin
del estudiante. Supongamos, tambin, que Trabajador extiende a Persona.

Pgina 61

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

En notacin JMT:
Persona

toString

nombre

Trabajador

Estudiante

toString

EstudianteTrabajador

1. Como EstudianteTrabajador hereda los atributos de Estudiante y


Trabajador, se tienen dos copias de nombre?

2. Si EstudianteTrabajador no redefine toString, qu mtodo toString


debemos emplear?
Cuando en la herencia intervienen ms clases, los problemas son an mayores.
Estas dificultades se traducen en implementaciones o identificadores de atributos
conflictivos. Como consecuencia, JAVA no permite la herencia mltiple; sin embargo,
presenta una alternativa: las interfaces. Veremos esta utilizacin de las interfaces en el
captulo 12.
Abstraccin y herencia son dos conceptos esenciales en la programacin orientada
a objetos. Adems, su comprensin exige un considerable esfuerzo de reflexin, por lo que

Pgina 62

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

aconsejamos la realizacin de todos los ejemplos del libro, as como del ejercicio 1:
Ordenacin de figuras geomtricas de la Unidad Didctica 2.

Ejercicios aconsejados (NO debe devolverlos al profesor)


1. Introducir en el entorno de programacin RealJ y ejecutar los siguientes
programas propuestos en el libro de texto obligatorio Java. Fundamentos de
Programacin, solventando posibles erratas si fuera necesario:
a. Ejemplo 9.1: Ordenar cualquier cosa (pgina 275)
b. Caso de estudio 4: Etiquetas veterinarias (pgina 288)

Ejercicios obligatorios (DEBE devolverlos al profesor junto con los


Cuadernos de Evaluacin a Distancia)
1. Ejercicio 1: Ordenacin de figuras geomtricas, de la Unidad
Didctica 2.

CAPTULO 10. Interfaces grficas de usuario.

En los tiempos que corren, cualquier lenguaje de programacin serio debe facilitar
la creacin de aplicaciones visuales, esto es, la generacin de ventanas, botones,... Uno de
los paquetes que JAVA proporciona para estos menesteres es el java.awt.
Algunos entornos de programacin comerciales como VisualAge de IBM,
proporcionan un editor grfico con el que el diseo de ventanas se reduce a pintar con el
ratn botones, paneles, ..., encargndose el propio editor de generar automticamente el
cdigo JAVA correspondiente. El problema que plantean estas herramientas es muy similar
al de los editores de pginas web (por ejemplo, FrontPage de Microsoft):

Pgina 63

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

Lo que se ve en el momento de la edicin no siempre coincide con lo que se


ver durante la ejecucin (en el caso de los editores web, en la visualizacin con
el navegador o browser).

El cdigo automticamente generado no suele ser ptimo. Adems, sucesivas


variaciones en el diseo de una ventana hacen que el cdigo vaya creciendo de
forma considerable. Por ejemplo, borrar un determinado botn en la pantalla
del editor, no siempre conllevar la eliminacin total de su cdigo, es decir, el
programa va inundndose de fragmentos residuales intiles.

En conclusin, tanto si se utilizan editores grficos como si no, es aconsejable el


conocimiento del paquete java.awt.
Como puede apreciarse en la Figura 10.1 (pgina 299 del libro de referencia), awt
posee una estructura bastante compleja para posibilitar la creacin de prcticamente
cualquier elemento grfico. No se deje abrumar ante este lo de clases. Introduzca en el
entorno de programacin RealJ los ejemplos propuestos en el libro, ejecutelos y
experimente con ellos, ver como rpidamente domina su manejo.

Ejercicios aconsejados (NO debe devolverlos al profesor)


1. Introducir en el entorno de programacin RealJ y ejecutar los siguientes
programas propuestos en el libro de texto obligatorio Java. Fundamentos de
Programacin, solventando posibles erratas si fuera necesario:
a. Ejemplo 10.1: Aviso de virus usando grficos (pgina 302)
b. Ejemplo 10.2: Un grfico climatolgico (pgina 304)
c. Ejemplo 10.3: Aviso con dos respuestas (pgina 312)
d. Ejemplo 10.4: Semforos (pgina 318)

Pgina 64

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

CAPTULO 11. Programacin dirigida por sucesos.

Durante este captulo se completa la descripcin del paqute java.awt,


presentndose nuevos componentes visuales: cuadros de texto, mens desplegables, ... As
como la captura y gestin de los eventos generados por estos componentes.

Ejercicios aconsejados (NO debe devolverlos al profesor)


1. Introducir en el entorno de programacin RealJ y ejecutar los siguientes
programas propuestos en el libro de texto obligatorio Java. Fundamentos de
Programacin, solventando posibles erratas si fuera necesario:
a. Ejemplo 11.1: Nueva forma de mostrar los semforos (pgina
326)
b. Ejemplo 11.2: Calibrado de semforos (pgina 330)
c. Caso de estudio 5: La caja de un supermercado (pgina 334)

Ejercicios obligatorios (DEBE devolverlos al profesor junto con los


Cuadernos de Evaluacin a Distancia)
1. Ejercicio 2: Calculadora, de la Unidad Didctica 2.

CAPTULO 12. Applets en accin.

Los Applets permiten dotar de dinamismo a las pginas web, principal vehculo de
explotacin de Internet. Sin embargo, hoy da somos testigos de una batalla entre
multinacionales y estndares, principalmente entre Sun, creadora de JAVA, Microsoft con su
Internet Explorer y Netscape con su Navigator. Aunque Sun establece el estndar de JAVA,
tanto Netscape como Microsoft tratan de aduearse del mismo, implementando mquinas
virtuales propietarias que aaden ciertas prestaciones al estndar e ignoran otras.
Pgina 65

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

Como consecuencia, al realizar un Applet e insertarlo en una pgina web, su


correcto funcionamiento depender en gran medida del navegador que se utilice. Tras
numerosas pruebas, tenemos la impresin de que Netscape parece ms fiel al estndar de
Sun que Microsoft. Concretamente, la versin 6 del Netscape Navigator no da ningn
problema tanto con los ejercicios propuestos en el libro como con el ejercicio 3:
Monedas, de la Unidad Didctica 2.
RealJ facilita la creacin de Applets de la siguiente forma:
1. Seleccionar New Project en el men Project.

2. Seleccionar Applet Project.

Pgina 66

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

3. Seleccionar el lugar donde se guardar el proyecto.

La consecucin de estos pasos provoca que RealJ genere automticamente una


pgina HTML de prueba y la estructura bsica del Applet.
En el ejercicio 3 de la Unidad Didctica 2, entre el material que le proporcionamos
para su realizacin, est la pgina web donde ir el Applet que el enunciado le solicita, por
lo que aconsejamos sustituir el proceso antes descrito por el siguiente:
1. Crear un proyecto vaco y aadir el cdigo JAVA que le corresponda tal y como hemos
venido trabajando hasta ahora.

Pgina 67

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

2. Situarse sobre la clase principal (en el ejemplo Monedas.java) y pulsar el botn derecho
del ratn, seleccionando a continuacin la opcin Add HTML File.

3. Seleccionar la pgina web que contendr el applet.

Pgina 68

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

Para la ejecucin del Applet, RealJ ofrece dos opciones:


Opcin 1: el visor de Applets de JAVA: posicinese sobre la pgina web contenedora del
Applet (en el ejemplo, monedas.htm), pulse el botn derecho del ratn y seleccione a
continuacin la opcin Run Applet.

Opcin 2: lanzar el navegador que tenga instalado en su ordenador: posicinese sobre la


pgina web contenedora del Applet (en el ejemplo, monedas.htm), pulse el botn
derecho del ratn y seleccione a continuacin la opcin Open in Web Browser.

Pgina 69

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

Ejercicios aconsejados (NO debe devolverlos al profesor)


1. Introducir en el entorno de programacin RealJ y ejecutar los siguientes
programas propuestos en el libro de texto obligatorio Java. Fundamentos de
Programacin, solventando posibles erratas si fuera necesario:
a. Ejemplo 12.1: Applet para un aviso de virus (pgina 346)
b. Ejemplo 12.2: Applet de la caja de un supermercado
(pgina 349)
c. Ejemplo 12.3: El concurso del peridico (pgina 354)
d. Ejemplo 12.4: La caza del fantasma (pgina 365)
e. Caso de estudio 6: El Proyecto de Conservacin de la
Naturaleza (pgina 369)

Ejercicios obligatorios (DEBE devolverlos al profesor junto con los


Cuadernos de Evaluacin a Distancia)
1. Ejercicio 3: Monedas, de la Unidad Didctica 2.

Pgina 70

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

6. ERRATAS EN EL LIBRO DE REFERENCIA


El libro de referencia obligatorio, Java. Fundamentos de la Programacin de Judy
Bishop, presenta erratas. A continuacin, se exponen las que hasta el momento hemos
detectado.

Pgina 20

El cdigo correcto correspondiente al ejemplo 2.2: Anillos olmpicos es el siguiente:

import java.awt.*;
import java.awt.event.*;
class Anillos extends Frame {
public Anillos() {
setTitle("Anillos Olimpicos");
} /* Constructor */
public static void main(String [] args) {
Frame f = new Anillos();
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}});
f.setSize(300,200);
f.setVisible(true);
} /* main */
public void paint (Graphics g) {
g.setColor(Color.red);
g.drawOval(30,40,35,35);
g.setColor(Color.blue);
g.drawOval(50,50,35,35);
g.setColor(Color.green);
g.drawOval(70,40,35,35);
g.setColor(Color.yellow);
g.drawOval(90,50,35,35);
g.setColor(Color.black);
g.drawOval(105,40,35,35);
} /* paint */
} /* Anillos */

Pgina 59

Las tablas de operadores boolanos correctas son las siguientes:

Pgina 71

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

And &&

Falso

Verdad

Falso

Verdad

Falso

Falso

Falso

Falso

Falso

Verdad

Verdad

Falso

Verdad

Verdad

Verdad

Falso

Or ||

Falso

Verdad

Not !

Falso

Falso

Verdad

Falso

Verdad

Verdad

Verdad

Verdad

Verdad

Falso

Xor ^

Pgina 114

El enunciado correcto del Ejemplo 4.7 es:

Problema Los cheques falsificados estn en circulacin y los bancos han descubierto que todos tienen las
mismas propiedades distintivas. Un cheque puede ser falso si en el nmero de cheque de 10 dgitos hay:
1. Tres o ms ceros en sucesin,
2. y/o cuatro o ms no-ceros seguidos.

Pgina 72

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

7. CRITERIOS DE EVALUACIN
La evaluacin final se basar en la solucin enviada por el alumno de los
cuadernos evaluacin a distancia. Dicha solucin deber adjuntarse en papel con los
citados cuadernos.

8. PROFESORADO

Rubn Heradio Gil

Jos Antonio Cerrada Somolinos

Juan Jos Escribano Rdenas

Jos Flix Estvariz Lpez

Sebastin Rubn Gmez Palomo

Covadonga Rodrigo San Juan

9. TUTORAS
Las consultas pueden realizarse por correo, enviando las cuestiones al profesorado
responsable del curso. As mismo, est prevista una tutorizacin de consultas telefnicas o
con presencia de los alumnos en los locales del departamento de Lenguajes y Sistemas
Informticos en la Sede Central de la UNED.
Direccin postal:
A la atencin de Rubn Heradio Gil
Programacin orientada a objetos en JAVA
Dpto. de Lenguajes y Sistemas Informticos
Apdo. 60149 28080 MADRID

Pgina 73

UNED. Matrcula Abierta

Programacin Orientada a Objetos en JAVA

Contacto telefnico:
Est prevista como jornada de guardia para recibir consultas telefnicas o
presenciales la maana del jueves, de 10 a 14 horas.
Tel.: 91 398 8242 / 7617 / 6478 / 6486 / 6487
Fax: Tambin se indica el nmero de fax para aquellas personas que puedan
disponer de este medio. Este es el 91 398 65 35. Los envos por fax debern
realizarse a la misma direccin que los envos por correo.
Correo electrnico:
Para aquellos alumnos que dispongan de este medio, pueden enviar sus mensajes a
la direccin: java@lsi.uned.es

10. CALENDARIO GENERAL


15-XI-2002

Inicio del curso.

15-II-2003

Fin aconsejado para el estudio de la Unidad Didctica I.


Fecha final de la contestacin de los ejercicios de dicha unidad.

15-V-2003

Fin aconsejado para el estudio de la Unidad Didctica II.


Fecha final de la contestacin de los ejercicios de dicha unidad.

30-VI-2003

Fecha final de elaboracin de calificaciones. Fin de curso.

Pgina 74

Вам также может понравиться