"Salve, mio giovane amico. Spero che tu non abbia dimenticato che sono un Burocrate di 16a generazione. Se non avessi sistematizzato tutte le mie conoscenze, non avrei mai raggiunto questo traguardo. Ho tantissime informazioni utili. Ti aiuterò a svolgere alcuni compiti. Per cominciare, voglio spiegarti com'è fatto un tipico programma Java."

"Ti ascolto."

"Fatto numero uno. Un programma Java è costituito da classi. Ogni classe è memorizzata in un singolo file, il cui nome coincide con il nome della classe. L'estensione del file è java."

"Quindi un programma è costituito da una serie di file con estensione 'java' e ogni file contiene il codice di una sola classe, giusto?"

"Proprio così, Amigo. Se un file si chiama IlMioGatto.java, contiene la classe IlMioGatto."

"Fatto numero due. Quando abbiamo molti file di classi, li raggruppiamo in cartelle e sottocartelle. Inoltre le classi sono raggruppate in package e sottopackage. I nomi dei package e sottopackage devono essere indicati nel codice della classe e devono essere identici ai nomi delle cartelle e sottocartelle dell'unità."

"Quindi da una parte abbiamo file contenuti in cartelle e dall'altra classi contenute in package. Il nome di una classe deve coincidere con il nome del file che la descrive. Il nome di un package coincide con il nome della cartella in cui è memorizzata la classe."

"Puoi darmi qualche altro dettaglio?"

"I nomi dei package annidati sono separati da punti, quasi come gli URL."

"In altre parole, supponi di avere una classe chiamata Gatto, contenuta in un package animali.domestici. Questo significa che:

Il disco rigido ha una cartella (che chiameremo src) dove sono memorizzati tutti i file dei progetti.

Contiene una cartella denominata animali, che a sua volta contiene una sottocartella domestici.

La cartella domestici contiene un file Gatto.java, che a sua volta contiene il codice della classe Gatto."

"Non sono sicuro di aver capito."

"Ascolta. La struttura delle classi e dei package rispecchia la struttura delle cartelle e dei file sul disco. Se abbiamo un file denominato Casa.java, contenuto nella cartella src/com/case, allora c'è una classe denominata Casa contenuta nel package com.case."

"Ci sono."

"Sembri capire piuttosto in fretta. Guarda lo schermo: Questo è il codice di una piccola classe. Ho etichettato tutte le parti fondamentali:"

        NOME PACKAGE
package com.futujava.lesson2;
import java.io.IOException;
/**
 * Utente: Generale
 * Data: 21/12/12
 * Ora: 11:59
 */
             NOME CLASSE
public class Compito1
{
                                                                   
   private static String TESTO = "Bacia il mio reattore metallico";⎥ VARIABILE DELLA CLASSE
                                                                   
                                                                 
   public static void main(String[] args) throws IOException     
   {                                                             
      OUTPUT SU SCHERMO                COMMENTO DI UNA RIGA      
      System.out.println(TESTO); //Visualizza una singola stringa
        COMMENTO DI PIÙ RIGHE                                    
      /*                                                         
        Questo è un commento di più righe.                       
        Il codice che segue visualizzerà tre stringhe identiche. ⎥ METODO main()
       */                                                        
      DICHIARAZIONE DELLA VARIABILE                              
      String s = "Oh oh oh!";                                    
      CHIAMATA AL METODO                                         
      stampaTestoPiuVolte(s, 3);                                 
   }                                                             
                                                                 
                                          PARAMETRI DEL METODO 
   public static void stampaTestoPiuVolte(String s, int conta) ⎥ FIRMA DEL METODO
                                                            
                                                                 
   {                                                             
      CICLO                                                      
      for (int i = 0; i < conta; i++)                            
      CORPO DEL CICLO                                            ⎥ CORPO/CODICE DEL METODO
      {                                                          
         System.out.println(s);                                  
      }                                                          
   }                                                             

}

"Eh, è chiaro quanto può esserlo dopo una sola spiegazione."

"Bene! È sufficiente per ora. Basta che capisci almeno qualcosa. Ti farai un'idea più completa con il tempo. Ora vado a schiacciare un pisolino. Qualcun altro continuerà la tua formazione."