Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
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();
}}
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();
}
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
@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
muss innerhalb einer Methode stattfinden.
Im Beispielcode wird das eben in der der main methode gemacht, du hast jedoch einfach die Methode drumherum weggelassen
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