![]() |
Delphi <> Java : static class
Hallo,
ich lerne z.Zt. Java und oop. Ich würde gerne ein wenig erlerntes nun auch in Delphiprogrammen unterbringen. Ich würde nun gerne die Variablen als Objekt defnieren, so dass ich z.B. Methoden wie MyString.ConvertFromInt(10); definieren und aufrufen kann. Bei java gibt es nun das schlüsselwort 'static', so dass auf Objekte der Klasse auch ohne vorheriges Erzeugen (new) zugegriffen werden kann. Gibt es in Delphi(5) etwas ähnliches oder muss ich immer mit 'MyString.create' und 'MyString.free' arbeiten. Gruß BomberBB |
Re: Delphi <> Java : static class
Es gibt zwar keine statiische Klassen aber statische Methoden, welche in Delphi Klassenmethoden heißen.
|
Re: Delphi <> Java : static class
Hi Bomberbb,
Delphi-Quellcode:
so kannst du es direkt aufrufen, ohne erst mit TClass.Create bzw. .Free zu arbeiten.
type
TClass = class(TObject) public class function GetSomething: String; end; class function TClass.Getsomething: String; begin Result := 'Something'; end; // ...... ShowMessage(TClass.GetSomething); |
Re: Delphi <> Java : static class
Nun, wenn ich nur Methoden aufrufe hat das bei mir auch schon funktioniert.
Wie aber bekomme ich das auch mit Attributen hin. Habe mit das so gedacht...
Delphi-Quellcode:
type
TClass = class(TObject) private value :String; public class function GetSomething: String; end; class function TClass.Getsomething: String; begin Result := 'GetsomeThing'; end; // ...... var test: TClass; Begin ShowMessage(test.GetSomething); test.value:=5; //hier kommt ohne Create die Zugriffsverletzung |
Re: Delphi <> Java : static class
Klassen-Eigenschaften/Variablen/Konstanten gibt es erst ab Delphi 2006.
|
Re: Delphi <> Java : static class
...du kannst die Variablen allerdings in einen globalen Record auslagern, was dann ungefähr so ähnlich ist wie eine Klassenvariable. (zumindest so ähnlich aussieht. ;) )
|
Re: Delphi <> Java : static class
@ 3_of_8
Mir gehts im wesentlichen um die Vererbung, die bei Rekords ja nicht gegeben ist. @jbg wie sähe das denn aus unter 2006: bin eh am überlegen, ob ich mir Turbodelphi kaufe. |
Re: Delphi <> Java : static class
Zitat:
|
Re: Delphi <> Java : static class
Man kann eine Klasse in Java zwar als static deklarieren, allerdings hat dies einen anderen Effekt: Dadurch wird eine verschachtelte Klasse zu einer Top-Level-Klasse erhoben.
|
Re: Delphi <> Java : static class
Zitat:
Delphi-Quellcode:
type
TTest = class(TObject) private class var FMyProp: Integer; FMySecondProp: string; public class function DoSomething: Integer; static; { eine echte statische Methode ohne versteckten Self: TClass Parameter } class property MyProp: Integer read FMyProp write FMyProp; class property MySecondProp: string read FMySeondProp write FMySecondProp; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:30 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