Hallo zusammen,
in objektorientierten Sprachen versuchen wir ja Datenkapselung zu betreiben, richtig?
Bedeutet, dass wir z.B. Attribute vor unerlaubtem Zugriff bzw. unerlaubter Änderung schützen.
Beispiel soll sein: ein Blumenladen. Ich habe eine Klasse "Artikel" geschrieben. Die hat ein Attribut "preis".
Jetzt gibt es verschiedene Artikel: Dekoration und Pflanzen. Beides Unterklassen von "Artikel" und beide sollen natürlich das Attribut "preis" erben.
Entsprechend darf "preis" nicht private sein, sondern muss zumindest package (default) oder protected sein; je nachdem ob die Unterklassen sich im gleichen Package befinden.
Aber: Jetzt ist mein Attribut innerhalb meines Packages nicht mehr geschützt. Wenn ich im Team arbeite und wir arbeiten zusammen an einem Package, dann könnte jemand den Preis ungeschützt ändern. Zum Beispiel auf einen negativen Wert.
Das kann doch nicht im Sinne des Erfinders sein, oder?
Vielen Dank
in objektorientierten Sprachen versuchen wir ja Datenkapselung zu betreiben, richtig?
Bedeutet, dass wir z.B. Attribute vor unerlaubtem Zugriff bzw. unerlaubter Änderung schützen.
Beispiel soll sein: ein Blumenladen. Ich habe eine Klasse "Artikel" geschrieben. Die hat ein Attribut "preis".
Jetzt gibt es verschiedene Artikel: Dekoration und Pflanzen. Beides Unterklassen von "Artikel" und beide sollen natürlich das Attribut "preis" erben.
Entsprechend darf "preis" nicht private sein, sondern muss zumindest package (default) oder protected sein; je nachdem ob die Unterklassen sich im gleichen Package befinden.
Aber: Jetzt ist mein Attribut innerhalb meines Packages nicht mehr geschützt. Wenn ich im Team arbeite und wir arbeiten zusammen an einem Package, dann könnte jemand den Preis ungeschützt ändern. Zum Beispiel auf einen negativen Wert.
Das kann doch nicht im Sinne des Erfinders sein, oder?
Vielen Dank