Korrektur

mrBrown

Super-Moderator
Mitarbeiter
  • Die beiden Exceptions in eigene Klassen verschieben.
  • Besser unchecked Ecxeption statt checked
  • Geometry als abstrakte Klasse
  • Alle Felder final und über Konstruktor initialisieren (Werte lassen sich ja sowieso nicht ändern)
  • #calculateArea & #getPerimeter abstract
  • Square kann Rectangle extenden
  • Bei if (radius < 0) und if (width < 0 || height < 0) eine Exception statt eines out
  • den ersten Konstruktor in Geometry löschen. Ist ja überflüssig, Objekte ohne Größe zu erstellen (und wenn er bleibt, darin den anderen Konstruktor mit default-Werten aufrufen.
  • Dem Konstruktor von Square nur width oder height übergeben, die müssen sowieso gleich sein
  • In Unterklassen hast du doppelte Felder (zB id), die können entfernt werden
 

julia1997

Bekanntes Mitglied
WOW! Vielen vielen Dank dass du dir meinen Code angeschaut hast

Meinst du so:
public class Geometry implements Comparable<Geometry> {

private final intid = -1;

private final booleanfilled = false;

private final String color = "";

private final doublewidth = 0;

private final doubleheight = 0;

bei alle Felder final?
 

mrBrown

Super-Moderator
Mitarbeiter
WOW! Vielen vielen Dank dass du dir meinen Code angeschaut hast

Meinst du so:
public class Geometry implements Comparable<Geometry> {

private final intid = -1;

private final booleanfilled = false;

private final String color = "";

private final doublewidth = 0;

private final doubleheight = 0;

bei alle Felder final?

genau ;)
nur keines von denen direkt initialisieren, also kein private final int id = -1; sondern nur private final int id;. Das initialisieren dann im Konstruktor machen
 

Neue Themen


Oben