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.
OOPWie kann ich diesen Code 'Objektorientiert machen' ?
Hab grad ein kleines textbasiertes Spiel programmiert und ich würde gerne wissen wie der Code aussehen müsste, wenn es objektorientiert wäre. Ich verstehe Objektorientierung nämlich nicht richtig (bin Anfänger).
Ich hab alles in der Klasse 'Applikation', sind auch nicht sonderlich viele Zeilen. Es kann sein, dass sich das bei diesem Programm nicht lohnt objektorientiert zu programmieren, aber ich möchte einfach verstehen wie es geht.
Java:
public class Applikation {
public static void main(String[] args) {
System.out.println("Geben sie eine zahl zwischen 0 und 9 ein: ");
while(true){
double zufall = (int) ((Math.random()) * 10);
int eingabe = new java.util.Scanner(System.in).nextInt();
if(eingabe == zufall){
System.out.println("Richtig, es ist: " + zufall);
break;
} else {
System.out.println("Leider falsch, es ist. " + zufall);
System.out.println("Versuchen sie es erneut.");
}
}
}
}
Im Prinzip bringt es tatsächlich keinen praktischen Nutzen das object orientiert zu machen aber es ist eigentlich gar kein so schlechtes Beispiel um sich das Prinzip OOP zu verdeutlichen.
Im OOP geht es ja darum Objekte zu bilden. Man muss sich also überlegen was für objecte habe ich eigentlich in meiner Software und wie bilde ich diese ab. Bei den meisten Tutorials werden hier halt Autos oder Personen verwendet die dann bestimme Attribute haben wie Räder oder Name, Alter etc. und bestimmte Eigenschaften wie Spritverbrauch....
In deinem Fall gibt es sowas nicht, man könnte aber deine Zahl als ein object betrachten. Diese Zahl hat ein Attribut nämlich ihren Wert. Weiterhinbraucht diese Zahl drei Eigenschaften. Die erste wäre, dass ihr Wert per Zufall bestimmt wird, die zweite, dass ihr Wert durch den User zugewiesen wird und die dritte wäre, dass der Wert mit dem Wert einer anderen zahl verglichen wird.
Das ganze könnte dann etwa so aussehen (Achtung das ist nur Pseudo Code)
Java:
Class meinSpiel
{
main()
{
Zahl zufallsZahl = new Zahl();
ZufallsZahl.zufall();
while()
{
Zahl eingegebeneZahl = new Zahl();
eingegebeneZahl.usereingabe();
if(eingegebeneZahl.vergleiche(zfallsZahl)==true)
{
print stimmt
break;
}
else
{
print stimmt nicht
}
}
}
}
class Zahl
{
private int wert;
public int wert()
{
return this.wert;
}
public void zufall()
{
wert = randow();
}
public void usereingabe()
{
wert = scanner();
}
pulic boolean vergleiche(Zahl)
{
if(this.wert == Zahl.wert())
return true;
return false;
}
}