Professional Documents
Culture Documents
Unidad 1.
Introduccin
1.1. Teora: los lenguajes de programacin .............................................................................. 1-1 1.2. Prctica: el entorno de desarrollo bsico ........................................................................... 1-9 1.3. Prctica: el depurador de java (jdb) .................................................................................. 1-14 1.4. Prctica: documentacin de cdigo con JavaDoc ........................................................... 1-25
Introduccin
Instrucciones: smbolos especiales que representan estructuras de procesamiento y de definicin de elementos de programacin. Comentarios: texto que se usar para documentar los programas.
Tipos
de
datos
Tanto las variables como las constantes tomarn valores con respecto a una serie de dominios, llamados tipos de datos. Ejemplos de tipos de datos pueden ser: entero (toman valores enteros: 1, 7, 104, etc.), cadenas de texto (toman valores textuales como Aprieta F1, Son las 23:45, etc.), de coma flotante (toma valores en el dominio de los nmeros reales, como 3.1416, 1.414, etc.). Los tipos de datos simples (carcter, cadena, entero, flotante, etc.) pueden combinarse para formar tipos ms complejos como listas, diccionarios, rboles, colas, pilas, etc.
Introduccin
Portabilidad. Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma, ya sea hardware o software, diferente a aquella en la que se elabor.
Tipos
de
cdigo
Durante la fase de programacin se generan distintos tipos de cdigo: Cdigo fuente: es el escrito directamente por los programadores en editores de texto, Se compone de uno o ms ficheros de texto, cada uno de los cuales contiene un conjunto de instrucciones codificadas en algn lenguaje de alto nivel. Cdigo objeto: es el cdigo binario resultante de compilar el cdigo fuente. Por tanto, el responsable de generar cdigo objeto es el compilador. El cdigo objeto no es inteligible por el ser humano (generalmente est en formato binario), sin embargo, tampoco es directamente ejecutable por el ordenador. El compilador genera un fichero de cdigo objeto por cada fichero de cdigo fuente. Aquellos ficheros de cdigo objeto que comparten una finalidad comn se suelen agrupar en libreras. Cdigo ejecutable: es el resultante de enlazar uno o ms fragmentos de cdigo objeto con las libreras necesarias. El resultado es un archivo que el sistema operativo es capaz de cargar y ejecutar en memoria. El responsable de construir el ejecutable es el enlazador o linker. Los
1-2
Introduccin
ficheros con cdigo ejecutable tambin tienen formato binario, y un ejemplo de ellos en arquitecturas windows son los archivos con extensiones exe o dll.
Cdigo fuente
Cdigo objeto
Cdigo ejecutable
El cdigo fuente se compila produciendo un cdigo objeto. Ese cdigo objeto se enlaza con las bibliotecas que contienen los cdigos de funciones que se han empleado en el cdigo fuente, produciendo el cdigo ejecutable directamente por la computadora. Una vez que tenemos el cdigo ejecutable ya no necesitamos disponer del cdigo fuente para que el programa se ejecute. Si nos metemos un poco ms a fondo vemos que el proceso de compilacin consta de dos fases: Anlisis: se comprueba que el programa fuente es correcto a nivel lxico, sintctico y semntico. Traduccin: se realiza la traduccin propiamente dicha. Dependiendo de en qu momento se realice esta traduccin se tienen dos tipos distintos de traductores: compiladores e intrpretes.
Compilador
El proceso de compilacin se compone de los siguientes pasos: El analizador lxico examina en el programa fuente los tokens (elementos o cadenas con significado propio), como por ejemplo: palabras reservadas del lenguaje, identificadores, operadores, etc. Si se produce algn error, lo muestra. Si no se produce ningn error, el analizador sintctico toma la salida del analizador lxico y comprueba que la sintaxis del cdigo fuente es correcta segn la gramtica del lenguaje. En caso de errores, el compilador mostrar el tipo de error (por ejemplo: falta cerrar parntesis, el operador + necesita dos sumandos, etc.) y en qu punto del cdigo aproximado se encuentra. El resultado de este paso es el rbol sintctico del programa, y es anlogo a los rboles resultantes del anlisis sintctico de oraciones en el lenguaje humano. El analizador semntico es el encargado de dar significado al rbol sintctico. En este paso se hacen comprobaciones de tipos, se verifica que las variables tienen asignado algn valor antes de utilizarse, o que las constantes no cambien a lo largo del programa, entre otras. Ante cualquier error, se emite el error o advertencia correspondientes. Generador de cdigo intermedio: en esta fase se toma el rbol sintctico y se genera un cdigo intermedio, que es independiente del procesador de destino. De esta forma se pueden aprovechar todas las fases anteriores del compilador para generar cdigo lo ms portable posible.
1-3
Introduccin
El optimizador toma el cdigo intermedio y lo optimiza para su ejecucin en el procesador de destino, con el fin de minimizar el tiempo de ejecucin o el tamao del ejecutable final. Por ltimo, el generador de cdigo final traduce el cdigo optimizado a lenguaje mquina, produciendo como resultado un archivo de cdigo objeto.
Los distintos ficheros de cdigo objeto pueden ser enlazados entre s para construir cdigo ejecutable directamente por el microprocesador. En algunos lenguajes, como Java, sin embargo, el resultado del compilador es un cdigo especial cercano al lenguaje mquina (bytecode), pero independiente de ste. El responsable de ejecutar el bytecode es una mquina virtual (en el caso de Java, la Mquina Virtual Java, o JVM). Esta mquina es la que se encarga de traducir el bytecode a las instrucciones especficas para cada microprocesador y enlazar el cdigo objeto con las libreras. La ventaja de introducir un paso intermedio entre el cdigo objeto y el lenguaje mquina es la portabilidad: el mismo cdigo compilado se puede ejecutar en miltiples plataformas sin tener que volver a compilarlo. Ejemplos de lenguajes que generalmente son compilados directamente a lenguaje mquina: C, C++, Pascal. Lenguajes que se compilan a bytecode para su ejecucin por JVM: Java, Scala, JRuby o Jython.
Intrprete
El interprete lee el cdigo fuente de un programa lnea a lnea, ejecutando las instrucciones contenidas en cada lnea. Cada vez que lanzamos un programa interpretado se realizan el anlisis lxico, sintctico, semntico, optimizacin y ejecucin. Por tanto, un intrprete no genera cdigo ejecutable como un compilador. La ventaja de los lenguajes interpretados es que agilizan el desarrollo porque no es necesario el paso de la compilacin previo a la ejecucin del programa. Adems, favorecen la portabilidad de los programas, ya que el mismo cdigo puede ejecutarse en plataformas distintas siempre y cuando exista un intrprete en dichas plataformas. Como inconveniente, los programas interpretados suelen ser ms lentos porque implican el anlisis del cdigo fuente cada vez que se ejecutan. No obstante, muchos intrpretes hoy en da incorporan optimizaciones para evitar realizar el anlisis del cdigo fuente cada vez que se lanza el programa. Por ejemplo, Python genera un fichero .pyc con el rbol sintctico ya optimizado la primera vez que se ejecuta un programa. En sucesivas veces se comprueba que el cdigo fuente no haya cambiado, en cuyo caso reaprovecha el anlisis anterior para ahorrar tiempo. Ejemplos de lenguajes normalmente interpretados: PHP, Perl, BASIC, Python o Ruby, aunque algunos de estos lenguajes tambin poseen compiladores que generan cdigo ejecutable (phc para PHP, por ejemplo).
Introduccin
nivel a lenguaje mquina. Ejemplo: la secuencia binaria EB11 en la arquitectura x86 produce un salto a la posicin relativa 0x11. 2GL: lenguaje ensamblador. El lenguaje ensamblador permite programar utilizando las instrucciones del microprocesador. Cada instruccin en ensamblador corresponde con una instruccin en cdigo mquina. Se suele emplear en rutinas que requieren una especial optimizacin, o para interactuar directamente con el hardware. Algunos ejemplos de su uso: o Los ncleos (kernel) de los sistemas operativos suelen tener partes escritas en lenguaje ensamblador para aprovechar caractersticas de la CPU no accesibles desde lenguajes de ms alto nivel Tambin se utiliza en la programacin de microcontroladores o sistemas empotrados donde se persigue un mayor control sobre la CPU o hay severas limitaciones de memoria. Muchos juegos de las primeras videoconsolas estaban escritos en ensamblador para sacarle todo el partido al hardware.
Ejemplo: la instruccin MOV EAX, 5 en ensamblador del 80386 asigna el valor 5 al registro EAX. 3GL: son lenguajes que buscan la aproximacin al lenguaje natural. Cada sentencia en un lenguaje 3GL suele estar asociada a varias instrucciones en cdigo mquina. Ejemplos: ALGOL, COBOL, Fortran (1950), C, C++, Perl, PHP, Python, Java, Lua. 4GL: son lenguajes diseados para un fin concreto. Abstraen al programador de los detalles algortmicos. Ejemplos: SQL, PL/SQL, Coldfusion, MATLAB.
Los primeros lenguajes estructurados fueron ALGOL (muy importante por sus contribuciones al resto de lenguajes), Pascal (muy utilizado en la enseanza sistemtica de la programacin), ADA o C. No estructurados: carecen de alguna de las estructuras anteriores. Por ejemplo: Fortran (para aplicaciones cientficas), Cobol y RPG (aplicaciones de gestin), o BASIC (propsito general).
Lenguajes
declarativos
En estos lenguajes, el programador slo tiene que declarar o especificar el problema (qu hay que resolver), siendo el propio traductor del lenguaje el que se encarga de construir el algoritmo que dar
Javier Martn 2011 1-5
Introduccin
solucin al problema (cmo resolverlo). Por ejemplo, en una consulta a una base de datos en SQL: select * from articulos where precio > 5, le decimos al intrprete de SQL lo que debe buscar en la tabla (artculos cuyo precio sea mayor que 5), no cmo debe hacerlo. Otros ejemplos de lenguajes declarativos son LISP o Prolog, ste ltimo est basado en el clculo de predicados y se emplea para obtener una solucin a un problema en base a una serie de reglas lgicas. Se puede ver un ejemplo sencillo de Prolog en: http://es.wikipedia.org/wiki/Prolog#Ejemplo_simple
Lenguajes Orientados a Objetos Los objetos son entidades que tienen un determinado comportamiento (mtodos) y una serie de atributos. Por ejemplo, un objeto Lavadora puede tener los mtodos Prelavar, Lavar, Enjuagar y Centrifugar, que corresponden a acciones que puede llevar a cabo el objeto. Tambin almacenar una serie de atributos como tiempo_restante, peso_de_la_carga, y estado_actual. Ejemplos de lenguajes orientados a objetos: Smalltalk, Java, Python o Ruby. Algunos lenguajes imperativos se han ampliado para ofrecer caractersticas de los orientados a objetos: C++ (es un superconjunto de la sintaxis de C), Objective-C, PHP o Perl. Respecto a los imperativos, los lenguajes orientados a objetos destacan por su capacidad para reutilizar programas en la construccin de otros nuevos. Las caractersticas ms importantes de los lenguajes orientados a objetos son: Abstraccin: Es la capacidad de un objeto de cumplir sus funciones independientemente del contexto en el que se lo utilice; por ejemplo el objeto Lavadora siempre expondr sus mismas propiedades y dar los mismos resultados a travs de sus eventos, sin importar el mbito en el cual se lo haya creado. Encapsulamiento: Esta caracterstica es la que denota la capacidad del objeto de responder a peticiones a travs de sus mtodos sin la necesidad de exponer los medios utilizados para llegar a brindar estos resultados. Por ejemplo, el mtodo Lavar del objeto Lavadora se pondr a lavar sin que nosotros tengamos por qu conocer su estado interno, el peso de la carga o cualquier otra propiedad encapsulada en el objeto. Herencia: Es la caracterstica por la cual unos objetos pueden adquirir (heredar) los mtodos y atributos de sus antecesores, modificndolos y/o aadiendo nuevos. Por ejemplo, el objeto LavadoraSecadora puede heredar los mtodos propios del objeto Lavadora y, a su vez, implementar nuevos mtodos relativos a las funciones de secado. Polimorfismo: El trmino de polimorfismo est ligado con la herencia. Define la capacidad de que varias clases derivadas de una antecesora utilicen un mismo mtodo de forma diferente. Por ejemplo, un telfono mvil, uno fijo y otro inalmbrico pueden tener un mismo mtodo Marcar, pero la implementacin interna ser distinta segn el tipo de telfono.
Introduccin
Los lenguajes utilizan variables y constantes para almacenar los datos que varan a lo largo de la ejecucin de un programa. En funcin del tratamiento de estas variables y constantes y sus tipos tenemos dos clasificaciones de lenguajes: Fuertemente tipificados: en el momento de escribir el programa, cada variable tendr asignado un tipo, y generalmente las operaciones entre tipos distintos estn prohibidas, siendo responsabilidad del programador hacer las conversiones pertinentes. Por ejemplo, en C, la operacin 5 (cadena de texto) + 6 (nmero entero) est prohibida y sera necesario convertir 5 a entero previamente. Otros ejemplos de lenguajes fuertemente tipificados son: Pascal, C++ o Java. Dbilmente tipificados: el programador no tiene que definir el tipo de las variables, y las conversiones entre stos suelen hacerse de forma automtica por el compilador o intrprete. Por ejemplo, en Perl, la operacin anterior (5 + 6) estara permitida: el compilador convierte automticamente la cadena 5 en el entero 5. Otro ejemplo de lenguaje dbilmente tipificado: PHP.
Cuestiones
1. Cules son los elementos de un programa que toman valores pero no cambian a lo largo del programa? 2. Cules son los elementos de un programa que toman valores que pueden cambiar a lo largo del programa? 3. Cules son los elementos de un programa que permiten hacer operaciones entre expresiones? 4. Cul es la caracterstica de un lenguaje que permite ejecutar sus programas en varias plataformas?
Javier Martn 2011 1-7
Introduccin
5. Cul es la fase del desarrollo dedicada a encontrar errores de funcionamiento de un programa para solucionarlos? 6. Cul es la fase del desarrollo dedicada a verificar el funcionamiento correcto del programa en base al diseo? 7. Qu tipo de cdigo es el que da como resultado un compilador? 8. Qu tipo de cdigo es el que escribe un programador, generalmente en editores de texto? 9. En qu paso de la compilacin se intenta que el programa resultante sea lo ms pequeo posible o bien lo ms rpido posible? 10. Qu diferencia hay entre un intrprete y un compilador? 11. Supongamos un programa en Java que da solucin al problema X. Se podra reescribir dicho programa en lenguaje ensamblador de forma que d una solucin igualmente vlida sea cual sea el problema X? 12. Y al revs? Sera posible traducir un programa en ensamblador a Java en cualquier caso? 13. Qu caracterstica de los lenguajes orientados a objetos permite que los objetos adquieran funcionalidad de sus antecesores? 14. Cmo se llaman los lenguajes en los que el programador debe convertir explcitamente las variables de unos tipos a otros? 15. Cmo se llaman los lenguajes que se pueden aplicar a problemas de cualquier tipo?
1-8
Introduccin
1-9
Introduccin
Aunque slo le hayamos indicado que instale el JDK, el gestor de paquetes de Ubuntu resolver las dependencias e instalar el JRE automticamente:
1-10
Introduccin
Para probar que tenemos el JDK bien instalado, podemos escribir un sencillo programa que imprima por pantalla cualquier mensaje al ejecutarse. Bastar abrir un editor (Aplicaciones Accesorios Editor de textos), y escribir lo siguiente:
Javier Martn 2011 1-11
Introduccin
Guardar el archivo con el nombre HolaMundo.java en la carpeta ~/Entornos/Tema 1. Ya tenemos nuestro primer programa Java! Es importante: Respetar las maysculas y minsculas, ya que tanto Linux como Java distinguen entre unas y otras. Obligatoriamente el nombre de la clase (HolaMundo) debe coincidir con el nombre del fichero (HolaMundo.java).
Si todo ha ido bien, el comando javac nos devuelve al shell sin imprimir ningn error, obedeciendo a la filosofa UNIX: la ausencia de noticias es una buena noticia. Si hacemos un ls, veremos que el compilador ha generado un fichero llamado HolaMundo.class.
1-12
Introduccin
java HolaMundo
Ejercicios
Ejercicio
1
Crea el siguiente programa Java en la carpeta ~/Entornos/Tema 1. Complalo y ejectalo. Cul es su salida por pantalla?
public class Numeros { public static void main(String[] args) { int i = 0; for (i = 0; i < 5; i++) { System.out.println(i); } } }
Ejercicio
2
Crea el siguiente programa en la carpeta ~/Entornos/Tema 1.
public class Error { public static void main(String[] args) { int a = Integer.parseInt(args[0]); int b = Integer.parseInt(args[1]); Systen.out.println(a + b); } }
Esta vez, el compilador javac nos devuelve un error, indicando que hay algo mal escrito en nuestro cdigo fuente. En qu lnea est el error? Sabras solucionarlo?. Una vez solucionado el error, sabras decir qu hace el programa?
Fuentes
y
bibliografa
http://es.wikipedia.org/wiki/JRE
1-13
Introduccin
Aunque la forma ms cmoda de depurar un programa es desde un entorno integrado de desarrollo (IDE por sus siglas en ingls), el JDK de Java cuenta con un depurador en modo texto cuyas funciones bsicas conviene conocer. Vamos a utilizar como ejemplo el programa Numeros de la prctica anterior:
public class Numeros { public static void main(String[] args) { int i = 0; for (i = 0; i < 5; i++) { System.out.println(i); } } }
Para depurar el programa, en vez de lanzarlo con java, utilizamos el comando jdb:
jdb Numeros
El jdb est esperando a que le digamos qu hacer. Para empezar, podemos pedir la ayuda sobre las rdenes disponibles con help:
Javier Martn 2011 1-14
Introduccin
El
comando
run
El comando run ejecuta el programa, como si lo hubiramos llamado con el comando java:
1-15
Introduccin
Aunque aparece ms informacin de lo habitual (Set uncaught , Set deferred ...), la salida de nuestro programa sigue estando ah, justo detrs de VM Started. Cuando el programa termina, el jdb imprime The application exited y nos devuelve al shell de Linux. La verdad es que el comando run por s solo no nos aporta nada nuevo porque el programa se ha ejecutado de tirn y no nos ha dado tiempo a hacer nada con l. Vamos a ver cmo podemos detener la ejecucin y examinar variables o ejecutar lneas paso a paso:
El
comando
stop
El comando stop sirve para detener el programa en un punto dado. Podemos indicarle que se pare al principio de un mtodo:
stop in Clase.mtodo
Veamos un ejemplo de stop in: vamos a hacer que el jdb se pare cuando empiece la ejecucin del programa, es decir, en el mtodo Numeros.main:
Bien! Ahora tenemos control sobre la ejecucin del programa. Si nos fijamos, el jdb se ha parado en la lnea 3. Podramos haber conseguido el mismo efecto utilizando el comando:
1-16
Introduccin
stop at Numeros:3
El
comando
list
Cuando salta un breakpoint, el jdb nicamente imprime la lnea en que se ha producido la interrupcin. Si queremos situarnos un poco mejor en el contexto del breakpoint, podemos utilizar el comando list:
El comando list muestra las 5 lneas por encima y por debajo de la actual, ayudndonos un poco a ubicarnos.
Javier Martn 2011 1-17
Introduccin
El
comando
step
Para avanzar una lnea, utilizamos el comando step:
El jdb nos informa que el paso se ha completado, y que ahora estamos en la lnea 4.
El
comando
!!
El comando !! equivale a teclear de nuevo el ltimo comando. Por ejemplo, justo despus de un step, !! equivaldra a otro step:
En el pantallazo anterior hemos ejecutado !! dos veces. La primera nos ha colocado en la lnea 5. Al darle una vez ms a !!, si nos fijamos vemos como se ha ejecutado la lnea System.out.println(i), imprimiendo un 0 (lnea en fondo negro). A continuacin volvemos a la lnea 4 para empezar el bucle de nuevo. El hecho de que la salida del programa salga mezclada con la informacin del propio jdb hace que sea un poco engorroso depurar as. Este problema se resuelve utilizando un IDE con depurador integrado, pero tambin existe una forma de evitarlo con el jdb que veremos ms adelante.
1-18
Introduccin
El
comando
print
El comando print imprime el valor de una variable. Por ejemplo, si tecleamos print i justo en el estado actual del programa, obtendremos el valor de la variable i. S? Vemoslo:
Vaya! Parece que ha habido un error. La variable i debera valer 1, pero en su lugar sale un error (ParseException), y nos dice que i vale null. Qu est pasando? Lo que ocurre es que para que el jdb pueda mostrar el valor de las variables, hay que compilar el programa con la opcin de depuracin: -g:
javac -g Numeros.java
Recompilemos el programa con la orden anterior, y volvamos a lanzar el programa con el jdb. Esta vez vamos a poner un breakpoint en la lnea 5 (el System.out.println), para que el programa se detenga all:
Esta vez s! El valor de la variable es 0, ya que al reiniciar el programa, es la primera vez que entramos en el bucle.
Javier Martn 2011 1-19
Introduccin
El
comando
cont
El comando cont sirve para continuar la ejecucin. En caso de que el programa se encuentre con algn breakpoint, volveramos al jdb de nuevo:
Efectivamente, al hacer un cont, el programa vuelve a interrumpirse en la lnea 5. Esta vez, si hacemos un print i, el valor que nos da es 1. Si hicieramos otro cont, el valor esperado de i sera 2, y as sucesivamente hasta terminar el bucle.
El
comando
clear
El comando clear sirve para eliminar breakpoints. Tambin sirve para obtener la lista de breakpoints activos:
Cuando no queremos que el programa se detenga ms en la lnea 5, simplemente eliminamos el breakpoint haciendo:
clear Numeros:5
Si ejecutamos la orden anterior seguida de un cont, veremos como el programa sigue su ejecucin hasta que termina:
1-20
Introduccin
Si lanzamos el programa con run, veremos como en la primera ventana nicamente aparece la salida del programa:
Introduccin
Conclusin
Esta prctica es una mera toma de contacto con la depuracin de aplicaciones Java. El jdb tiene muchas ms funciones, pero el 99% de las veces utilizaremos un IDE, donde todas las operaciones estn accesibles mediante barras de herramientas, mucho ms intuitivas. En sucesivas prcticas retomaremos la depuracin desde entornos IDE, donde exploraremos ms exhaustivamente las posibilidades del depurador de Java.
Ejercicios
Ejercicio
1
El siguiente programa es un sencillo juego en el que el ordenador nos reta a adivinar un nmero entre el 1 y el 100 en tres intentos. Cuando nos equivocamos nos da una pista diciendo si nos hemos pasado por arriba o por abajo, y nos brinda una nueva oportunidad de acertar, hasta que o bien demos con el nmero, o bien agotemos los tres intentos:
import java.util.Random; import java.util.Scanner; // Compilar con javac -g Adivina.java // Ejecutar con java Adivina public class Adivina { public static void main(String[] args) throws java.io.IOException { Random generador = new Random(); Scanner scanner = new Scanner(System.in); int numero_ordenador = generador.nextInt(100) + 1; int numero_humano; int intentos = 0; System.out.println("Adivina el nmero del 1 al 100"); do {
Javier Martn 2011 1-22
Introduccin
// Lee nmero introducido por teclado numero_humano = scanner.nextInt(); // Da una pista si es mayor o menor if (numero_ordenador < numero_humano) { System.out.println("Menos"); } if (numero_ordenador > numero_humano) { System.out.println("Mas"); } // Repite mientras el humano no acierte intentos++; } while (numero_ordenador != numero_humano && intentos < 3); if (numero_ordenador == numero_humano) { System.out.println("CORRECTO!!"); } else { System.out.println("NOOOOO, HAS FRACASADO!"); } } }
Humillados por nuestra incapacidad de vencer al ordenador, decidimos hacerle trampas. Para ello vamos a cargar el programa dentro del jdb y pararlo justo despus de que genere el nmero secreto. Averiguaremos cul es su valor y demostraremos nuestra superioridad a la mquina respondiendo correctamente en el primer intento. Indica cules son los comandos necesarios en el jdb capturando la sesin de depuracin en un fichero de texto.
Ejercicio
2
El matemtico alemn Gottfried Leibniz descubri el siguiente mtodo para calcular el nmero Pi de una forma aproximada:
= 4
4 4 4 + + ... 3 5 7
Introduccin
1-24
Introduccin
Lectura
previa
Uso de JavaDoc http://gpd.sip.ucm.es/rafa/docencia/programacion/tema1/javadoc.html
Ejercicios
Ejercicio
1
1. Leer la documentacin de JavaDoc anterior. 2. En la carpeta ~/Entornos/Tema 1, crear una carpeta llamada Circulo. 3. Dentro de ~/Entornos/Tem a 1/Circulo, crear un archivo llamado Circulo.java con el cdigo de ejemplo. 4. Generar la documentacin:
ad@tierra:~$ cd Entornos/Tema\ 1/Circulo/ ad@tierra:~/Entornos/Tema 1/Circulo$ javadoc Circulo.java
1-25
Introduccin
Para comprobar que se ha generado la documentacin correctamente, abrimos con el navegador el fichero index.html:
Ejercicio
2
Escribir la documentacin del programa Error.java de la prctica anterior: Clase Error: o o o o o o Descripcin de la clase: Clase de prueba del tema 1. Ejemplo de uso: javac Error 2 3. Dar como resultado el nmero 5 Autor: tu nombre Version: 1.0 Descripcin del mtodo: Vamos a reutilizar esta clase del tema 1, que originalmente contena un error, para aprender a documentar cdigo Java. Descripcin del parmetro args: Los 2 nmeros a sumar Devuelve: Nada
1-26
Mtodo main:
Introduccin
Para que no se mezcle la documentacin con el resto de archivos de la carpeta Tema 1, podemos pasarle a javadoc el parmetro d con la carpeta donde queremos guardar la documentacin generada:
ad@tierra:~/Entornos/Tema 1$ javadoc Error.java -d Error-doc
1-27