Hallo!
Ich hab jetzt zum ersten mal mit einer abstract class programmiert und wollte fragen, ob ich das auch sinnvoll umgesetzt habe:
Ein "Bernoulli-Experiment" ist auch ein "Zufallsexperiment". Es gibt aber noch mehr Zufallsexperimente. Nun sollten die alle eine Funktion starten() haben, wie die abstrakte Klasse sie auch hat. sie unterscheiden sich nur durch ihre Ergebnismenge (ob das nun stimmt oder nicht ist jetzt egal).
Bin interessiert, ob das vielleicht total unsauber programmiert ist oder so 😉
Ich hab jetzt zum ersten mal mit einer abstract class programmiert und wollte fragen, ob ich das auch sinnvoll umgesetzt habe:
Ein "Bernoulli-Experiment" ist auch ein "Zufallsexperiment". Es gibt aber noch mehr Zufallsexperimente. Nun sollten die alle eine Funktion starten() haben, wie die abstrakte Klasse sie auch hat. sie unterscheiden sich nur durch ihre Ergebnismenge (ob das nun stimmt oder nicht ist jetzt egal).
Code:
import java.util.Random;
public abstract class Zufallsexperiment
{
protected Object[] ergebnisMenge;
protected Object starten()
{
ergebnisMengeSetzen();
Random ran = new Random();
try
{
int randomIndex = ran.nextInt(anzahlElemente());
return ergebnisMenge[randomIndex];
}
catch (NullPointerException e)
{
System.err.println(e + " ergebnisMenge not set properly");
return null;
}
}
private int anzahlElemente()
{
return ergebnisMenge.length;
}
protected abstract void ergebnisMengeSetzen();
}
Code:
public class Bernoulli_Experiment extends Zufallsexperiment
{
@Override
protected void ergebnisMengeSetzen()
{
ergebnisMenge = new Object[3];
ergebnisMenge[0] = "Hans";
ergebnisMenge[1] = "Peter";
ergebnisMenge[2] = "Birkner";
}
protected Bernoulli_Experiment()
{
super();
}
}
Bin interessiert, ob das vielleicht total unsauber programmiert ist oder so 😉