Hallo zusammen,
ich habe folgende aufgabe versucht zu lösen. Nun möchte ich aber gerne eure meinung dazu hören, ob ich es richtig gemacht habe, da ich meine java kenntnisse verbessern möchte, bin ich dankbar für Kritik und für andere lösungsvorschlage. Ich hoffe dass ich die Aufgabe richtig verstandan, den ich weiss nicht wo ich den Math.round() benutzen soll. Unten findet ihr die Aufgabe und meine lösung.
Aufgabe: Zufallszahl (Statische Attribute und Methoden)
Schreiben Sie eine Klasse Zufallszahl mit folgenden Eigenschaften:
Klasse Zufallszahl
ich habe folgende aufgabe versucht zu lösen. Nun möchte ich aber gerne eure meinung dazu hören, ob ich es richtig gemacht habe, da ich meine java kenntnisse verbessern möchte, bin ich dankbar für Kritik und für andere lösungsvorschlage. Ich hoffe dass ich die Aufgabe richtig verstandan, den ich weiss nicht wo ich den Math.round() benutzen soll. Unten findet ihr die Aufgabe und meine lösung.
Aufgabe: Zufallszahl (Statische Attribute und Methoden)
Schreiben Sie eine Klasse Zufallszahl mit folgenden Eigenschaften:
– Jedes neu erzeugte Objekt dieser Klasse erhält eine eindeutige fortlaufende Nummer und berechnet bei der Initialisierung automatisch eine Zufallszahl zwischen 0 (einschließlich) und 100 (ausschließlich).
Hinweis: Sie können die Methoden Math.random() zur Erzeugung der Zufallszahl und Math.round() zur Rundung verwenden. Die Beschreibung der Methoden finden Sie in der Java-API-Spezifikation.
– Sowohl die fortlaufende Nummer als auch die berechnete Zufallszahl sollen anschließend nicht mehr verändert werden können. Die Werte sollen aber über entsprechende Methoden abgefragt werden können.
– Es soll es weiterhin möglich sein, die Gesamtzahl der erzeugten Zufallszahlen sowie das Zufallszahl-Objekt, das die höchste Zufallszahl speichert, abzufragen.
Schreiben Sie ein Hauptprogramm, das mehrere Zufallszahlen erzeugt und anschließend die Zufallszahlen, die Anzahl der erzeugten Zufallszahlen und die größte erzeugte Zufallszahl ausgibt.Hinweis: Sie können die Methoden Math.random() zur Erzeugung der Zufallszahl und Math.round() zur Rundung verwenden. Die Beschreibung der Methoden finden Sie in der Java-API-Spezifikation.
– Sowohl die fortlaufende Nummer als auch die berechnete Zufallszahl sollen anschließend nicht mehr verändert werden können. Die Werte sollen aber über entsprechende Methoden abgefragt werden können.
– Es soll es weiterhin möglich sein, die Gesamtzahl der erzeugten Zufallszahlen sowie das Zufallszahl-Objekt, das die höchste Zufallszahl speichert, abzufragen.
Klasse Zufallszahl
Java:
package ubungsblatt;
import java.util.Random;
public class Zufallszahl {
public final int nummer;
public final int randomNumber;
private static int count;
public Zufallszahl(int nummer) {
count++;
this.nummer = nummer;
Random random = new Random();
int randomNumber = random.nextInt(100);
this.randomNumber = randomNumber;
}
public int getNummer() {
return nummer;
}
public int getRandomNumber() {
return randomNumber;
}
public static int getCount() {
return count;
}
public static int groesteZahl(Zufallszahl... params) {
int max = 0;
for (Zufallszahl o : params) {
if (max < o.getRandomNumber()) {
max = o.getRandomNumber();
}
}
return max;
}
public static Zufallszahl groesteZufallsObjekt(int max, Zufallszahl... params) {
Zufallszahl p = null;
for (Zufallszahl o : params) {
if (max == o.getRandomNumber()) {
p = o;
}
}
return p;
}
public static void main(String[] args) {
Zufallszahl z = null;
int max = 0;
Zufallszahl z1 = new Zufallszahl(18823678);
Zufallszahl z2 = new Zufallszahl(74387473);
Zufallszahl z3 = new Zufallszahl(672);
Zufallszahl z4 = new Zufallszahl(4938872);
Zufallszahl z5 = new Zufallszahl(827266600);
System.out.println("Zufalszahl:\t" + z1.getRandomNumber());
System.out.println("Zufalszahl:\t" + z2.getRandomNumber());
System.out.println("Zufalszahl:\t" + z3.getRandomNumber());
System.out.println("Zufalszahl:\t" + z4.getRandomNumber());
System.out.println("Zufalszahl:\t" + z5.getRandomNumber());
System.out.println();
System.out.println("Zufalszahl:\t" + z1.getNummer());
System.out.println("Zufalszahl:\t" + z2.getNummer());
System.out.println("Zufalszahl:\t" + z3.getNummer());
System.out.println("Zufalszahl:\t" + z4.getNummer());
System.out.println("Zufalszahl:\t" + z5.getNummer());
System.out.println();
System.out.println("Anzahl der erzeugten objecte:\t" + getCount());
max = groesteZahl(z1, z2, z3, z4, z5);
System.out.println("Grösste Zufallszahl:\t" + max);
z = groesteZufallsObjekt(max, z1, z2, z3, z4, z5);
System.out.println("Nummer des Objects mit dem grössten Zufallszahl:\t" + z.getNummer());
}
}