Skip to main content

So kannst du dein Java Programm mit der main Methode ausführen


Java Programm starten

Auf zum ersten Java Programm.

Vielleicht fragst du dich jetzt gerade:
Na, was haben wir denn bisher gemacht?
War das etwa kein Java Programm?

Wir haben bisher nur eine Klasse „Human“ für ein zuküntfiges Mensch-Objekt erstellt.

Diesem Objekt haben wir eine Instanzvariable, namens size (Größe) zugeordnet.

Und wir haben eine Instanzmethode, namens grow (wachsen) geschrieben.

Wir haben bisher noch kein ausführbares Java Programm entwickelt.

Das soll sich jetzt ändern.

Um ein irgendein Java Programm auszuführen, musst du in deiner Klasse eine sogenannte main Methode implementieren.

Und diese sieht so aus:


public class Human {
int size=156;//size in centimeter


void grow(int growthRate){
size=size+growthRate;
}
public static void main (String [] args){

}
}

Diese Methode musst du dir einfach merken.

Denn diese brauchst du bei jedem Programmstart.

Diese Methode signalisiert dem Compiler. Hier geht es los.

Untersuchen wir kurz die Methode.


Java Programm main Methode public

Die Methode beginnt mit dem Keywort public.

Public bedeutet, dass diese Methode öffentlich ist.

Was heißt das?

Diese Methode kann aus allen Klassen innerhalb deines Projektes aufgerufen werden.

Angenommen du implementierst neben der Menschen-Klasse noch eine Tierklasse.

Public bedeutet, dass du in der Tierklasse auf diese Methode zugreifen kannst, obwohl diese zur Zeit in der Menschenklasse steht.

Das zweite Keywort static bedeutet: Es handelt sich um keine Instanzmethode.

Diese Methode hat nichts aber auch gar nichts mit der Menschenklasse zu tun.

Außer, dass diese Methode zufällig gerade in dieser steht.


Static bedeutet, dass es sich nicht um eine Instanzmethode handelt

Static bedeutet, dass es sich nicht um eine Instanzmethode handelt



Das Keyword void kennst du schon. Es bedeutet, dass diese Methode keinen Rückgabewert erfordert.

Dann folgt der Methodennamen main.

Und jetzt die Parameterliste. Die Methode erwartet einen String Parameter, namens args.
Wie auch Integer ist String ein Datentyp.


String ist ein Datentpy. Du kennst schon den Datentyp Integer aus der Instanzmethode und der Variablen

String ist ein Datentyp. Du kennst schon den Datentyp Integer aus der Instanzmethode und der Variablen



Aber hinter diesem Datentyp String stehen noch diese beiden Klammern.

Diese symbolisieren, dass hier ein sogenanntes Array übergeben wird.

Das bedeutet: Die Methode kann nicht nur einen Parameter entgegen nehmen, sondern mehrere.

Den Namen des Datentypen, „args“, kannst du sogar umschreiben.
Du kannst ihn „argumente“ ,“datenmenge“ oder wie auch immer nennen.

Dann kommt der Methodenrumpf. Das erkennst du an der öffnenden Klammer.

Und in diesem Rumpf wird jetzt die Programmlogik implementiert.

Da bis jetzt noch nichts im Rumpf steht, würde rein gar nichts passieren.

Aber Probieren geht über Studieren.

Klicke einfach oben auf den Button „Run“ und dein Java Programm wird ausgeführt.


Klicke auf Run und das Programm wird ausgeführt. Es kann sein, dass Eclipse dich noch auffordert zu speichern. Dann bestätige einfach mit Okay.

Klicke auf Run und das Programm wird ausgeführt. Es kann sein, dass Eclipse dich noch auffordert zu speichern. Dann bestätige einfach mit Okay.



Und……

Es passiert nichts.

Klar, es müssen noch Anweisungen in die Methode.

Denn wichtig ist die Tatsache, dass diese Methode lediglich das Programm startet.

Mehr tut sie nicht.

Erst die Anweisungen in der Methode sorgen dafür, dass irgendetwas Wichtiges passiert.

Und jetzt packen wir mal so eine Anweisung in die Main-Methode.

Hier mal gleich der Code:


public class Human {
int size=156;//size in centimeter


void grow(int growthRate){
size=size+growthRate;
}
public static void main (String [] args){
System.out.println();
}
}

Achte auf die richtige Klammerung der Klasse.
Achte auf die richtige Klammerung der beiden Methoden.
Und achte auf das Semikolon nach der Anweisung.

Die Anweisung System.out.println() führt dazu, dass etwas auf der Konsole ausgegeben wird.

Nimm diese Anweisung bitte erst einmal so hin.
Am besten, du kopierst sie dir.

Noch besser du lernst diese auswendig.

Ja, das meine ich erst. Denn diese Anweisung ist wirklich richtig wichtig. Dazu später mehr.

Schreibe irgendetwas in die Klammer der Println() Anweisung.
Achte darauf, dass du den Wert in der Klammer in Anführungsstriche setzt.


public class Human {
int size=156;//size in centimeter


void grow(int growthRate){
size=size+growthRate;
}
public static void main (String [] args){
System.out.println("das ist ein Testlauf");
}
}

Danach klicke oben auf den Button „Run“.

Der Text in der Klammer wird jetzt auf der Konsole ausgegeben.

Die Konsole befindet sich unter deinem Editor. Falls sie dort nicht sein sollte, kannst du hier nachlesen, wie du dies änderst.


Auf der Konsole wird jetzt der Text ausgegeben

Auf der Konsole wird jetzt der Text ausgegeben



Du siehst, dass du irgendetwas in die Klammer schreiben kannst.
Das hat nichts mit unserem Mensch-Objekt zu tun.
Du kannst willkürlich wählen, was die Konsole zurück gibt.

Das liegt einfach daran, dass es eine Klassenmethode (Keywort: static) und keine Instanzmethode ist.

Und weil diese Methode mal so gar nichts mit unserem Menschen und mit diesem Objekt zu tun hat, solltest du diese auch nicht in dieser Klasse halten.

Warum nicht?

  • Es ist viel übersichtlicher diese separat zu führen.
  • So kannst du diese bequem über den Package Explorer wählen und ausführen.
  • Du musst dann nicht wissen: „Wo war nochmal meine Main Methode“
  • Die Main Methode ist statisch. Sie hat somit nichts mit dem Objekt zu tun. Statische Methoden sollten generell in separaten Klassen stehen.

Also lagern wir die Main Methode aus.

Lege eine neue Klasse an und diese Klasse nennst du „ProgrammStart“ oder „HumanStart“.

Wichtig ist, dass du auf den ersten Blick siehst: „Ah ja da ist meine Startmethode“

Beim Anlegen der Klasse siehst du schon, dass du die main Methode gleich dazu bekommst.

Markiere dazu das Optionsfeld und die Main Methode wird automatisch implementiert.


Markiere den Haken und Eclipse implementiert für dich die main Methode

Setze den Haken und Eclipse implementiert für dich die main Methode



Geht doch fix, oder?

Falls du die main Methode nachträglich in eine Klasse einfügen willst, kannst du entweder den Code abschreiben oder schreibst main und drückst die Tastenkombination: Str+Leertaste.

In der Liste kannst du die main Methode einfach auswählen und Eclipse implementiert diese.

Oder schreibe main und drücke die Tastenkombination Steuerung+Leertaste

Oder schreibe main und drücke die Tastenkombination Steuerung+Leertaste


Ging doch auch fix oder?

Jetzt fehlt noch die Anweisung innerhalb des Methodenrumpfes.

Also wieder die Println() Anweisung hinein und erneut starten.

Ja du solltest die Anweisung System.out.println() auswendig lernen. 🙂


public class ProgrammStart{
public static void main (String [] args){
System.out.println("das ist ein Testlauf");
}
}

Wie gehabt:
Alles was du jetzt zwischen die Klammern schreibst, wird ausgegeben.

Wenn du jetzt das Programm ausführst erscheint wiederum deine Konsolen-Ausgabe.

Und weil die main-Methode und die System.out.println-Anweisung so ein starkes Team sind, brauchst du diese auch zum Testen deines Java Programmes

Denn immer wenn du eine neue Methode schreibst, testest du diese.

Und du testest diese per Konsolen-Ausgabe.


Zusammenfassung:

  • Willst du ein Java Programm ausführen, brauchst du an irgendeiner Stelle die main Methode.
  • Die main Methode ist eine Klassenmethode. Dies erkennst du am Keyword static.
  • Da es eine Klassenmethode ist, hat sie nichts mit dem Objekt zu tun.
    Daher solltest du die main Methode in eine separate Klasse auslagern.

Im nächsten Beitrag zeige ich dir endlich, wie du ein Menschobjekt erzeugen kannst.
Bevor du jetzt zum nächsten Beitrag wechselst …. Denke an deine Kontrollfragen

Na, welche Kontrollfragen hast du zu diesem Artikel.
Schreib mir diese unter diesem Beitrag.


Ähnliche Beiträge

So lassen sich aus Java Klassen Instanzen erstellen

Java Klassen Instanzen erstellen

Lass uns jetzt aus den Java Klassen heraus Objekte anlegen. Im Einführungsbeispiel hast du bereits gelernt, wie du: Instanzvariablen bzw. Attribute anlegst Wie du aus einer normalen Java Klasse eine Programmstart Klasse machst In diesem Artikel erfährst du: Was Objekte bzw. Instanzen sind. Wie sich Objekte zusammensetzen. Wo und wie du Instanzen aus Java Klassen […]

Achte bei Java Methoden stets auf die Wertübergabe

Java Methoden Wertübergabe

Ich lege gleich los…. Schau dir diesen Code einmal an. Welche Zahl wird wohl auf der Bildschirmanzeige zurückgegeben? public class MethodenWertUebergabe { static int verdoppele (int i){ i=i*2; return i; } public static void main(String[] args) { int i = 2; verdoppele(i); System.out.println(i); } }

Sicherer Schleifendurchlauf mit Do while Schleife

Java Do While Schleife

Es ist doch eigentlich so: Immer wenn du die Anzahl der Schleifendurchläufe nicht kennst, nutzt du in deinen Java Programmen while Schleifen. Doch Java bietet dir neben der While Schleife einen weiteren Schleifentyp an. Diese nennt sich do while Schleife. Was kann die? Eigentlich genau das Gleiche, wie die while Schleife. Mit einem kleinen aber […]

Nutze die richtigen Methoden zum Java Lernen

Java lernen Methoden

Ich lernte die Java Programmierung auf die klassische Art. Ich kaufte mir das erste Buch und los ging es. „Jetzt wirst du Java lernen“ – sagte ich zu mir. Ich war relativ schnell ziemlich frustriert, denn irgendwie fehlten mir ein paar Zusammenhänge. Kennst du das? Du hast ein Wissensfetzen und noch einen. Aber das Wichtigste. […]

Java Vererbung findet auch zwischen Einkaufstüten und Polizeiautos statt

Java Vererbung

„Manchmal findet Java Vererbung auch zwischen Einkaufstüten und Polizeiautos statt“ Irrer Titel, oder? Aber mal Hand aufs Herz. Was haben eigentlich eine Einkaufstüte und ein Polizeiwagen gemeinsam? Ich verrate dir etwas: Du kannst die Verbindung nicht erkennen, denn ich habe dir nicht alles verraten. Es fehlt noch ein wichtiger Aspekt – eine Verbindung zwischen beiden. […]

Polymorphie bringt Vorteile für Java Arrays

Java Polymorphie Arrays

Wenn Java Arrays, Schubladen oder Container sein sollen… Dann wäre der Gebrauch einer solchen Schublade ziemlich einseitig und festgefahren. Denn in jedes Array passen zwar mehrere Daten – aber immer nur vom gleichen Datentyp. Immer gleicher Datentyp? Also eine Schublade nur für Socken, Unterwäsche und der ganze andere Kram passt dann eben nicht hinein. Um […]

Java Duales Zahlensystem – Binäre Zahlen in Java umwandeln

Java Dual System

Das duale Zahlensystem hat viele Bezeichnungen. Oft wird auch es Dualsystem oder Binärsystem genannt. Es besteht aber immer aus 2 Zahlen. Man verwendet oft die Zahlen 0 und 1. Es können aber auch sämtliche anderen Zahlenpaare sein. Zum Beispiel 7 und 175 sind für sich genommen, auch ein normales Zahlenpaar und somit ein Dualsystem. Mit […]

So kannst du Eclipse installieren

Eclipse installieren

Das Schöne an Eclipse ist, es läuft auf sämtlichen Betriebssystemen. Eclipse wird einfach auf der Webseite des Herstellers herunter geladen und kann dann installiert werden. Dabei stehen dir verschiedene Versionen zur Verfügung.

Java Strings landen im String Constant Pool

Java-Strings-Pool

Du kennst das. Es ist abends. Du sitzt gemütlich vor dem Fernseher. Das Smartphone bimmelt. Kein Anruf. Nein – Eine Nachricht. Du liest die Nachricht sofort und antwortest darauf. Minuten später bekommst du die nächste Nachricht. Und auch auf diese antwortest du. Im Laufe des Abends entsteht daraus eine nette kleine Konversation. Und eh du […]

Das Java Vererbung Konzept in einem Rollenspiel

Java ist eine objektorientierte Programmiersprache. Und das bedeutet nicht nur, dass du Objekte einer Java Klasse erzeugen kannst. Es bedeutet auch, dass Java Klassen von anderen Klassen erben können. Wieso das Ganze? Stell dir einmal ein Rollenspiel vor. Wie würdest du ein Rollenspiel entwerfen? In einem Rollenspiel gibt es magische Gegenstände. Zauberringe, Zauberstäbe, welche bei […]