Avatar von BubbaBub
  • BubbaBub

436 Beiträge seit 04.02.2015

Re: ..oder einfach das Attribut public machen?

Oli_H schrieb am 13.02.2018 16:51:

Als Ersatz für die 'primitiven' Getter und Setter (return this.x; bzw. this.x=x;) genügt das ja.

Und wenn man später doch mal mehr Funktionalität benötigt, dann kann man da mit heuten IDEs schnell Getter/Setter generieren und den Code automatisch refactorn.

Oder gibt es noch andere Aspekte - ausser C# hat's auch ?

Eine Menge Sachverstand wie man sieht.

1. Wenn eine Klasse viele Felder hat so hat man auch viele Getter/Setter. Das ganze zu verwalten ist eine Menge Aufwand. Man verliert schnell die Überblick und der gigantische Overhead führt auch zu einer höheren Fehlerwahrscheinlichkeit.
2. C# erlaubt mit Properties Vererbung und auch Interfaces
3. Mit Settern kann man einen Wert überprüfen und dann z.B. eine Exception schmeißen
4. Getter/Setter können ein Feld auf verschiedene Weise darstellen. So ist es z.B. möglich ein Temperatur Wert normiert in einem Feld zu speichern und diesen dann in vielen Einheiten zur Verfügung zu stellen
5. IDEs unterscheiden sich, Eclipse generiert eventuell anderen Code als IDEA

Wieso Java also keine Propertys und kein Async/Await hat ist ein Rätsel. Ist aber auch egal C# wird Java massiv Marktanteile weg nehmen weil es nun einwandfrei unter Linux läuft und es einfach bessere Konzepte von der Sprache her für viele Probleme anbietet.

Bewerten
- +