Programmazione per TWM: Esercitazione di laboratorio #20 (07/05)

Gli obiettivi di questa esercitazione sono: capire e saper utilizzare la parola riservata package, i commenti ed il comando javadoc, la documentazione e i package delle API Java (capitoli 10 e 11 fino a 11.2).

Raccomandazioni: Ove non altrimenti indicato, rispondete alle domande prima ragionando su carta e poi provando a editare, compilare ed eseguire. Gli esercizi etichettati con l'asterisco (*) sono più difficili: affrontateli dopo aver risolto gli altri.

Esercizio 1

Obiettivo: saper utilizzare i package.

Attività:

  1. Scrivere il programma Esercizio1Attivita1 inserito nel package es20. Il programma deve semplicemente stampare ciao a tutti. Provate a compilarlo ed eseguire.
  2. Spostate il programma Esercizio1Attivita1 dell'attività precedente nel package twm.labprog.aa0203.es20. Provate a compilarlo ed eseguire.
  3. Definite la classe pubblica A nel package es20.prova1 con un unico metodo
    public int m1() {return 3;}
    Definite la classe pubblica B nel package es20.prova2 con un unico metodo
    public int m2() {return 5;}
    Completate il programma Esercizio1Attivita3 per fargli stampare 8.
    package es20.prova3;
    
    import ...;
    import ...;
    
    class Esercizio1Attivita3 {
      public static void main(String[] args) {
        ... pippo = new ...;
        ... pluto = new ...;
        System.out.println(pippo.m1()+pluto.m2());
      }
    }
  4. Modificare il codice all'attività precedente per fare in modo che Esercizio1Attivita4 stampi 15 (notate l'uso dei full qualified names).
    package es20.prova3;
    
    class Esercizio1Attivita4 {
      public static void main(String[] args) {
        es20.prova2.B pippo = new es20.prova2.B();
        System.out.println(pippo.m1()*pippo.m2());
      }
    }
    Suggerimento: non dovete aggiungere metodi.

Esercizio 2

Obiettivo: saper utilizzare javadoc.

Attività:

  1. Aggiungete i commenti javadoc alla classe e ai metodi pubblici di ScacchieraScomoda il cui codice è riportato qui di seguito.
    public class ScacchieraScomoda {
      private boolean[ ][ ] dati;
      private int riga;
      private int colonna;
      private static final int DIMENSIONE_MASSIMA = 26;
      
      public ScacchieraScomoda(int dimensione, int riga, char colonna) {
        dimensione = dimensione>DIMENSIONE_MASSIMA ? DIMENSIONE_MASSIMA : dimensione;
        this.dati = new boolean[dimensione][dimensione];
        this.riga = riga-1;
        this.colonna = colonna - 'a';
      }
      
      public ScacchieraScomoda() {
        this(8,1,'a');
      }
      
      public void metti() {
        if (dati[riga][colonna])
    	  System.out.println("La cella e' gia' occupata");
    	else
          dati[riga][colonna] = true;
      } 
      
      public void selezionaCella(int riga, char colonna) {
        this.riga = riga-1;
        this.colonna = colonna - 'a';
      }
      
      public String toString() {
        int dimensione = dati.length;
    	String temp = "   ";
    	for (int i = 0; i<2*dimensione+1; i++)
    	  temp += "-";
    	temp += "\n";
        for (int i = 0; i<dimensione; i++) {
    	  temp += (dimensione-i<10?" ":"")+(dimensione-i)+" |";
    	  for (int j = 0; j<dimensione; j++)
    	    temp += (dati[(dimensione-i-1)][j]?"x":" ") + "|";
    	  temp += "\n   ";
          for (int j = 0; j<2*dimensione+1; j++)
    	    temp += "-";
    	  temp += "\n";
    	}
    	temp += "    ";
    	for (int i = 0; i<dimensione; i++)
    	  temp += ((char)('a'+i)) + " ";
    	return temp;
      }
    }
  2. Generate la documentazione javadoc di ScacchieraScomoda.
  3. Mostrate la documentazione javadoc al vostro vicino e verificate con lui che quello che avete scritto sia sufficiente per utilizzare la classe senza sapere come è fatto il codice.
    Guardando solo la documentazione, si può rispondere alle domande seguenti?

Esercizio 3

Obiettivo: iniziare a prendere confidenza con i package e la documentazione delle API Java.

Attività:

  1. Cercate la documetazione della classe String. Scrivere il programma Esercizio3 che legge da tastiera una stringa e, utilizzando l'opportuno metodo della classe String, stampa la versione tutta in maiuscolo della stringa immessa.
  2. Modificate il programma precedente per fare in modo che, dopo aver inserito la stringa da tastiera, se la stringa inizia per a stampa ciao, altrimenti la stampa tutta in maiuscolo.
    Anche qui dovete usare gli opportuni metodi della classe String.
  3. (*) Modificate il programma Esercizio3 per far inserire da tastiera due stringhe, farle confrontare tra loro e far stampare solo quella che viene prima in ordine alfabetico (o lessicografico).
  4. (*) Cercate la documentazione della classe Random. Scrivete il programma LanciaDado che ad ogni pressione del tasto invio "lancia un dato" e stampa a video il numero che è venuto fuori.

Valid HTML 4.01! Valid CSS! Paolo Coppola
Last modified: 2003-05-13