privates Mitglied, auf das von anderen Instanzen derselben Klasse aus zugegriffen werden kann

8

Ich habe gerade etwas bemerkt, das ich vorher nie realisiert habe. Es stellt sich heraus, dass diese Klasse in C # gültig ist:

%Vor%

So können verschiedene Instanzen derselben Klasse auf die privaten Mitglieder von einander zugreifen.

Bis jetzt dachte ich, dass die privaten Mitglieder eines Objekts nur von diesem Objekt und nicht von anderen Instanzen der gleichen Klasse erreicht werden können. Es ist ein wenig überraschend, dies herauszufinden.

Ist dies in allen gängigen objektorientierten Sprachen der Fall? Es ist nicht intuitiv für mich.

    
Oliver 10.09.2012, 16:02
quelle

2 Antworten

8

Dies ist das gleiche wie in C ++ und Java: Die Zugriffskontrolle funktioniert pro Klassenbasis, nicht pro Objekt.

In C ++ wird die Java und C # Zugriffskontrolle als statisches Kompilierzeitmerkmal implementiert. Auf diese Weise gibt es keinen Laufzeitaufwand. Auf diese Weise kann nur eine Kontrolle pro Klasse implementiert werden.

    
piokuc 10.09.2012, 16:09
quelle
11

Wie würden Sie einen Kopierkonstruktor für eine Klasse erstellen, die nicht ihren gesamten internen Status durch öffentliche Methoden verfügbar macht?

Betrachten Sie etwas wie folgt:

%Vor%

Die öffentliche Schnittstelle von Car stellt ihr Engine nicht zur Verfügung, aber Sie brauchen es, um eine Kopie zu erstellen.

    
japreiss 10.09.2012 17:10
quelle

Tags und Links