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.
public class start {
/**
* @param args
*/
public static void main(String[] args) {
zufallsgenerator zufi = new zufallsgenerator();
zufallsgenerator zufi2 = new zufallsgenerator();
int i = zufi.randomize();
System.out.println("Das Ergebnis der Zufallsbestimmung lautet: " + i);
int i2 = zufi2.randomize();
System.out.println("Das Ergebnis der erneuten Zufallsbestimmung lautet: " + i2);
System.out.println("Dies ist das Ende der Start-Klasse!");
}
}
und
Java:
import java.util.*;
public class zufallsgenerator {
public static int randomize() {
Random rand = new Random();
System.out.print("Bitte geben Sie eine Zahl ein und bestätigen Sie mit ENTER:");
Scanner scanner = new Scanner(System.in);
System.out.print(scanner.nextInt());
int zuf = rand.nextInt(scanner.nextInt());
return zuf;
}
}
Eigentlich ist es so gedacht, dass der Benutzer eine Zahl eingeben soll und danach jeweils die Routine für die Zufallszahlberechnung erfolgt... diese dann entsprechend ausgegeben wird... aber ich werde 2 x pro Durchlauf gefragt, was ich eingeben möchte...
Es liegt an:
[JAVA=8] System.out.print(scanner.nextInt());
int zuf = rand.nextInt(scanner.nextInt());
//sollte wie folgt lauten:
int zuf = rand.nextInt(scanner.nextInt());
System.out.print(zuf);
[/code]
Generelle Hinweise:
- Namensconvention beachten: DasIstEineKlasse
- noch mal nachlesen, was static bedeutet
Was ich meine ist: 2 verschiedene Instanzen zu erstellen und über diese Instanzen eine statische Methode aufrufen macht kein Sinn. Entweder solltest du die Methode nicht als statisch deklarieren, oder über
da geb ich dir recht... hab ich nicht ganz mitgedacht. Statische Methoden kann ich direkt (wie ich es auch gemacht habe) aufrufen.
Wie würde dass denn aussehen, wenn ich das nicht mit static randomize() machen möchte.
Dann bräuchte ich doch einen Konstruktor namens zufallsgenerator(), der ebenfalls ein int zurückliefert.
Dann könnete ich new zufallsgenerator() aufrufen und es würde auch durchlaufen, oder?
Vermutlich habe ich aber grad wieder ein Denkfehler drin... dieses mit Objekten denken... macht mir noch Probleme... bin aber grad am Java-Insel-Buch dran... in der Hoffnung, dass mir das irgendwie erklärt.
mit dem static habe ich die Methode so zur Verfügung gestellt, dass ich das Objekt zufallsgenerator gar nicht erst hätte erstellen müssen via new. Also reicht auch klassenname.methode also in diesem fall zufallsgenerator.randomize()
somit kann ich statisch direkt drauf zugreifen...
Wenn ich das nicht mache, dann muss ich logischerweise das Objekt erzeugen, und über das Objekt die eigene Methode starten.