PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Klassen und Objekte



Temp
04-05-2001, 13:39
Hi Leute,

hat zwar jetzt nicht direkt was mit Linux zu tun, aber vielleicht kann mir hier jemand helfen. Ich studier Informatik und check hinten und vorne nicht bei Klassen durch! Wie sind die denn aufgebaut. Wo muß was rein? Konstruktor/Destruktor???
Oh, man ob das Infostudium das richtige für mich ist? Könnt mir jemand vielleicht die Ganze Sache erklären? Bitte. Muß nicht lang sein.
Thanx

flasheye
05-05-2001, 21:53
Hallo,

bitte steinigt mich, wenn ich jetzt Mist erzähle.

Unter Turbo Pascal, bzw Delphi gab es auch Klassen und Methoden. Diese Begriffe haben mich immer gestört. Objekte find' ich in Ordnung, weil ein Verbund aus Dateien, die in Abhängigkeit zu einander stehen tatsächlich als solche definierbar sind. Aber wie ist das mit Klassen? Man kennt das aus Datenbanken. Klassifizierung. Da macht das auch Sinn. Aber als mir dann ein senior Programmer erklären wollte, dass Klassen, Objekte und Methoden, je nach Bertrachtungsweise das Selbe sind, wollte auch mein Gehirn erst einmal aussteigen. Ich habe fast das Gefühl, dass das wirklich die verschiedenen Programmierer auf ihre Weise anders sehen werden. Was für den einen eine Klasse ist, ist für den Anderen eine Methode.

Mein Verständnis für die Sache ist folgende. Wenn man sich sein Softwareprojekt in einer hierarchischen Struktur vorstellt, so bildet ein Oberpunkt die Klasse und seine Unterpunkte bilden die Methoden. Das Gesamte Teil ist dann das Objekt. Da ein Projekt ja riesig gross werden kann kann es dann auch vorkommen, dass Objekte auf Klassen anderer Objekte Zugriff haben und diese verwenden können.

Konstruktor und Destruktor sind mir leider völlig fremd, da ich das Programmieren autodidaktisch lerne. Informatikstudium kommt, wenn ich mir das leisten kann. :(

Als dann.

DasSein

[ 05. Mai 2001: Beitrag editiert von: DasSein ]

Ilja
05-05-2001, 22:44
ergänzend:

constructor/destructor: wie der name schon sagt zum erstellen/verwerfen von objekten. ein constructor ist die prozedur eines objektes, die beim kreieren einer instanz desselbigen aufgerufen wird. der destructor dementsprechend beim cleanen des objektes.

jgbauman
06-05-2001, 12:10
Betreiben wir ein bisschen Begriffsklaerung:

Eine Idee der objektorientierten Programmierung ist den Loesungsraum (die zur Loesung angebotnenen Primitive die zu einer Loesung zusammen gesetzt werden) naeher an den Problembereich (Die Dinge die zu Loesen/modellieren/nachzubilden sind) zu bringen.

Anstatt sich entweder auf die Daten oder die Funktioenen zu konzentrieren, fasst man Daten und die dazugehoerigen Funktionen zu einer Einheit zusammen. Da diese Einheiten oft real existierende Gegenstaende modellieren, nennt man sie Objekte.

Wie entsteht nun so ein Objekt? Ganz einfach: man macht einen Bauplan. Diesen Bauplan, diese Definition nennt man Klasse. Um nun ein Objekt zu bekommen, muss man diesen Bauplan realisieren. Diesen Vorgang nennt Instanziierung. Meist wird er in objektorientierten Sprachen durch Aufruf eines sogenannte Konstruktors ausgefuehrt. Dies ist eine spezielle Funktion, die dem Bauplan (Klasse) folgend ein neues Objekt erstellt. (d.h. Speicherplatz reserviert und initialisiert + den Programmcode des Konstruktors ausführt)


Zur verdeutlichung:
Ein Auto hat gewisse Eigenschaften.
Es hat vier Raeder, einen Motor und man kann damit fahren. Dieses (zugegeben vereinfachende) Konzept eines Autos ist nun unsere Klasse. Ein VW Käfer oder ein Ferrari F40 sind nun Objekte als Instanzen des Konzepts Autos.


Hier koennte man jetzt auf weitere Ideen in der OOP verweisen wie Kapselung, Vererbung, etc.. aber da empfehle ich doch besser sich ein gutes Buch zu suchen.

Also nochmal in Kuerze:

Objekte sind zusammenfassung von Daten und zugehoeriger Funktionalitaet.
Die Daten eines Objekts werden oft mit member variables, members, properties oder Eigenschaften genannt.
Die Funktionen eines Objekts heissen meist, member functions oder Methoden.

Die Typen von Objekten heissen Klassen und definieren welche Daten und welche Funktionalitaet ein Objekt hat.

Um ein Objekt zu bekommen wird es instanziiert, d.h. Speicher reserviert. Damit der Programmierer weitere Aktionen festlegen kann gibt es die Konstruktoren.
Entsprechend gibt es dazu die Destruktoren die aufgerufen werden, bevor der Speicher wieder freigegeben wird und das Objekt zerstoert wird.