Autor Beitrag
robert cook
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Do 24.06.10 17:26 
Hi,
ich الاسه
bin zwar kein blutiger Anfänger mehr, aber mir fehlt immer Grundlagenwissen, was höchste Zeit ist zu lernen. www.forexsa.org/

also meine erste grundlegende Frage zu OOP ist: was ist OOP? Bisher habe ich immer angenommen das die Eigenschaft einer Sprache, welche sie Objektorientiert macht, die Eigenschaft sei, Klassen bzw Typen zu erstellen. צימרים במושב

Da ich nie eine nicht-objekt-orientierte Sprache gelernt habe, kenn ich den Unterschied eben nicht.
preisvergleich-kredite
2. Wenn man Prozeduren weder als puplic oder privat deklariert, was sind sie dann? Public? Wenn ja, wozu dann die extra Public-Deklaration?
baiaopharma
Ich dachte ich hätte noch mehr fragen, aber zumindest fallen sie mir jetzt nicht ein.


Zuletzt bearbeitet von robert cook am Mo 19.07.10 16:25, insgesamt 1-mal bearbeitet
Dude566
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Do 24.06.10 17:28 

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Do 24.06.10 17:40 
Hi :)

Ich halte mich hauptsächlich in Delphi auf. Wenn ich das richtig sehe, erlauben die meißten Sprachen sowohl objektorientierte wie nicht objektorientierte Programmierung.

Objektorientiert wäre also in erster Linie die Programmierung, und erst in zweiter Linie die Sprache. Pascal unterstützt afaik noch keine OOP, die entsprechenden Schlüsselwörter sind meines Wissens erst in Delphi(=Object Pascal) hinzugekommen.
Wichtig bei OOP ist, dass Klassen von einander auch abgeleitet werden können, ich weiß nicht ob das jetzt alle Sprachen können, die grundsätzlich Klassen unterstützen.

strict private: Nur eigene Klasse
private: Nur eigene Unit
strict protected: Nur eigene Klasse und davon abgeleitete Klassen
protected: Eigene Klasse und davon abgeleitete
public: Immer sichtbar, wenn die Unit eingebunden ist
published: Zusätzlich zu public aufgelistet, das ist nötig, um die Methoden in der vcl z.B. einem ButtonClick-Ereignis zuzuordnen.

Soweit nicht anders angegeben, sind alle Methoden einer Klasse vom Typ published.

E: Strict private und protected sind relativ neu hinzugekommen, afaicr in Delphi 2006.

lg,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)


Zuletzt bearbeitet von Hidden am Do 24.06.10 18:31, insgesamt 2-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 24.06.10 18:21 
user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Pascal unterstützt afaik noch keine OOP, die entsprechenden Schlüsselwörter sind meines Wissens erst in Delphi(=Object Pascal) hinzugekommen.
Nicht ganz, seit Turbo Pascal 6.0 5.5 gab es object als Schlüsselwort und es gab durchaus objektorientierte Ansätze. Diese waren noch nicht mit Object Pascal vergleichbar, aber OOP war mit TP 5, 6 und 7 durchaus möglich.

Vererbung ist ein wichtiges Konzept der objektorientierten Programmierung. Deshalb können das auch alle Sprachen, die wirklich OOP unterstützen. Mehrfachvererbung dagegen ist selten, das kann Delphi z.B. ja nicht.

// EDIT: Ist ja gut, wenn die exakte Version seit der das ging soo wichtig ist, korrigiere ich das natürlich. :mrgreen:


Zuletzt bearbeitet von jaenicke am Fr 25.06.10 23:21, insgesamt 4-mal bearbeitet
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Do 24.06.10 20:09 
In einem Programm-Code, der in einer nicht Objektorientierten Sprache geschrieben ist, gibt es nur primitive Datentypen (byte, integer, boolean, char, mit Glück String) und vielleicht structs, bzw. records.

Wenn du mal ohne VCL programmiert hast, ist dir sicher aufgefallen, dass ein Delphi/Pascal Programm im Prinzip wie folgt aufgebaut ist:

ausblenden Delphi-Quelltext
1:
2:
3:
begin
  println('Hallo Welt');
end.

Alles in einem Delphi-Programm passiert zwischen begin und end. Hier werden dann auch in der Regel die Instanzen der Forms (TForm) erzeugt, die die grafische Bedienoberfläche darstellen.
Man kann aber in Delphi auch "Pascal-kompatibel", sprich ohne Klassen programmieren. Das geht in anderen Sprachen, die von Grund auf auf eine OOP Architektur setzen (wie zum Beispiel Java) nicht.

Nicht Objektorientierte Sprachen (zum Beispiel C) werden heutzutage hauptsächlich in eingebetteten Systemen (unter anderem in der Mikrocontroller-Programmierung) verwendet.

Für diesen Beitrag haben gedankt: Hidden, Kha
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 25.06.10 12:45 
Moin!

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Pascal unterstützt afaik noch keine OOP, die entsprechenden Schlüsselwörter sind meines Wissens erst in Delphi(=Object Pascal) hinzugekommen.
Nicht ganz, seit Turbo Pascal 6.0 gab es object als Schlüsselwort und es gab durchaus objektorientierte Ansätze.
IIRC gab es "object" schon in TP5, hatte damals ein Projekt damit umgesetzt. :) Aber das waren wirklich nur "Ansätze", mit dem TObject von heute hatte das nix zu tun... :?

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 25.06.10 12:53 
Eventuell hier noch etwas Lesestoff: www.michael-puff.de/...i/Tutorials/Klassen/
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Fr 25.06.10 15:07 
So sieht das aus :

ausblenden Delphi-Quelltext
1:
NrEing = OBJECT (Root)					


Das ging bereits ab TP 5.5. Und dem Fragesteller würde ich mal empfehlen, sich da in die Theorie mehr einzulesen. Ne, das da hat so keinen Zweck. Da muss eine Gesprächsgrundlage her.

_________________
Gruß
Hansa
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Fr 25.06.10 23:14 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Pascal unterstützt afaik noch keine OOP, die entsprechenden Schlüsselwörter sind meines Wissens erst in Delphi(=Object Pascal) hinzugekommen.
Nicht ganz, seit Turbo Pascal 6.0 gab es object als Schlüsselwort und es gab durchaus objektorientierte Ansätze. Diese waren noch nicht mit Object Pascal vergleichbar, aber OOP war mit TP 6 und TP 7 durchaus möglich.


Die Objektorientierung hielt mit Turbo-Pascal 5.5 Einzug.