AGB  ·  Datenschutz  ·  Impressum  







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

Was ist ein Objekt ?

Ein Thema von mr_emre_d · begonnen am 27. Jul 2008 · letzter Beitrag vom 29. Jul 2008
Antwort Antwort
Seite 1 von 3  1 23      
mr_emre_d
(Gast)

n/a Beiträge
 
#1

Was ist ein Objekt ?

  Alt 27. Jul 2008, 16:22
Code:
{Ich meine sowas hier :}

type

TBlub = object
  varBlub1, varblub2: typ1;
// weitere Variablen, Konstanten
// und Methoden !
end;
Was ist der Untschied zwischen einer klasse und einem Object ? Außer, dass man objecte nicht createn/freen kann ?!??

Ist mir ein wenig peinlich solch eine Frage zu stellen Hätte wahrscheinlich im Info-Unterricht besser aufpassen
sollen

Achja: Ich hab schon ein wenig gesucht nur nichts gefunden

MfG Franz
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Was ist ein Objekt ?

  Alt 27. Jul 2008, 16:28
Das war die alte OOP von TP. Sollte man nicht mehr verwenden.
Markus Kinzler
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Was ist ein Objekt ?

  Alt 27. Jul 2008, 16:32
Ist aber eigentlich mächtiger als Klassen. Objects ähneln C++-Klassen: Du kannst sie sowohl auf dem Stack als auch auf dem Heap anlegen, es gibt Vererbung, virtuelle Methoden...
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Was ist ein Objekt ?

  Alt 27. Jul 2008, 16:34
Zitat von Apollonius:
Ist aber eigentlich mächtiger als Klassen. Objects ähneln C-Klassen: Du kannst sie sowohl auf dem Stack als auch auf dem Heap anlegen, es gibt Vererbung, virtuelle Methoden...
Mächtiger?
Markus Kinzler
  Mit Zitat antworten Zitat
mr_emre_d
(Gast)

n/a Beiträge
 
#5

Re: Was ist ein Objekt ?

  Alt 27. Jul 2008, 16:37
hmm verstehe ...

EDIT: Naja, was das "mächtiger" angeht: sie sind in meinen Augen nicht flexibel !
Oder gibt es da einen weg, sie zu freen ?

Danke
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Was ist ein Objekt ?

  Alt 27. Jul 2008, 16:48
Natürlich sind sie mächtiger. Du kannst sie wie Klassen behandeln, oder wie Records:

Delphi-Quellcode:
TWuppdi = object
  Foo: Integer;
  procedure Bar;
  constructor Create(FooVal: Integer);
end;

procedure TWuppdi.Bar;
begin
  Writeln(Foo);
end;

constructor TWuppdi.Create(FooVal: Integer);
begin
  Foo := FooVal;
end;

procedure Proc;
var Wupp1: TWuppdi; Wupp2: ^TWuppdi;
begin
  //als Record
  Wupp1.Foo := 5;
  Wupp1.Bar;
  //als Klasse
  New(Wupp2, Create(8));
  try
    Wupp2.Bar;
  finally
    Dispose(Wupp2);
  end;
end;
Die Syntax ist zwar ziemlich seltsam, aber es funktioniert. Objects entsprechen praktisch den erweiterten Records aus Delphi 2006 (oder gab es die schon früher? ), zusätzlich ist aber Vererbung möglich.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Was ist ein Objekt ?

  Alt 27. Jul 2008, 16:53
Objects entstanden ja aus Record. Ich finde diese aber nicht mächtiger. Die erweiterten Records sind eher an diese von .Net angelegt und sollen Objects ersetzten. Die Aussage das diese mächtiger als Classes sind ist aber missverständlich da die "neue" OOP viele weitere Features besitzt. Ich hoffe ja das Klassenoperatoren auch Einzug in die Klassen hält.
Markus Kinzler
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Was ist ein Objekt ?

  Alt 27. Jul 2008, 16:56
Ohne Vererbung kann man Objects nicht ersetzen, da dann wichtige Features wie Polymorphie und virtuelle Methoden fehlen. Klar, es fehlen bei Objects einige wichtige Dinge wie die Operatoren is und as, es ist auch deutlich weniger RTTI dabei (das hindert einen auch daran, is und as nachträglich zu implementieren), aber grundsätzlich ist es ein tolles Feature, "lebendige" Objekte auf dem Stack ablegen zu können wie in C++.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Was ist ein Objekt ?

  Alt 27. Jul 2008, 17:07
Ich glaube, ihr antwortet gerade an der Frage vorbei. Es geht um den Unterschied Klasse / Objekt.

Eine Klasse entspricht einem Bauplan für die Daten. Eine Klasse beinhaltet Strukturen um Daten zu speichern und auch gleichzeitig Methoden um diese Daten zu manipulieren. Darin unterscheiden sich unter anderem zum Beispiel Klassen von Records. Objekte sind Instanzen in denen sich die Klassen manifestieren bzw. Objekte sind die lebenden Objekte, die dann mit den realen Daten arbeiten können.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Was ist ein Objekt ?

  Alt 27. Jul 2008, 17:09
Luckie, es geht um das Schlüsselwort Object, nicht um Objekte im Sinne von Instanzen einer Klasse.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 22:39 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