Enrera
Mòdul 1
Iniciació a la programació en Java
  Pràctica
1
2
3
4
   
Exercicis
Exercicis
 
 

Aquesta pràctica consisteix en un primer contacte amb la documentació del SDK. Hi proposem:

  • Fer-ne la instal·lació al nostre ordinador de manera que sigui fàcilment accessible i reconeixible per l'IDE que instal·larem a la següent pràctica.
  • Veure'n les característiques i comprendre la necessitat que té el programador de consultar-la constantment.

  • Relacionat amb el punt anterior, començar a comprendre en què consisteix un llenguatge de programació orientat a objectes (OOP), tal com és el llenguatge Java(TM) objecte del curs.

Per tal de portar a terme la pràctica, cal disposar de la documentació, comprimida a l'arxiu j2sdk-1_4_0-doc.zip, el qual és a la web del fabricant http://java.sun.com/. (29.8 Mb per aquesta versió)

   
Desenvolupament de la pràctica
   

La pràctica consistirà en la instal·lació de la documentació del SDK, veure'n l'aspecte i, després, documentar, és a dir, elaborar automàticament la documentació de la petita aplicació "ProvaFuncionament" que hem fet a la pràctica anterior, per tal de començar a familiaritzar-se amb l'executable javadoc.exe. Aquest executable és l'aplicació que permet fer automàticament la documentació de classes aïllades o de paquets (packages) sencers de classes (és el cas de les classes i paquets de classes del SDK)

Mentre explicar el perquè de tot plegat, anirem donant unes primeres pinzellades sobre la programació en Java pel que fa al seu aspecte de llenguatge de programació orientat a objectes (OOP).

   
Pràctica
Instal·lació:
   
 

Cal localitzar el fitxer j2sdk-1_4_0-doc.zip a Internet, a la web del fabricant http://java.sun.com/. (29.8 Mb per aquesta versió) i descomprimir-lo tot conservant l'estructura de carpetes que conté. La carpeta arrel de la documentació pot ser qualsevol, però nosaltres us recomanem que sigui

C:\j2sdk1.4.0_01\docs\jdk140-Html\>

això permetrà penjar-hi després qualsevol altra mena de documentació com a subcarpeta de la carpeta C:\j2sdk1.4.0_01\docs\.

   
Atenció !
Altres formats:
 

A voltes, el format de document HTML de la documentació del Java 2 SDK que acabem d'instal·lar pot resultar un pèl incòmode. Existeix la possibilitat de disposar d'aquesta mateixa documentació en els següents formats, els quals permeten la consulta sense necessitat d'obrir el navegador:

   
Pràctica
Un primer cop d'ull:
 

Anem a la carpeta C:\j2sdk1.4.0_01\docs\jdk140-Html\ i obrim el fitxer index.html, que és l'arrel de la documentació, és a dir, la pàgina d'origen.

  • Mirem-ne el contingut. Aquesta pàgina és força llarga i conté els enllaços a tota la documentació disponible elaborada per Sun Microsystems. Aquests enllaços són de dues menes:

    • Enllaços al site java.sun.com. A la columna de la dreta hi podem llegir "website"
    • Enllaços a algun dels fitxers que acabem d'instal·lar al nostre disc dur. A la columna de la dreta hi podem llegir "docs". Els fitxers que necessitem són d'aquesta mena.

  • Anem al paràgraf "API & Language Documentation". L'enllaç "Java 2 Platform API Specification" és la porta d'entrada a la documentació que cal treballar. Cliquem sobre l'enllaç...



    i ja som a l'origen de la documentació del SDK.
   
Atenció !

Però...,què és tot això?

 

 

 
  • Comencem establint dos fets que convé tenir sempre al cap:

    • Java, com els llenguatges que li són pròxims (C i C++), té un conjunt relativament petit de paraules reservades. Algunes són comunes a C (for, while, break, int, etc.), inclosa la sintaxi, d'altres són pròpies de Java (try, catch, etc.), però en tot cas aquest conjunt és força reduït i fàcilment memoritzable.

    • Però Java és un llenguatge per a programació orientada a objectes (OOP). La programació orientada a objectes és un paradigma de programació ben diferent de la programació estructurada de C, Pascal...!

  • La primera de les afirmacions del paràgraf anterior s'entén perfectament. La segona potser no. Classes, objectes... parlem-ne una miqueta:

    • Un objecte és una peça de programari que conté variables i mètodes per manipular aquestes variables,


      és a dir, un objecte conté dades, informació, i rutines per a tractar aquesta informació.

      Comparant-ho amb la programació estructurada, es tracta d'incloure en una mateixa entitat, l'objecte, variables i funcions (aquí les funcions es diuen mètodes) que poden actuar sobre aquestes variables.

      Un objecte ve a ser com les "estructures" del llenguatge C, amb l'afegitó que ara , a més, s'hi inclouen funcions (mètodes) per a manipular les dades que contenen.

    • Una aplicació Java consisteix en un conjunt d'objectes que s'interrelacionen entre ells mitjançant missatges:


      I els missatges no són altra cosa que crides a mètodes d'un cert objecte per tal que s'esdevingui alguna cosa...

    • Una classe és un prototipus que defineix les variables i els mètodes comuns a una certa mena d'objectes. Les classes venen a ser les matrius a partir de les quals, per derivació, extensió (la clàusula extends del llenguatge Java) o herència, (que tot vol dir el mateix), podrem crear diversos objectes de la mateixa mena. La classe defineix les variables i els mètodes comuns als objectes de certa mena, però després, cada objecte té els seus propis valors de les variables i cada mètode que s'executi serà el propi de l'objecte.

  • Què és,doncs, tota aquesta documentació? L'API del SDK consisteix en un conjunt (enorme, segons estem veient!) de llibreries de classes ja predeterminades (són a la carpeta j2sdk1.4.0_01\lib) i aquesta documentació descriu les variables i els mètodes de cadascuna d'aquestes classes per tal que sapiguem què fan i com fer-les servir!

    Les nostres aplicacions Java consistiran en objectes derivats d'aquestes classes. Naturalment, un conjunt tan extens és impossible de memoritzar i, per tant, el programador ha der tenir a mà aquesta documentació perquè l'haurà de consultar molt i molt sovint.
   
Pràctica
Fer una documentació:
   
 

Per tal de no predre'ns en aquest oceà d'informació, ara farem la documentació de la petita aplicació de la pràctica 1. Aquest n'era el codi:

/**
* La classe "ProvaFuncionament" és una aplicació Java que,
* simplement, imprimeix la frase "Ja funciona!" a la sortida
* estàndard del sistema (stdout). Normalment aquesta sortida és la pantalla.
*/

public class ProvaFuncionament {
    public static void main (String[] args) {
        System.out.println("Ja funciona!");
    }
}
  • Ja es veu que tot allò que és entre /** i */ és un comentari que el compilador ignora. Per claredat, tal com està dins aquesta peça de codi,  els comentaris seran de color negre i el codi actiu serà  blau.

    A Java podem comentar a l'estil de C (/* ...comentari... */) i a l'estil de C++ (// ... comentari...), però si disposem les marques i etiquetes de comentari de manera adequada, llavors, l'executable javadoc.exe és capaç d'elaborar automàticament la documentació de la nostra classe!

  • Observeu bé com està disposat el comentari al codi de la nostra classe: comença amb /** i acaba amb */ i cada línia va precedida per  * . Això serà reconegut per javadoc.exe i ho incorporarà a la documentació.

  • Anem a documentar aquest fitxer font. Obriu la finestra de línia de comanaments del vostre sistema, situeu-vos a la carpeta c:\D110src, on ha d' ésser el fitxer ProvaFuncionament.java, i escriviu:

    c:\D110src>javadoc ProvaFuncionament.java

    Això executa el documentador javadoc.exe, el qual, a partir del fitxer font ProvaFuncionament.java, produeix un conjunt estructurat de documents HTML que són la documentació de la nostra aplicació. Aquest conjunt ha d'aparèixer a la mateixa carpeta en la qual estem treballant.

  • Examinem els resultats: anem a la carpeta c:\D110src i obrim el fitxer index.html



    És clar que té el mateix aspecte de la documentació del SDK que hem instal·lat abans: evidentment, la
    documentació del SDK ha estat creada d'aquesta manera!.

    A l'apartat "
    All Classes", lluny de l'enorme quantitat d'abans, ara només n'hi ha una...
   
Atenció !
Detalls a tenir en compte...
   
 

Hi ha algunes coses que, tot i no poder veure'n l'abast ara, ens serveixen per anar introduint-nos en el món de la programació Java:

  • Just sota el títol de la documentació de la nostra classe, a sota de "Class ProvaFuncionament", veiem que ProvaFuncionament "penja" de "java.lang.Object"

    Això és el reflex d'un fet bàsic: tota classe deriva de la classe Object i, per tant, n'hereta els mètodes.

  • Això es pot veure una mica més avall, a "Methods inherited from class java.lang.Object", on trobem la llista del mètodes d'aquesta classe que, per herència, han quedat implementats a la classe ProvaFuncionament

  • Aneu ara a la documentació del SDK i busqueu la classe Object. Veureu com té exactament els mètodes que ProvaFuncionament ha heretat.
   
Pràctica
Per acabar:
   
  Modifiqueu el codi font tot suprimint el comentari. Compileu-lo i mireu si encara funciona, per tal de comprovar que no n'hem fet malbé el codi. Documenteu-lo ara i mireu en què ha canviat el resultat...
   
 
Amunt