ja ja schon wieder einer mit einer public static void main(string[] args) Frage...

Sorry, dass ich nerven muss.
Aber ich hangel mich grad durch die oracle tutorials und nachgestellte Übung hat in meinem Hirnkasten folgende Frage generiert: Wieso kann public static void main(string[] args) in der Übung nicht anstelle in der Bicycle2 Klasse in der Bicycle Klasse stehe ohne dass es Fehler beim kompilieren gibt. Ich meine beide klassen haben doch keine return Anweisung und es könnte dem Kompiler doch egal sein wo er einsteigt.

Verflixt!

Code der funktioniert:

Java:
class Bicycle { 


    int cadence = 0;
    int speed = 0;
    int gear = 1;


    void changeCadence(int newValue) {
         cadence = newValue;
    }


    void changeGear(int newValue) {
         gear = newValue;
    }


    void speedUp(int increment) {
         speed = speed + increment;   
    }


    void applyBrakes(int decrement) {
         speed = speed - decrement;
    }


    void printStates() {
         System.out.println("cadence:" +
             cadence + " speed:" + 
             speed + " gear:" + gear);
    }


}

class Bicycle2 { public static void main(String[] args) {
     // Create two different 
        // Bicycle objects
        Bicycle bike1 = new Bicycle();
        Bicycle bike2 = new Bicycle();


        // Invoke methods on 
        // those objects
        bike1.changeCadence(50);
        bike1.speedUp(10);
        bike1.changeGear(2);
        bike1.printStates();


        bike2.changeCadence(50);
        bike2.speedUp(10);
        bike2.changeGear(2);
        bike2.changeCadence(40);
        bike2.speedUp(10);
        bike2.changeGear(3);
        bike2.printStates();
    }}
 
Zuletzt bearbeitet von einem Moderator:

Flown

Administrator
Mitarbeiter
Klar geht das einfach die main in Bicycle schieben:

Java:
class Bicycle {

  int cadence = 0;
  int speed = 0;
  int gear = 1;

  void changeCadence(int newValue) {
    cadence = newValue;
  }

  void changeGear(int newValue) {
    gear = newValue;
  }

  void speedUp(int increment) {
    speed = speed + increment;
  }

  void applyBrakes(int decrement) {
    speed = speed - decrement;
  }

  void printStates() {
    System.out.println("cadence:"
            + cadence + " speed:"
            + speed + " gear:" + gear);
  }

  public static void main(String... args) {
    Bicycle bike1 = new Bicycle();
    Bicycle bike2 = new Bicycle();

        // Invoke methods on 
    // those objects
    bike1.changeCadence(50);
    bike1.speedUp(10);
    bike1.changeGear(2);
    bike1.printStates();

    bike2.changeCadence(50);
    bike2.speedUp(10);
    bike2.changeGear(2);
    bike2.changeCadence(40);
    bike2.speedUp(10);
    bike2.changeGear(3);
    bike2.printStates();
  }
}
 
Sorry @Flown , ja so würde es wohl gehen aber die Fraeg ist eigentlich wieso kann ich dass public static void main(String[] args) teil nicht wie folgt platzieren:


Java:
class Bicycle { public static void main(String[] args)  {


    int cadence = 0;
    int speed = 0;
    int gear = 1;


    void changeCadence(int newValue) {
         cadence = newValue;
    }


    void changeGear(int newValue) {
         gear = newValue;
    }


    void speedUp(int increment) {
         speed = speed + increment;   
    }


    void applyBrakes(int decrement) {
         speed = speed - decrement;
    }


    void printStates() {
         System.out.println("cadence:" +
             cadence + " speed:" + 
             speed + " gear:" + gear);
    }


}}

class Bicycle2 { 
     // Create two different 
        // Bicycle objects
        Bicycle bike1 = new Bicycle();
        Bicycle bike2 = new Bicycle();


        // Invoke methods on 
        // those objects
        bike1.changeCadence(50);
        bike1.speedUp(10);
        bike1.changeGear(2);
        bike1.printStates();


        bike2.changeCadence(50);
        bike2.speedUp(10);
        bike2.changeGear(2);
        bike2.changeCadence(40);
        bike2.speedUp(10);
        bike2.changeGear(3);
        bike2.printStates();
    }
 
Zuletzt bearbeitet von einem Moderator:

strußi

Top Contributor
bitte java -Tags benutzen (über erweitert) oder selber schreiben [J AVA][/ JAVA] (ohne leerzeichen)

so wie ich das sehe implementierst du methoden in der main die du dann später aufrust, zieh diese aus dem rumpf der main in den rumpf der klasse Bicycle
 

InfectedBytes

Top Contributor
Dein Problem ist, dass du Anweisungen außerhalb von MEthoden verwednen willst:
Java:
class Bicycle2 { 
// Create two different 
// Bicycle objects
Bicycle bike1 = new Bicycle();
Bicycle bike2 = new Bicycle();


// Invoke methods on 
// those objects
bike1.changeCadence(50);
bike1.speedUp(10);
bike1.changeGear(2);
bike1.printStates();


bike2.changeCadence(50);
bike2.speedUp(10);
bike2.changeGear(2);
bike2.changeCadence(40);
bike2.speedUp(10);
bike2.changeGear(3);
bike2.printStates();
}
Den Kram darfst du nur innerhalb von Methoden machen:
Java:
class Bicycle2 { 
// Create two different 
// Bicycle objects
Bicycle bike1 = new Bicycle();
Bicycle bike2 = new Bicycle();


public void xyz() {
  // Invoke methods on 
  // those objects
  bike1.changeCadence(50);
  bike1.speedUp(10);
  bike1.changeGear(2);
  bike1.printStates();


  bike2.changeCadence(50);
  bike2.speedUp(10);
  bike2.changeGear(2);
  bike2.changeCadence(40);
  bike2.speedUp(10);
  bike2.changeGear(3);
  bike2.printStates();
 }
}
 
Zuletzt bearbeitet:
@strusl :sorry fuer vergessen des java tags, dein vorschlag funktioniert bei mir leider nicht kannst du mir da vielleicht den code posten?
@InfectedBytes: das musst du oracle erzählen der code ( https://docs.oracle.com/javase/tutorial/java/concepts/class.html ) ist von ihren tutorial und die haben dass ohne public void gemacht.

Kann ich für mich jetzt zusammenfassen dass man in der main keine methoden implementieren darf? warum? argh
 
Zuletzt bearbeitet:

InfectedBytes

Top Contributor
Das public ist nicht das entscheidende.
Der ausführbare Code, wie z.b.
Java:
  bike1.changeCadence(50);
  bike1.speedUp(10);
  bike1.changeGear(2);
  bike1.printStates();
muss innerhalb einer Methode stattfinden.
Im Beispielcode wird das eben in der der main methode gemacht, du hast jedoch einfach die Methode drumherum weggelassen

Kann ich für mich jetzt zusammenfassen dass man in der main keine methoden implementieren darf? warum? argh
die main ist doch eine Methode. In welcher Klasse die Definiert wird ist egal.
Das Problem deines codes ist eben das was ich eben geschrieben hab
 
Zuletzt bearbeitet:
Ok danke leute! ich habe es dank euch geschnallt. Ist mein zweiter Java tag und ich muss sagen ich bin mal gespannt ob ich dass bis zur einschreibung auf dem kasten hab....also nochmal merci an euch
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Schon wieder double -.- Java Basics - Anfänger-Themen 4
L Und schon wieder :=( Java Basics - Anfänger-Themen 3
J Schon wieder Rekursionsproblem Java Basics - Anfänger-Themen 3
V Schon wieder ein kleines problem...dieses mal mit do-while loop Java Basics - Anfänger-Themen 9
C jar als Applet einbinden will schon wieder nicht Java Basics - Anfänger-Themen 7
T schon wieder ausführbare .jar-dateien Java Basics - Anfänger-Themen 2
D was ist denn nun schon wieder? Einfaches JSP. Java Basics - Anfänger-Themen 6
W Schon wieder Taschenrechner Java Basics - Anfänger-Themen 13
F Schon wieder replace Java Basics - Anfänger-Themen 7
L Schon wieder ClassLoader bzw. Classpath :-( Java Basics - Anfänger-Themen 3
S Schon wieder ein Problem - diesmal sortieren Java Basics - Anfänger-Themen 8
G Compiler hängt schon wieder Java Basics - Anfänger-Themen 14
_user_q Timer - ScheduledExecutorService wird schon vorher beendet Java Basics - Anfänger-Themen 5
berserkerdq2 Hashmap, wie prüfe ich ob ein Key schon existiert Java Basics - Anfänger-Themen 19
nbergmann eclipse schon mit "HalloWelt" unverständlich. Java Basics - Anfänger-Themen 4
Naxon89 Threads Android AysncTask => Überprüfen, ob ein Ergebniss schon vorliegt Java Basics - Anfänger-Themen 5
K Wie kontrolliere ich ob ich die Zahl in meinem Array schon hab? Java Basics - Anfänger-Themen 9
B Prüfen, ob es schon einen Termin gibt in einem Zeitraum Java Basics - Anfänger-Themen 5
M Suchfunktion schon bei Teilen des Wortes Java Basics - Anfänger-Themen 4
M Aus Datei auslesen und untersuchen ob diese Zeile schon vorhanden ist Java Basics - Anfänger-Themen 3
N kein Sound beim Öffnen der jar-Datei, in Eclipse schon Java Basics - Anfänger-Themen 1
TomatenBrot447 Mit toString eine Ausgabe liefern wie in einer schon implementierten Methode ? Java Basics - Anfänger-Themen 13
TomatenBrot447 Mit toString eine Ausgabe liefern wie in einer schon implementierten Methode ? Java Basics - Anfänger-Themen 1
I Hilfe beim löschen schon Buchstaben. Java Basics - Anfänger-Themen 4
N Dynamisch erzeugtes Label wird nicht angezeigt, TextField schon Java Basics - Anfänger-Themen 1
MrSnake Prüfen ob TitledPane schon besteht Java Basics - Anfänger-Themen 2
P Shape Zeichnen klappt nicht - einlesen der Breite/Höhe schon Java Basics - Anfänger-Themen 1
C Check ob eine HashMap schon existiert Java Basics - Anfänger-Themen 16
C OOP Erstellen eigener Objekte die es schon gibt "schlau"? Java Basics - Anfänger-Themen 3
M Ist die Hamcrest Bibliothek auch schon in Junit 4.11 verfügbar? Java Basics - Anfänger-Themen 1
V relativer Pfad geht nicht, absolut schon? Java Basics - Anfänger-Themen 3
S Threads Thread wenn extends schon vergeben Java Basics - Anfänger-Themen 8
H Prüfen, ob jpg image schon vorhanden ist, bevor es geladen wird Java Basics - Anfänger-Themen 13
K String kommt schon in Vector vor? Java Basics - Anfänger-Themen 36
S A* Path Algorithmus in Java schon vorhanden Java Basics - Anfänger-Themen 3
M In Netbeans kein Problem, im Terminal schon Java Basics - Anfänger-Themen 3
N leere JTextArea wird nicht angezeigt - TextArea aber schon? Java Basics - Anfänger-Themen 5
M Kein Sound in der .jar, davor schon Java Basics - Anfänger-Themen 6
Luk10 Serialisierung bei schon vorhandener Datei Java Basics - Anfänger-Themen 15
H "Adressbuch" erstellen - Problem schon bei Datumsüberprüfung Java Basics - Anfänger-Themen 9
A Aufruf einer externen schon laufenden Anwendung Java Basics - Anfänger-Themen 3
K kein Sound beim Öffnen der jar-Datei, in Eclipse schon Java Basics - Anfänger-Themen 2
G integer schon initalisiert Java Basics - Anfänger-Themen 11
L beim ersten compilen schon erste probleme Java Basics - Anfänger-Themen 8
A Fehler schon bei kleinigkeiten Java Basics - Anfänger-Themen 9
S kann man das kürzer schreiben? bzw gibts dafür schon was? Java Basics - Anfänger-Themen 6
G Schon die Installation nicht hinbekommen ? Java Basics - Anfänger-Themen 4
S ich stör schon widr wegen meine gui Java Basics - Anfänger-Themen 2
M imageicon aus jar (ja hab die suchfunktion schon benutzt :)) Java Basics - Anfänger-Themen 2
G Button schon gedrückt wenn "mouseOver" Java Basics - Anfänger-Themen 3
B schon beim einsteiger-beispiel durchgefallen. Java Basics - Anfänger-Themen 2
B schon mal mit JavaBeans Activation Framework gearbeitet? Java Basics - Anfänger-Themen 2
S Schon jetzt problem =(=( Java Basics - Anfänger-Themen 51
R Abfragen, ob schon ein Eintrag in der HashMap steht Java Basics - Anfänger-Themen 11
G wenn auch schon oft gefragt (Konstruktor , Instanzen , usw) Java Basics - Anfänger-Themen 6
DrahtEck Schleife soll wieder da anfangen wo ich es möchte ! Java Basics - Anfänger-Themen 17
G JTree speichern und wieder einlesen Java Basics - Anfänger-Themen 5
W In alten Code zurück- und dort wieder zurechtfinden? Java Basics - Anfänger-Themen 17
I Passwort in Datenbank speichern um später wieder auszulesen Java Basics - Anfänger-Themen 5
Temsky34 Wie bekomme ich dieses Java-Warning wieder weg? Java Basics - Anfänger-Themen 2
T j.u.Scanner(Sys.in).nextLine() wieder schließen? Java Basics - Anfänger-Themen 5
f3mys Objektwerte in Liste speichern und wieder abrufen Java Basics - Anfänger-Themen 23
O Text mit Regex trennen und wieder zusammenbauen Java Basics - Anfänger-Themen 5
Naxon89 Input/Output Ein PDF in einem BLOB umwandeln um ihn dann als PDF wieder anzuzeigen Java Basics - Anfänger-Themen 3
H JavaFX Hintergrundfarbe ändern, warten, Hintergrundfarbe wieder ändern Java Basics - Anfänger-Themen 34
MichelNeedhelp Brauche zu diesem Labyrinth ein Skript? Der Hamster soll im Urzeigersinn das ganze Labyrinth abgehen und wieder an seinem Ursprungsplatz sein. Java Basics - Anfänger-Themen 40
D Codeblöcke, die immer wieder im Programmverlauf benötigt werden Java Basics - Anfänger-Themen 5
TimoN11 Array -> Schleife wieder von vorne durchlaufen lassen Java Basics - Anfänger-Themen 1
JD_1998 Arrays einlesen, zwischenspeichern und wieder ausgeben Java Basics - Anfänger-Themen 8
M Regex Probleme (mal wieder) Java Basics - Anfänger-Themen 3
J Selektiertes Element von jComboBox zwischenspeichern und wieder einsetzen Java Basics - Anfänger-Themen 0
S Nutzereingabe splitten und in string array wieder ausgeben. Java Basics - Anfänger-Themen 1
I wieder mit einer Umwandelung habe ich Problem (diesmal von char Array zu char) Java Basics - Anfänger-Themen 1
N Wie kann ich einen String wieder zusammensetzen und ausgeben lassen? Java Basics - Anfänger-Themen 9
C Array-Eintrag wieder auf Null setzen Java Basics - Anfänger-Themen 3
W Verschachtelte Objekte wieder auspacken Java Basics - Anfänger-Themen 3
M Array immer wieder um ein Element erweitern Java Basics - Anfänger-Themen 6
CptK Methoden Event bei gedrückter Maustaste immer wieder ausführen Java Basics - Anfänger-Themen 1
CptK Klassen Event bei gedrückter Maus immer wieder mit Pause ausführen Java Basics - Anfänger-Themen 2
J Geld speichern und wieder auslesen Java Basics - Anfänger-Themen 10
M JTextField blitzt immer wieder nur auf Java Basics - Anfänger-Themen 12
CptK Datentypen Verdrehte Wörter wieder herstellen Java Basics - Anfänger-Themen 21
J Timer bauen, Main Methode immer wieder neu starten Java Basics - Anfänger-Themen 13
I Methoden Schleife immer wieder durchlaufen lassen Java Basics - Anfänger-Themen 15
F Immer wieder gleiche Zufallszahl? Java Basics - Anfänger-Themen 4
M Schleifenergebnis in selbiger wieder verwenden Java Basics - Anfänger-Themen 7
L Methoden Rekursion gibt alten Wert wieder Java Basics - Anfänger-Themen 37
L jar, class, java und wieder zurück Java Basics - Anfänger-Themen 8
M aus Fenster anderes Fenster öffnen und wieder umgekehrt Java Basics - Anfänger-Themen 5
J Fenster wieder unsichtbar machen Java Basics - Anfänger-Themen 2
J Auslesen/speichern und wieder einlesen Java Basics - Anfänger-Themen 7
S Sound stoppen und nach Pause wieder abspielen Java Basics - Anfänger-Themen 6
T while schleife starten , beeneden und wieder Starten Java Basics - Anfänger-Themen 8
I Zähler, der erst wieder zählt nachdem Pixel wieder andere Farbe hat Java Basics - Anfänger-Themen 2
B javax.ejb.Timer wieder starten? Java Basics - Anfänger-Themen 0
N Methode auslagern mal wieder Java Basics - Anfänger-Themen 8
F Inhalt einer Variable auswerten, die sich immer wieder ändert Java Basics - Anfänger-Themen 1
Bluedaishi for schleife um Dateien wieder zusammen zu fügen Java Basics - Anfänger-Themen 11
I SHA512 verschlüsseln und dann wieder auslesen? Java Basics - Anfänger-Themen 35
F Timer abbrechen und wieder starten Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben