Was ist öffentlich, privat und geschützt in der objektorientierten Programmierung?
class
oop
definition
access-modifiers
Delirium tremens
quelle
quelle
Antworten:
Sie sind Zugriffsmodifikatoren und helfen uns bei der Implementierung der Kapselung (oder des Versteckens von Informationen). Sie teilen dem Compiler mit, welche anderen Klassen Zugriff auf das zu definierende Feld oder die zu definierende Methode haben sollen.
private
- Nur die aktuelle Klasse hat Zugriff auf das Feld oder die Methode.protected
- Nur die aktuelle Klasse und Unterklassen (und manchmal auch Klassen mit demselben Paket) dieser Klasse haben Zugriff auf das Feld oder die Methode.public
- Jede Klasse kann auf das Feld verweisen oder die Methode aufrufen.Dies setzt voraus, dass diese Schlüsselwörter als Teil einer Feld- oder Methodendeklaration innerhalb einer Klassendefinition verwendet werden.
quelle
Es handelt sich nicht wirklich um Konzepte, sondern um bestimmte Schlüsselwörter, die in gängigen Sprachen wie C ++ und Java häufig vorkommen (mit leicht unterschiedlicher Semantik).
Im Wesentlichen sollen sie einer Klasse ermöglichen, den Zugriff auf Mitglieder (Felder oder Funktionen) einzuschränken. Die Idee ist, dass je weniger ein Typ in einem anderen Typ zugreifen darf, desto weniger Abhängigkeiten entstehen können. Auf diese Weise kann das Objekt, auf das zugegriffen wird, einfacher geändert werden, ohne dass Objekte beeinflusst werden, die darauf verweisen.
Allgemein bedeutet öffentlich, dass jeder Zugriff haben darf, privat bedeutet, dass nur Mitglieder derselben Klasse Zugriff haben dürfen, und geschützt bedeutet, dass auch Mitglieder von Unterklassen berechtigt sind. Jede Sprache fügt jedoch ihre eigenen Dinge hinzu. Mit C ++ können Sie beispielsweise nicht öffentlich erben. In Java gibt es auch eine Standardzugriffsebene (Paket) und Regeln für interne Klassen usw.
quelle
Alle drei sind Zugriffsmodifikatoren und Schlüsselwörter, die in einer Klasse verwendet werden. Alles, was öffentlich deklariert ist, kann von jedem Objekt innerhalb der Klasse oder außerhalb der Klasse verwendet werden. Variablen im privaten Bereich können nur von den Objekten innerhalb der Klasse verwendet werden und können nicht durch direkten Zugriff geändert werden (da sie sich durch Funktionen wie die Friend-Funktion ändern können). Alles, was unter dem geschützten Abschnitt definiert ist, kann von der Klasse und ihrer gerade abgeleiteten Klasse verwendet werden.
quelle
Ein öffentliches Objekt ist eines, auf das von jeder anderen Klasse aus zugegriffen werden kann. Sie müssen nur wissen, um welches Objekt es sich handelt, und Sie können einen Punktoperator verwenden, um darauf zuzugreifen. Geschützt bedeutet, dass eine Klasse und ihre Unterklassen Zugriff auf die Variable haben, jedoch keine anderen Klassen. Sie müssen einen Getter / Setter verwenden, um etwas mit der Variablen zu tun. Ein privates Element bedeutet, dass nur diese Klasse direkten Zugriff auf die Variable hat. Alles andere benötigt eine Methode / Funktion, um auf diese Daten zuzugreifen oder sie zu ändern. Hoffe das hilft.
quelle
Zusammenfassend lässt sich sagen, dass bei der objektorientierten Programmierung alles in Klassen und Objekte modelliert wird. Klassen enthalten Eigenschaften und Methoden. Öffentliche, private und geschützte Schlüsselwörter werden verwendet, um den Zugriff auf diese Mitglieder (Eigenschaften und Methoden) einer Klasse aus anderen Klassen oder anderen DLLs oder sogar anderen Anwendungen anzugeben.
quelle
wie oben, aber qualitativ:
Je weniger Zugriff Sie gewähren, desto weniger Implementierungsdetails treten aus Ihren Objekten aus. Weniger von dieser Art von Leckage bedeutet mehr Flexibilität (auch als "lockerere Kopplung" bezeichnet) in Bezug auf die Änderung der Implementierung eines Objekts, ohne die Clients des Objekts zu beschädigen. Dies ist eine wirklich grundlegende Sache zu verstehen.
quelle