Java Frage hinsichtlich einem ab für den test?

...komplette Frage anzeigen Java - (programmieren, Java)

3 Antworten

Gut, da ist das Arbeitsblatt. Steht doch genau da, was du machen sollst. 

Was ist die Frage?

xxxcyberxxx 05.07.2017, 02:50

Habs mal schnell hingeklatscht. https://hastebin.com/yeyurayuxu.java

Testen kannst du es z.B. mit 

Line li = new Line();
System.out.println(li.toString() + "\n");
li = new Line(-1, -5, 3, 3);
System.out.println(li.toString() + "\n");
li.move(2, 2);
System.out.println(li.toString() + "\n");

Da das für einen Test ist und du das auch später für die Klausur brauchst: Schau dir das ganze Thema um Klassen, Objekte usw an. Die Objektorientierung ist ein essentieller Teil von Java und diese Aufgabe war wirklich nicht schwer.

Wenn du Fragen hast, kannst du auch mich anschreiben :)

PS:
ich hab dort beim return-Statement den ternären Operator verwendet. Nicht davon irritieren lassen. 

return (a) ? b : c;

ist dabei äquivalent zu 

if(a){
    return b;
} else {
    return c;
}
1
xxxcyberxxx 05.07.2017, 03:03
@xxxcyberxxx

und ein Fehler ist mir gleich aufgefallen: In der Methode gleichung() sollte man double statt int nutzen, da es ja auch reelle m und c gibt.

public String gleichung() {
  double m = (y2 - y1) / (double)(x2 - x1);
  double c = y1 - m * x1;
  return (c < 0) ? m + "x-" + -c : m + "x+" + c;
}


1
Roman11222 05.07.2017, 15:45
@xxxcyberxxx
Warum System.out.println(li.move(2,5) + "\n); funktioniert nicht?
li.move(2, 2);
System.out.println(li.toString() + "\n");
0
xxxcyberxxx 05.07.2017, 17:19
@Roman11222

Weil li.move void (also nichts) zurückgibt. 

Du müsstest es wie ich aufrufen:

li.move(2, 2);
System.out.println(li.toString() + "\n");

Sonst, um es wie bei dir zu machen, musst du ein paar kleine Änderungen vornehmen. Dafür gibt es auch mehrere Möglichkeiten

public Line move(int x, int y) {

this.x1 += x;
this.x2 += x;
this.y1 += y;
this.y2 += y;
return this;
}

das ist jetzt die neue move-Methode. Sie gibt in diesem Zustand dann das aktuelle Linienobjekt zurück, dass du dann damit direkt weiterarbeiten kannst. Dadurch ist folgender Aufruf möglich:

System.out.println(li.move(2,5).toString());

Du kannst auch folgendes machen:

public String move(int x, int y) {

this.x1 += x;
this.x2 += x;
this.y1 += y;
this.y2 += y;
return toString();
}

Dabei wird nach dem Methodenaufruf automatisch der erstellte String zurückgegeben, wodurch du folgendes nutzen könntest:

System.out.println(li.move(2,5));

Dies gibt nun in der Konsole die neuen Werte aus.

Es gibt noch mehr Möglichkeiten, aber damit sollte es tun. 

0

Zwei Dinge:

1. Die Frage fehlt
2. Das Bild hat eine katastrophale Qualität. Man muss seine Augen schon extrem anstrengen, um das lesen zu können.

Deine Frage fehlt.

Was möchtest Du wissen?