Der Aufbau des Quelltextes

Kommentare

Der Quelltext ist ein geschriebenes Programm, welches vom Compiler auf Fehler überprüft wird und anschließend übersetzt wird.

Um den Quelltext leserlicher zu machen kann man Kommentare einfügen. Dafür gibt es zwei verschiedene Möglichkeiten:

  • den Kommentarblock, der mit /** beginnt, in jeder Zeile am Anfang mit einem * beginnt und mit */ geschlossen wird. Man benutzt ihn häufig, um längere Erläuterungen am Anfang oder zwischen den Methoden zu machen.

Beispiel:

/**
* Die Klasse Ticketautomat modelliert einfache Ticketautomaten,
* die Tickets zu einem Einheitspreis herausgeben.
* Der Preis für die Tickets eines Automaten kann über den Konstruktor
* festgelegt werden.
*/
  • Die Kommentarzeile, die wie der Name schon sagt, nur in einer Zeile steht. Sie beginnt mit // , geschlossen werden muss sie nicht. Sie wird häufig benutzt, um z.B. Variablen zu erklären oder einzelne Zeilen in einer Methode.

Beispiel:

{
private int preis;           // Der Preis eines Tickets dieses Automaten.
private int bisherGezahlt;   // Der Betrag, der bisher vom Automatenbenutzer eingeworfen wurde.
private int gesamtsumme;     // Die Geldsumme, die bisher von diesen Automaten eingenommen wurde.
}

Klassendefinition

Am Anfang jedes Quelltextes steht die Klassendefinition. Sie muss den gleichen Namen wie die abgespeicherte Datei haben.

Beispiel:

{
    public class Ticketautomat
    {
       ...
    }
}

Anschließend folgt eine geschweifte Klammer {, die am Ende des geschriebenen Quelltextes mit } geschlossen werden muss. Generell müssen alle Klammern die geöffnet wurden, wieder geschlossen werden, egal ob gescheift oder normal, denn sonst gibt es Fehlermeldungen vom Compiler!

Datenfelder

Als nächstes folgen die Datenfelder, in denen globale Variablen deklariert werden. Dazu wird als erstes der Definitionsbereich der Variable angegeben, dieser kann entweder public (auch von anderen Klassen aufrufbar) oder private (nur in dieser Klasse sichtbar) sein. Meistens sind diese Variablen private. Anschließend muss der Typ angegeben werden, von dem die Instanzvariable (anderer Begriff für Datenfeld) sein soll. Danach folgt der Variablenname. Bei elementaren Variablen muss dieser mit einem kleinen Buchstaben beginnen, bei Objektvariablen muss er mit einem Großbuchstaben anfagen. Zuletzt darf das Simikolon nicht vergessen werden, sonst gibt es Fehlermeldungen!

Beispiel:

{
 private int preis;           
 private int bisherGezahlt;   
 private int gesamtsumme;     
}

Konstruktor

Der Konstruktorname muss den gleichen Namen haben, wie der Dateiname und die Klassendefinition und muss mit einem Großbuchstaben beginnen. Der Konstruktor setzt das Objekt in einen gültigen Anfangszustand. Hier müssen den globalen Variablen aus den Dantenfeldern ihre Startwerte zugewiesen werden. Manche Variablentypen haben durch Java schon einen Anfangswert.

Um den Variablen einen Anfangswert zuzuweisen, kann man ihnen entweder einen festen Wert zuweisen oder ihnen durch eine Parameterabfrage einen veränderbaren Wert zuweisen. Hierzu muss ein Parameter im Kopf des Konstruktors definiert werden, der dann im Rumpf übergeben wird. Auch hierzu muss der Typ des Parameters angegeben werden, sowie ein Name. Wenn mehrere Parameter übergeben werden müssen, werden sie durch ein , getrennt. Der Parameter bekommt einen Wert, sobald ein Objekt erzeugt wurde. Dann wird der Benutzer nach einem Wert gefragt.

Beispiel:

{
   public Ticketautomat( int ticketpreis)
   {
     preis= ticketpreis;
     bisherGezahlt= 0;
     gesamtsumme = 0;
   }
}

Methoden

Bei den Methoden wird dazwischen unterschieden, ob sie nur etwas zurückliefern soll oder etwas verändern soll. Sie geben Auskunft darüber, was das Objekt kann oder macht. Sie bestehen aus einem Kopf und einem Rumpf.

Ähnlich wie bei den Datenfelden muss auch bei einer Methode angegeben werden, ob sie public oder private sein soll. Meistens sind sie aber public. Anschließend kommt ein Vermerk darauf, ob es sich um eine sondierende Methode oder um eine Verändernde methode handelt (mehr dazu bei den näheren Erklärungen) und dann der Methodenname. Dieser muss mit einem kleinen Buchstaben beginnen. Hinter dem Namen müssen noch zwei Klammern stehen, in denen ggf. lokale Variablen definiert werden können. Gibt es keine, bleiben die Klammern leer.

Verändernde Methode

Eine verändernde Methode ändert den Zustand eines Objektes, bzw. der Instanzvariablen. Steht in dem Kopf der Methode der Vermerk void, handelt es sich um eine verändernde Methode. Im Rumpf dieser Methoden findet man häufig neue Zuweisungen von lokalen Variablen, die den Wert von Instanzvariablen ändern. Außerdem gibt es doch häufig Schleifen, z.B. if-Schleifen oder while-Schleifen. Auch Ausgaben, die auf der Konsole erscheinen sollen, sind in den verändernden Methoden geschrieben.

Beispiel:

{
 public void geldEinwerfen(int betrag)    // void als Vermerk auf eine Veränderne Methode, int betrag als lokale Variable
 { 
   if ( betrag > 0)                       // if-Abfrage
     {
       bisherGezahlt += betrag;           // Zuweisung in der if-Abfrage
     }
    else
     {
       System.out.println("Bitte nur positive Beträge verwenden: " + betrag);  // Befehl um etwas auf der Konsole auszugeben
     }
 }
}

Sondierende Methode

Eine sondierende Methode gibt Auskunft übder den Zustand der Datenfelder und liefert diese Informationen zurück. Als Vermerk auf die sondierende Methode muss im Kopf der Methode der Typ stehen, der zurückgegeben werden soll, also der Typ des Datenfeldes. Die Klammern bleiben leer, denn es werden keine lokalen Variablen benötigt. In der sondierenden Methode wird nur der Befehl return verwendet. Dahinter wird der Name des Datenfeldes geschrieben, welche zurückgeliefert werden soll.

Beispiel:

{
  public int gibPreis()   // int als Vermerk auf eine sondierende Methode und als Typ der zurückgeliefert werden soll
  {
    return preis;         // die Variable preis (der Wert) wird zurückgeliefert
  }
}

Schülerbeitrag 2007/08

schule/if/ef/quelltext.txt · Zuletzt geändert: 2018/05/31 18:12 (Externe Bearbeitung)
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0