„Hallo, junger Freund. Ich hoffe, du weißt noch, dass ich ein Bürokrat der 16. Generation bin. Wenn ich nicht mein ganzes Wissen systematisch aufbereitet hätte, wäre ich nie so weit gekommen. Ich besitze sehr viele nützliche Informationen. Ich werde dir bei einigen Aufgaben helfen. Zunächst einmal möchte ich dir etwas über ein typisches Java-Programm erzählen.“

„Ich höre zu.“

„Tatsache Nummer eins. Ein Java-Programm besteht aus Klassen. Jede Klasse wird in einer einzelnen Datei gespeichert, deren Name dem Klassennamen entspricht. Die Dateierweiterung ist java.“

„Ein Programm besteht also aus einer Reihe von Dateien mit der Dateierweiterung ‚java‘, und jede Datei enthält nur den Code für eine Klasse, richtig?

„Ja, das stimmt genau, Amigo. Wenn eine Datei den Namen MeineKatze.java trägt, enthält sie die Klasse MeineKatze.“

„Tatsache Nummer zwei. Wenn es viele Klassendateien gibt, gruppieren wir sie in Ordnern und Unterordnern. Außerdem werden Klassen zu Paketen und Unterpaketen (Package, Sub-Package) gruppiert. Die Namen der Pakete und Unterpakete müssen im Code der Klasse angegeben werden und mit den Namen der Ordner und Unterordner auf dem Laufwerk übereinstimmen.

„Wir haben also einerseits Dateien, die in Ordnern gespeichert werden, und andererseits Klassen, die in Paketen gespeichert werden. Der Name einer Klasse muss außerdem mit dem Namen der Datei übereinstimmen, in der die Klasse beschrieben wird. Der Name des Pakets entspricht dem Namen des Ordners, in dem die Klasse gespeichert wird.“

„Kannst du mir das noch genauer beschreiben?“

„Die Namen der verschachtelten Pakete werden durch Punkte gegliedert, fast wie URLs.“

„Nehmen wir einmal an, du hast eine Klasse mit dem Namen Katze, die in einem Paket tiere.haustiere gespeichert ist. Das bedeutet:

Auf der Festplatte gibt es einen Ordner (den nennen wir src), in dem alle Projektdateien gespeichert werden.

Dieser enthält einen Ordner namens tiere, und dieser wiederum einen Unterordner namens haustiere.

Der Ordner haustiere enthält eine Datei Katze.java, in der wiederum der Code für die Klasse Katze gespeichert ist.“

„Ich weiß nicht, ob ich das schon verstanden habe.“

„Schau mal. Die Struktur der Klassen und Pakete entspricht der Struktur von Ordnern und Dateien auf dem Laufwerk. Wenn wir eine Datei namens Haus.java haben, die im Ordner /com/haeuser gespeichert ist, dann gibt es eine Klasse namens Haus, die im Paket com.haeuser gespeichert ist."

„Alles klar.“

„Das Ganze scheint dir ja recht leicht zu fallen. Schau auf den Bildschirm. Dies ist der Code für eine kleine Klasse. Ich habe alle wichtigen Stellen gekennzeichnet:“

        PACKAGE NAME
package com.futujava.lesson2;
import java.io.IOException;
/**
 * User: General
 * Date: 12/21/12
 * Time: 11:59
 */
             CLASS NAME
public class Task1
{
                                                              
   private static String TEXT = "Kiss my metal rear actuator";⎥ CLASS VARIABLE
                                                              
                                                                
   public static void main(String[] args) throws IOException    
   {                                                            
      SCREEN OUTPUT                    SINGLE-LINE COMMENT      
      System.out.println(TEXT); //Display a single string  
        MULTILINE COMMENT                                       
      /*                                                        
        This is a multiline comment.                            
        The code below will display three identical strings.    ⎥ main() METHOD
       */                                                       
      VARIABLE DECLARATION                                      
      String s = "Ho-ho-ho!";                                   
      METHOD CALL                                               
      printTextMoreTimes(s, 3);                                 
   }                                                            
                                                                
                                          METHOD PARAMETERS   
   public static void printTextMoreTimes(String s, int count) ⎥ METHOD SIGNATURE
                                                            
                                                                
   {                                                            
      LOOP                                                      
      for (int i = 0; i < count; i++)                           
      LOOP BODY                                                 ⎥ METHOD BODY/CODE
      {                                                         
         System.out.println(s);                                 
      }                                                         
   }                                                            

}

„Na schön, dafür, dass ich es zum ersten Mal sehe, ist es schon einigermaßen klar.“

„Gut! Mehr ist gar nicht nötig. Du musst nur versuchen, überhaupt etwas zu verstehen. Ganz verstehen wirst du es erst mit der Zeit. So, jetzt muss ich ein Nickerchen machen. Jemand anders wird deine Ausbildung fortsetzen.“