AGB  ·  Datenschutz  ·  Impressum  







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

Einstieg in die OOP

Ein Thema von sveno2k5 · begonnen am 1. Feb 2005 · letzter Beitrag vom 2. Feb 2005
Antwort Antwort
Seite 1 von 2  1 2      
sveno2k5

Registriert seit: 24. Jan 2005
7 Beiträge
 
#1

Einstieg in die OOP

  Alt 1. Feb 2005, 23:07
Hallo.

Versuche inzwischen seid heute Mittag die OOP zu verstehen. Also der Aufbau von Klassen, Objekten, Instanzen usw. Habe dabei gegoogelt und mir die Grundlagen auf www.delphi-source durchgelesen, aber das einzige was ich bisher verstehe ist, das Klassen nur Baugerüste darstellen für beliebig viele Objekte(Instanzen) und das diese irgendwie durch create oder destroy oder free und was weiss ich initialisiert werden müssen. Hat jemand eine Seite oder einen Link wo das so erklärt wird das selbst ein blutiger Anfänger wie ich das bin das gut versteht? Nutze Delphi 6.

Gruss Sven
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Einstieg in die OOP

  Alt 2. Feb 2005, 00:27
Versuch mal: http://tutorials.luckie-online.de .
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

Re: Einstieg in die OOP

  Alt 2. Feb 2005, 00:57
Wo ist da OOP zu finden ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Einstieg in die OOP

  Alt 2. Feb 2005, 01:05
Das Klassen-Tu´torial vielleicht?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5

Re: Einstieg in die OOP

  Alt 2. Feb 2005, 02:52
ja, das Tuto ist gut. Zweck voll erfüllt !
Gruß
Hansa
  Mit Zitat antworten Zitat
sveno2k5

Registriert seit: 24. Jan 2005
7 Beiträge
 
#6

Re: Einstieg in die OOP

  Alt 2. Feb 2005, 10:26
Oh man, das sieht ja klasse aus "Wortwitz hehe "
Vielen Dank, werd mich gleich heute Mittag mal einlesen.

Gruss Sven
  Mit Zitat antworten Zitat
pajofego

Registriert seit: 6. Okt 2004
103 Beiträge
 
#7

Re: Einstieg in die OOP

  Alt 2. Feb 2005, 11:01
Kurz, kompakt, verständlich mit sehr guten Beispielen!

Es gibt Delphi Bücher, die können das überhaupt nicht richtig erklären, teilweise viel zu umständlich!

Von mir gibt's dafür eine glatte EINS!

Gruss pajofego
  Mit Zitat antworten Zitat
sveno2k5

Registriert seit: 24. Jan 2005
7 Beiträge
 
#8

Re: Einstieg in die OOP

  Alt 2. Feb 2005, 19:26
Habe gerade mal angefangen zu lesen, und den Anfang hab ichs ehr gut verstanden
Bei den Destruktoren hab ich aber ein paar Fragen noch.

Ist "ein Objekt aus dem Speicher löschen" gleichbedeutend mit "Die Objektreferenz auf nil setzen"? Wenn ja, warum löscht man die Objektreferenz nicht einfach?

Warum ist es nötig Objekte aus dem Speicher zu löschen? Sie nehmen ja nicht Unmengen an Ressourcen ein.

"Da der Destruktor in der Lage sein muss,Objekte freizugeben,die unvollständig erstellt wurden und deshalb
nil sind,sollte beim Freigeben eines solchen Objektes unbedingt vorher auf nil getestet werden.Wird ein
Objekt mit der Methode Free freigegeben,wird die Prüfung automatisch durchgeführt."

Warum funktioniert destroy nicht wenn die Referenz nil ist? Was macht free wenn die Referenz nil ist?

"Nach dem Aufruf von Free wurde das Objekt zwar aus dem Speicher entfernt,der Zeiger enthält aber
immer noch die Adresse des Objektes.Eine Abfrage mit Assigned liefert also nach einem Aufruf von
Free immer noch True .Entweder setzt man den Zeiger explizit auf nil oder man verwendet die Prozedur
FreeAndNil ."

Auch hier wieder, warum löscht man den Zeiger nicht einfach (Der Zeiger ist doch die Objektreferenz oder?)

Gruss Sven
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#9

Re: Einstieg in die OOP

  Alt 2. Feb 2005, 19:37
Eigendlich gilt neue Frage, neuer Thread und eine Frage pro Thread, aber ichb will mal so frei sein ...

Zitat von sveno2k5:
Ist "ein Objekt aus dem Speicher löschen" gleichbedeutend mit "Die Objektreferenz auf nil setzen"?
Nein. Der Objektzeiger ist ein Pointer (4 Bytes), das Objekt ist überallhin zerstreut.
Wenn du den Zeiger auf nil stzt, zeigt der Zeiger halt nirgendwohin, aber die Daten sind noch da.

Zitat:
Wenn ja, warum löscht man die Objektreferenz nicht einfach?
Wenn du das objekt an sich löschst, zeigt der Zeiger immernoch dorthin, es ist nur nichts (sinnvolles) mehr da.

Zitat:
Warum ist es nötig Objekte aus dem Speicher zu löschen? Sie nehmen ja nicht Unmengen an Ressourcen ein.
Wenn das alle machen würden, könntest du alle paar Stunden dein System rebooten. Wenn du Objekte erstellst (Speicher reservierst) und ihn danach nicht mehr freigibst, steht der Speicher nicht mehr zur Verfügung. Irgendwann ist der ganze RAM reserviert ...

Zitat:
Warum funktioniert destroy nicht wenn die Referenz nil ist?
Wo ist denn das Objekt, dass du löschen möchtest ?

Zitat:
Was macht free wenn die Referenz nil ist?
Nichts.

Zitat:
Auch hier wieder, warum löscht man den Zeiger nicht einfach (Der Zeiger ist doch die Objektreferenz oder?
Weil dann der Speicher immernoch reserviert ist.

Wenn du ein Objekt nichtmehr brauchst, nehme am besten immer FreeAndNil() ...
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

Re: Einstieg in die OOP

  Alt 2. Feb 2005, 20:05
Vorab : der Thread ist mittlerweile Off-Topic. Und ich glaube es wird Zeit, etwas mit Legenden aufzuräumen. Was mit freigeben von Speicher, ob Variable oder sonstwas zu tun hat, das bezieht sich lediglich auf die Laufzeit des Programmes. Nicht mehr und nicht weniger. Ist das Programm korrekt beendet, also "terminiert" wie es in der Informatik heißt, dann ist davon nichts mehr übrig. Zumindest ist es äußerst schwierig, so etwas irgendwie hinzukriegen, daß Speicher blockiert wird.

Was in der Hauptsache wichtig ist : während der Laufzeit sollte nicht jedes mal irgendein Speicherbereich neu belegt werden und das immer wieder, ohne ihn irgendwann wieder freizugeben. Unendlich ist de Speicher nämlich nicht.

Wie gesagt, das ganze hat mit OOP nichts mehr zu tun.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 03:58 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