Hallo, studiere Informatik im ersten Semster. Haben eine Aufgabe bekommen:
1. Würmer
Die Klasse Worm repräsentiert eine spezielle Art von mikroskopisch kleinen Würmern. Für diese Aufgabe sind zwei Eigenschaften von Würmern interessant:
das unveränderliche Geschlecht (weiblich oder männlich) und
die veränderliche Größe (ganzzahlig, positiv).
Definieren Sie die Klasse Worm mit den folgenden Methoden:
public Worm(boolean male)
Konstruktor für einen neuen männlichen (male = true) oder weiblichen (male = false) Wurm mit der Größe 1.
public boolean isMale()
Getter für das Geschlecht (Ergebnis true = männlich, false = weiblich).
public int getSize()
Getter für die Größe.
public Worm feed()
füttert diesen Wurm, der dabei um 1 wächst. Gibt diesen Wurm zurück.
public Worm hunger()
lässt diesen Wurm hungern, der dabei um 1 schrumpft. Die Mindestgröße ist 1. Auch wenn ein Wurm hungert, wird er nie kleiner als 1. Gibt diesen Wurm zurück.
public Worm split()
Dieser Wurm versucht einen neuen Wurm abzuspalten, der als Ergebnis zurück geliefert wird. Wenn dieser Wurm kleiner als 3 ist, ist er zu klein zum Teilen und verändert sich nicht. Der Rückgabewert ist in diesem Fall null. Der neue Wurm hat das gleiche Geschlecht und die halbe Größe (aufgerundet) wie dieser Wurm. Dieser Wurm schrumpft dabei um die Größe des neu abgespaltenen Wurms. Die Summe der Größen bleibt also gleich.
public Worm join(Worm other)
Dieser Wurm vereinigt sich mit dem anderen Wurm other und produziert einen neuen Wurm, der als Ergebnis zurückgegeben wird. (Es gilt other != null, kein Test nötig.) Wenn zwei Würmer das gleiche
Geschlecht oder die gleiche Größe haben, mögen sie sich nicht vereinigen. In diesem Fall ist das Ergebnis null. Andernfalls entsteht ein neuer Wurm der Größe 1 mit dem gleichen Geschlecht, wie der größere der Eltern-Würmer. Die Eltern-Würmer bleiben unverändert.
public Worm attack(Worm other)
Dieser Wurm greift den anderen Wurm other an. (Es gilt other != null, kein Test nötig.) Wenn beide Würmer männlich und unterschiedlich groß sind, dann schrumpft der kleinere Wurm auf Größe 1. Die andere wächst entsprechend an. Die Summe der Größen bleibt also gleich. Andernfalls geschieht nichts. Die Methode gibt diesen Wurm zurück.
public String toString()
Liefert eine Textdarstellung der Form: <Geschlecht>,<Größe> Beispiel für einen männlichen Wurm der Größe 5: true,5 Beispiel für einen weiblichen Wurm der Größe 20: false,20
public boolean equals(Object other)
Liefert genau dann true, wenn other ein Wurm mit denselben Attributen ist.
Schaut jetzt bei mir so aus:
public class Worm {
private boolean gender; // Geschlecht des Wurms
private int size; // Größe des Wurms
public Worm(boolean male) {
gender = male;
size = 1;
}
public Worm(boolean male, int size) {
gender = male;
this.size = size;
}
public boolean isMale() {
return this.gender;
}
public int getSize() {
return this.size;
}
public Worm feed() {
this.size++;
return this;
}
public Worm hunger() {
if (this.size != 1) {
this.size--;
}
return this;
}
public Worm split (){
if (this.size>3){
Worm other= new Worm(this.gender,Math.round(this.size/2));
size=(this.size-other.size);
return other;
}
else
return null;
}
public Worm join(Worm other) {
if (this.gender == other.gender || this.size == other.size){
return null;
}
else {
if (this.size < other.size){
Worm baby = new Worm(other.gender, size = 1);
return baby;
}
else{
Worm baby = new Worm(this.gender, size = 1);
return baby;
}
}
}
public Worm attack(Worm other) {
if (this.gender && other.gender && (this.size != other.size)){
if (this.size < other.size){
other.size= other.size + (this.size-1);
this.size = 1;
return this;
}
else{
this.size = this.size + (other.size-1);
other.size = 1;
return this;
}
}
else
return null;
}
public String toString() {
return Boolean.toString(gender) + "," + Integer.toString(size);
}
public boolean equals(Object other) {
if(!(other instanceof Worm)) // Frage ob other ein Wurm ist
return false;
Worm temp = (Worm)other; //Zuweisung, dass other nun der Wurm temp ist
if(other==null)
return false;
if(this.size != temp.size)
return false;
return true;
}
}
Meine Fragen:
Wenn ich das Programm im cmd aufrufen will, sagt es mir das ich eine Hauptklasse anlegen muss. Wo mache ich das denn? Brauche ich diese überhaupt?
Und zweitens:
Haben von unserem Dozent eine Testdatei bekommen um den Wurm zu testen.
Wie kann ich das denn machen.
Meine Datei heißt Worm.java und vom Dozenten haben wir einmal Junit-4.10.jar und WormTest.class.
Wie geb ich das im cmd ein?
LG und vielen Lieben Danke im vorraus.
1. Würmer
Die Klasse Worm repräsentiert eine spezielle Art von mikroskopisch kleinen Würmern. Für diese Aufgabe sind zwei Eigenschaften von Würmern interessant:
das unveränderliche Geschlecht (weiblich oder männlich) und
die veränderliche Größe (ganzzahlig, positiv).
Definieren Sie die Klasse Worm mit den folgenden Methoden:
public Worm(boolean male)
Konstruktor für einen neuen männlichen (male = true) oder weiblichen (male = false) Wurm mit der Größe 1.
public boolean isMale()
Getter für das Geschlecht (Ergebnis true = männlich, false = weiblich).
public int getSize()
Getter für die Größe.
public Worm feed()
füttert diesen Wurm, der dabei um 1 wächst. Gibt diesen Wurm zurück.
public Worm hunger()
lässt diesen Wurm hungern, der dabei um 1 schrumpft. Die Mindestgröße ist 1. Auch wenn ein Wurm hungert, wird er nie kleiner als 1. Gibt diesen Wurm zurück.
public Worm split()
Dieser Wurm versucht einen neuen Wurm abzuspalten, der als Ergebnis zurück geliefert wird. Wenn dieser Wurm kleiner als 3 ist, ist er zu klein zum Teilen und verändert sich nicht. Der Rückgabewert ist in diesem Fall null. Der neue Wurm hat das gleiche Geschlecht und die halbe Größe (aufgerundet) wie dieser Wurm. Dieser Wurm schrumpft dabei um die Größe des neu abgespaltenen Wurms. Die Summe der Größen bleibt also gleich.
public Worm join(Worm other)
Dieser Wurm vereinigt sich mit dem anderen Wurm other und produziert einen neuen Wurm, der als Ergebnis zurückgegeben wird. (Es gilt other != null, kein Test nötig.) Wenn zwei Würmer das gleiche
Geschlecht oder die gleiche Größe haben, mögen sie sich nicht vereinigen. In diesem Fall ist das Ergebnis null. Andernfalls entsteht ein neuer Wurm der Größe 1 mit dem gleichen Geschlecht, wie der größere der Eltern-Würmer. Die Eltern-Würmer bleiben unverändert.
public Worm attack(Worm other)
Dieser Wurm greift den anderen Wurm other an. (Es gilt other != null, kein Test nötig.) Wenn beide Würmer männlich und unterschiedlich groß sind, dann schrumpft der kleinere Wurm auf Größe 1. Die andere wächst entsprechend an. Die Summe der Größen bleibt also gleich. Andernfalls geschieht nichts. Die Methode gibt diesen Wurm zurück.
public String toString()
Liefert eine Textdarstellung der Form: <Geschlecht>,<Größe> Beispiel für einen männlichen Wurm der Größe 5: true,5 Beispiel für einen weiblichen Wurm der Größe 20: false,20
public boolean equals(Object other)
Liefert genau dann true, wenn other ein Wurm mit denselben Attributen ist.
Schaut jetzt bei mir so aus:
public class Worm {
private boolean gender; // Geschlecht des Wurms
private int size; // Größe des Wurms
public Worm(boolean male) {
gender = male;
size = 1;
}
public Worm(boolean male, int size) {
gender = male;
this.size = size;
}
public boolean isMale() {
return this.gender;
}
public int getSize() {
return this.size;
}
public Worm feed() {
this.size++;
return this;
}
public Worm hunger() {
if (this.size != 1) {
this.size--;
}
return this;
}
public Worm split (){
if (this.size>3){
Worm other= new Worm(this.gender,Math.round(this.size/2));
size=(this.size-other.size);
return other;
}
else
return null;
}
public Worm join(Worm other) {
if (this.gender == other.gender || this.size == other.size){
return null;
}
else {
if (this.size < other.size){
Worm baby = new Worm(other.gender, size = 1);
return baby;
}
else{
Worm baby = new Worm(this.gender, size = 1);
return baby;
}
}
}
public Worm attack(Worm other) {
if (this.gender && other.gender && (this.size != other.size)){
if (this.size < other.size){
other.size= other.size + (this.size-1);
this.size = 1;
return this;
}
else{
this.size = this.size + (other.size-1);
other.size = 1;
return this;
}
}
else
return null;
}
public String toString() {
return Boolean.toString(gender) + "," + Integer.toString(size);
}
public boolean equals(Object other) {
if(!(other instanceof Worm)) // Frage ob other ein Wurm ist
return false;
Worm temp = (Worm)other; //Zuweisung, dass other nun der Wurm temp ist
if(other==null)
return false;
if(this.size != temp.size)
return false;
return true;
}
}
Meine Fragen:
Wenn ich das Programm im cmd aufrufen will, sagt es mir das ich eine Hauptklasse anlegen muss. Wo mache ich das denn? Brauche ich diese überhaupt?
Und zweitens:
Haben von unserem Dozent eine Testdatei bekommen um den Wurm zu testen.
Wie kann ich das denn machen.
Meine Datei heißt Worm.java und vom Dozenten haben wir einmal Junit-4.10.jar und WormTest.class.
Wie geb ich das im cmd ein?
LG und vielen Lieben Danke im vorraus.