AGB  ·  Datenschutz  ·  Impressum  







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

Delphi mit Java komunizieren

Offene Frage von "bucchi"
Ein Thema von Simon1988 · begonnen am 12. Jul 2006 · letzter Beitrag vom 27. Okt 2006
 
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#38

Re: Delphi mit Java komunizieren

  Alt 26. Okt 2006, 15:28
Zitat von Simon1988:
aber was meinst du mit inherited .. ich mein meine klassen in Delphi sind ja eigentlich nicht voneinander vererbt ..
Da siehst du etwas falsch. In der OOP (hier sogar mal in ziemlich jeder Sprache) erbt man automatisch von einem gemeinsamen Vorfahren. Häufig ähneln sich hier sogar die Namen dieses Vorfahren, Delphi Klassen erben (immer!) von TObject. Ob du ein direkter oder indirekter Nachfahre bist spielt bei der Vererbung bekanntlich keine Rolle. Die wichtigsten Eigenschaften müssen in einer solchen Basisklasse festgelegt werden, es geht um das einfache Erzeugen einer Instanz. Dazu muss letztlich Speicher alloziert und gefüllt werden. Darum kümmert sich (zum Glück) der Urkonstruktor überhaupt, TObject.Create. Da jede Klasse ein Nachfahre ist, sollte auch tunlichst jede Klasse einmal diesen Konstruktor aufrufen. Da du hier zwei Klassen einführst und verwendest, gilt das auch für dich.

Statt

Delphi-Quellcode:
TXYZ = class
...
end;
kannst du auch schreiben

Delphi-Quellcode:
TXYZ = class(TObject)
...
end;
Beide Blöcke haben die gleiche Aussage! Führst du einen eigenen Konstruktor ein, so musst du immer als erstes dafür sorgen, dass Speicher alloziert wird, die Adresse bekannt gegeben, etc. Irgendwoher muss Delphi ja dann wissen, wo jetzt dein Objekt liegt, welchen Typ es hat usw. Davon übernimmt der Vererbte Konstruktor von TObject schon einen guten Teil. Deswegen beginnt jeder Konstruktor immer mit der Zeile:

[delphi]
constructor TXYZ.create;
begin
inherited create;
end;
[delphi]

Also so sieht es bei direkten Erben von TObjekt aus, bei einem TControl würdest du natürlich dem inherited create noch den Owner mitgeben, aber der würde damit nur die geerbte Methode von TComponent aufrufen, dass geht dann wieder runter bis zum Parameterlosen create Aufruf eines TObject.

Ähnlich sieht es dann beim Destruktor auf. Der muss ja letztlich sauber machen. Jetzt kannst du dich selbst drum kümmern, wie Delphi seine Klassen verwaltet (was keineswegs sinnvoll ist) oder du greifst hier dann einfach auf den geerbten Destruktor zurück. Überschreibst du also einen Destruktor, so muss die letzte Zeile inherited destroy heißen (die gibt einfach den Speicher des Objekts und aller Variablen, etc. frei).
  Mit Zitat antworten Zitat
 


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 09:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz