Oh, jetzt wirds theoretisch: Ein Record repräsentiert einen abstrakten Datentyp. Die Menge der einzelnen Recordfelder repräsentiert seinen Gesamtzustand. Beispiel: Der abstrakte Datentyp sei 'TPerson', seine Recordfelder 'Name', 'Geburtsdatum', 'Geschlecht'.
Um dieseen Datentyp zu initialisieren, muss ich seinen Feldern Initialwerte zuweisen. Das muss ich wohldefiniert und immer gleich machen, denn es gilt (z.B.)
Code:
TKunde.IstImInitialzustand <==> Name=leer, Geburtsdatum=leer, Geschlecht=Unspezifiziert.
Das hat zunächst gar nichts mit 'Nullen' zu tun. Ich kann es so drehen, das ich mit einem FillChar(...,0) einen definierten Initialzustand herstelle, aber das schränkt mich unnötig ein.
Ich kann auch jedesmal ein explizite Zuweisung der einzelnen Felder auskodieren, aber das garantiert mir nicht, das zwei 'Instanzen' eines Kunden wirklich identisch initialisiert wurden.
Ich sollte also eine Initial/Clear-Methode für den Record implementieren, der mir meinen expliziten, eindeutigen und wohldefinierten Grundzustand herstellt. Ich würde diese Methode in Anlehnung an den Initialzustand eben 'Initialize' nennen, aber ich denke, 'Clear' geht auch, weil wir ja die Instanz auf einen Grundzustand setzen (Wir 'nullen' ihn im logischen Sinn).
Deinem Einwand, das das "Initialize" zu allgemein gültig wäre, muss ich partiell widersprechen. Und zwar partiell, weil wir -denke ich- unterschiedliche Ansätze verfolgen: Für mich gibt es im Kontext eines abstrakten Datentyps
nur einen definierten Grundzustand, schließlich bilde ich u.U. noch eine (totale) Ordnung, Reflexion usw. über Operatoren ab. Und hier ist es unbedingt notwendig, eine eindeutige Definition der 'Null' zu haben.