Veröffentlicht 22. November 20231 j Hallo, in den Lösungen sind die Attribute Länge,Breite und Preis als protected gelistet. Wie genau kommt aus der Aufgabenstellung darauf dass die Attribute protected sein müssen?
22. November 20231 j Da die Lösungshilfe (KEINE MUSTERLÖSUNG) denke ich in Java geschrieben ist.. 1min googleFu zu Java & Private vs Protected: Zitat private-Elemente sollten immer dann verwendet werden, wenn implementierungsabhängige Details zu verstecken sind, die auch in abgeleiteten Klassen nicht sichtbar sein sollen. protected-Elemente sind vor Zugriffen von außen geschützt, können aber von abgeleiteten Klassen verwendet werden. Und damit dürfte nach der Aufgabenstellung, zumindest in Java, protected die richtige Wahl sein.
22. November 20231 j In toString sollen alle KlassenAttribute ausgegeben werden. Das funktioniert aber nur wenn du diese protected machst, sonst bräuchtest du getter für jedes Attribut. Haste aber nicht
22. November 20231 j IHK ist grundsätzlich fast immer private attribute und public Methoden. Hab ab und zu mal protected gesehen, aber das war dann explizit so vorgegeben. So hab ich das auch noch nicht gesehen. Huh Bearbeitet 22. November 20231 j von Yaksou
22. November 20231 j Die Aufgabenstellung gibt protected nicht vor. Sie kann aber mit protected für die Attribute gelöst werden. Wie oben schon geschrieben wurde, werden private deklarierte Attribute nicht mit vererbt. Kommt also Vererbung ins Spiel, ist protected die richtige Wahl, wenn Attribute in weiteren Vererbungsebenen benötigt werden. So ist es in Java. Den Modifikator protected gibt es aber auch in C# und C++. Ich weiß nicht genau, wie er dort wirkt, aber wohl in die gleiche Richtung. Das der Lösungsvorschlag protected verwendet wird wundert mich allerdings, da die IHK Fragen sich in der Regel nicht auf spezifische Programmiersprachen beziehen, sondern auf Pseudocode. Da wäre ich also eher bei private, um im Allgemeinen zu bleiben. Gefordert ist so ein Modifikator meiner Ansicht nach aber auf jeden Fall, denn es wird ja mit "preisänderung" ein Setter (mit eher zweifelhaftem Bezeichner) und mit "getPreis" ein Getter gefordert. Die machen beide nur Sinn, wenn die Attrbute für den Zugriff von außen gesperrt sind.
23. November 20231 j vor 6 Stunden schrieb ZwennL: Gefordert ist so ein Modifikator meiner Ansicht nach aber auf jeden Fall, denn es wird ja mit "preisänderung" ein Setter (mit eher zweifelhaftem Bezeichner) und mit "getPreis" ein Getter gefordert. Die machen beide nur Sinn, wenn die Attrbute für den Zugriff von außen gesperrt sind. Das ist aber auch von der Sprache abhängig. z.B. in Python gibt es solche Konzepte, wie private oder protected gar nicht. Da ist alles public. Es gibt nur die naming convention, dass private Variablen mit einem unterstrich anfangen sollten. Das ist aber auch nur ein "Bitte ändere diesen Wert nicht!".
23. November 20231 j vor einer Stunde schrieb Whiz-zarD: Das ist aber auch von der Sprache abhängig. z.B. in Python gibt es solche Konzepte, wie private oder protected gar nicht. Da ist alles public. Es gibt nur die naming convention, dass private Variablen mit einem unterstrich anfangen sollten. Das ist aber auch nur ein "Bitte ändere diesen Wert nicht!". Nach der reinen Lehre (wie man so sagt) ist Encapsulation (Datenkapselung) aber ein Konzept der OOP. Mag sein, dass Python das nicht implementiert hat. Da kenne ich bisher nur die Grundlagen.
23. November 20231 j Es geht bei so einer Aufgabe sicher nicht um eine spezifische Sprache. Allgemein in OOP ist alles so weit zu schützen, wie es geht. Wenn python da alles ungeschützt lässt, ist eine weiterer Schwachpunkt der Sprache
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.