# Korrektur



## julia1997 (11. Jun 2016)

Hallo!
Findet Ihr irgendwelche Fehler in meinem Code? Möchte ihn noch verbessern..


----------



## julia1997 (11. Jun 2016)

https://www.dropbox.com/sh/l5glte128rfg6sv/AAD9tRry8APcfD8viPvF6x8za?dl=0


----------



## mrBrown (11. Jun 2016)

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 (11. Jun 2016)

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 (11. Jun 2016)

julia1997 hat gesagt.:


> WOW! Vielen vielen Dank dass du dir meinen Code angeschaut hast
> 
> Meinst du so:
> public class Geometry implements Comparable<Geometry> {
> ...



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


----------



## julia1997 (11. Jun 2016)

super danke


----------

