Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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?

Screenshot from 2023-11-22 17-47-31.png

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.

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 von Yaksou

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.

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!".

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.

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.