AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Private-Attribute wirklich sichtbar?

Ein Thema von andianon · begonnen am 5. Apr 2004 · letzter Beitrag vom 5. Apr 2004
Antwort Antwort
andianon

Registriert seit: 2. Dez 2003
Ort: Wechselnd
28 Beiträge
 
Delphi 5 Enterprise
 
#1

Private-Attribute wirklich sichtbar?

  Alt 5. Apr 2004, 15:04
Ich bin es eigentlich aus anderen Sprachen gewohnt, dass ein Attribut, dass ich innerhalb einer Klasse als private deklariert habe, für andere Klassen nicht sichtbar ist. Jetzt bin ich doch eigentlich der Meinung, dass das ja nun etwas mit sauberer Kapselung blablabla zu tun hat.
Da war ich doch schon immer etwas irritiert, das in der Codevervollständigung meine als private deklarierten Attribute aus anderen Klassen auftauchten, was ich immer als Bug hingenommen und die entsprechenden Getter und Setter benutzt habe, um jetzt festzustellen, dass in Delphi als private deklarierte Attribute nicht wirklich private, sondern innerhalb einer Unit ziemlich public sind.

Ist das wirklich so?

Lässt Delphi wirklich so eine SCH***** zu oder sollte ich doch etwas Vertrauen zu den Borlandern haben und sie haben es inzwischen behoben (ich code aktuell noch mit D5 Enterprise).

Bitte sagt mir, dass Delphi nicht so einen Scheiß zulässt und es nur ein Bug ist!?!

Hoffungsvoll...

Andi
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Private-Attribute wirklich sichtbar?

  Alt 5. Apr 2004, 15:09
Zitat von andianon:
Bitte sagt mir, dass Delphi nicht so einen Scheiß zulässt und es nur ein Bug ist!?!
Erstens erst einmal Benutze bitte eine etwas andere Sprache!

Zweitens: Innerhalb einer Unit ist es laut OOP (nicht Delphi!) zulässig auf private Elemente anderer Klassen der gleichen Unit zuzugreifen. Damit handelt Delphi korrekt. Sollte es Dich jedoch beruhigen, so kannst Du ab Delphi 8 strict private (und strict protected) nutzen, um auch dieses zu verbieten.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Private-Attribute wirklich sichtbar?

  Alt 5. Apr 2004, 15:13
Delphi kennt das Friend - Konzept wie z.B. C++ nicht.
Dafür haben alle Klassen in der gleichen Unit eine Friend-Beziehung
zueinander.
Man hätte hier vielleicht ein neues Schlüsselwort (friend) einführen können.

In der Praxis ist die Delphi Lösung aber meist ausreichend, da Klassen, die
in der gleichen Unit liegen meist eine enge Beziehung haben und "Freunde" zueinander
sind.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Private-Attribute wirklich sichtbar?

  Alt 5. Apr 2004, 15:13
Das ist sicher kein bug, sondern vermutlich absicht. Das sichtbarkeits-konzept ist aber hauptsächlich für benutzer dieser unit oder komponente ausgelegt, die diese felder dann eben nicht sehen können. Und den programmierer einer unit ist es wohl grad noch zu zutrauen, das er mit seinen feldern keine schei*** baut.

Andererseits ist es manchmal auch extrem praktisch, wenn mehrere klassen zu einem system gehören und genau wissen was sie tun, dann spart man sich den umweg über die getter und setter.

Wenn du es so schlimm findest, dann nimm delphi 8, da gibt es dann noch strict private.
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
andianon

Registriert seit: 2. Dez 2003
Ort: Wechselnd
28 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: Private-Attribute wirklich sichtbar?

  Alt 5. Apr 2004, 15:31
@sakura
Das Wort SCH**** diente nur als Stilmittel; ich beschimpfe ausdrücklich niemanden. Pardon.
Zitat:
Innerhalb einer Unit ist es laut OOP (nicht Delphi!) zulässig auf private Elemente anderer Klassen der gleichen Unit zuzugreifen.
Die OOP ist ein Konzept und macht qualitative Aussagen. Die Umsetzung des Konzepts OOP ist in verschiedenen Sprachen leicht bis sehr unterschiedlich, d.h., die OOP macht keine Aussage über Delphi-Units und die Umsetzung der Sichtbarkeit von private-Attributen innerhalb dieser.

@shmia
Das Friends-Konzept IMHO ist auch nur ein Kompromiss an die Programmierbarkeit. Gib einem Programmierer die Chance zu schlusen und er wird sie doch irgendwann nutzen. Ich wünsche mit eigentlicht nur private ist private, nach dem Motto: Ein bisschen schwanger gibt es nicht.

@maximov
Würde gern umsteigen, kann ich mir aber nicht aussuchen, das D5 Enterprise hier leider Fact ist. Das mit strict private hört sich aber nach der Erfüllung meiner Wünsche an.
@all
Weitere Antworten muss ich leider auf Morgen verschieben.

Gruß Andi
  Mit Zitat antworten Zitat
Benutzerbild von Smokey
Smokey

Registriert seit: 10. Nov 2003
Ort: Puerto de la Cruz
158 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Private-Attribute wirklich sichtbar?

  Alt 5. Apr 2004, 16:13
und protected hilft dir nicht?
Greif dir ein gutes Stück Fleisch auf deinem Weg nach draussen !!!
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#7

Re: Private-Attribute wirklich sichtbar?

  Alt 5. Apr 2004, 16:32
Zitat von Smokey:
und protected hilft dir nicht?
eher nicht ... protected ist für die sichtbarkeit in abgeleiteten klassen
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
Benutzerbild von Smokey
Smokey

Registriert seit: 10. Nov 2003
Ort: Puerto de la Cruz
158 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Private-Attribute wirklich sichtbar?

  Alt 5. Apr 2004, 16:44
Nuja damit hätte er zumindest die unsichtbarkeit in anderen klassen gewährleistet oder sehe ich das falsch ?Und ob er Kindklassen hat oder nicht, weiss ich net. Kenne aber auch nur wenige Beispiele wo ich Variablen in kindklassen absolut nicht haben will.

Aber egal...war ja nur so ne idee...
Greif dir ein gutes Stück Fleisch auf deinem Weg nach draussen !!!
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Private-Attribute wirklich sichtbar?

  Alt 5. Apr 2004, 16:48
protected ist private + die Sichtbarkeit in Kindklassen
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Smokey
Smokey

Registriert seit: 10. Nov 2003
Ort: Puerto de la Cruz
158 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Private-Attribute wirklich sichtbar?

  Alt 5. Apr 2004, 16:54
jo habsch gerade auch nomma nachgelesen..
dachte zuerst nur in kindklassen... man lernt nie aus
Naja delphi eh komisch in sachen oop, genauso wie VB auch (naja ok vb war schlimmer)
Greif dir ein gutes Stück Fleisch auf deinem Weg nach draussen !!!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz