rasenganIT Geschrieben 22. November 2023 Geschrieben 22. November 2023 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?
Brapchu Geschrieben 22. November 2023 Geschrieben 22. November 2023 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. rasenganIT reagierte darauf 1
be98 Geschrieben 22. November 2023 Geschrieben 22. November 2023 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 rasenganIT reagierte darauf 1
be98 Geschrieben 22. November 2023 Geschrieben 22. November 2023 Oder public, was auch nicht falsch wäre
Yaksou Geschrieben 22. November 2023 Geschrieben 22. November 2023 (bearbeitet) 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 2023 von Yaksou
ZwennL Geschrieben 22. November 2023 Geschrieben 22. November 2023 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.
Whiz-zarD Geschrieben 23. November 2023 Geschrieben 23. November 2023 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!".
ZwennL Geschrieben 23. November 2023 Geschrieben 23. November 2023 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.
hellerKopf Geschrieben 23. November 2023 Geschrieben 23. November 2023 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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden