Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Variable an der Klasse ansprechen (https://www.delphipraxis.net/109507-variable-der-klasse-ansprechen.html)

nEmai 2. Mär 2008 22:47


Variable an der Klasse ansprechen
 
Hallo miteinander,

habe eine raltiv simple Frage. Folgender Code:

Delphi-Quellcode:
type
  TBruch = class
    constructor Create(iZaehler, iNenner: Integer); overload;
    strict private
      iZaehler,
      iNenner: Integer;
      function ggT(iZahl1, iZahl2: Integer): Integer;
      procedure Kuerzen();
    public
      function getZaehler(): Integer;
      function getNenner(): Integer;
      procedure setValue(iZaehlerSet, iNennerSet: Integer);
      procedure Add(TB_addBruch: TBruch);
      procedure Subtract(TB_subtBruch: TBruch);
      procedure Multiplicate(TB_multBruch: TBruch);
      procedure Divide(TB_divBruch: TBruch);
  end;

implementation

constructor TBruch.Create(iZaehler, iNenner: Integer);
begin
  inherited Create;
  iZaehler:= iZaehler;
  iNenner:= iNenner;
end;
Wie das geübte Auge vielleicht sieht, funktioniert die Variablenübergabe im Konstruktor nicht.
Meine Frage ist nun, wie kann ich die iZaehler unterscheiden? Also das übergebene und das, das am Objekt hängt.

Ich wüsste es in Java, da müsste man this.iZaehler:= iZaehler; schreiben.
Wie geht das in Delphi?

Bitte nicht den Tipp "Änder doch einfach die Namen.".
(Habe ich schon in der Procedure setValue, aber die Lösung gefällt mir nicht.)

omata 2. Mär 2008 22:50

Re: Variable an der Klasse ansprechen
 
Delphi-Quellcode:
constructor TBruch.Create(iZaehler, iNenner: Integer);
begin
  inherited Create;
  self.iZaehler:= iZaehler;
  self.iNenner:= iNenner;
end;
Edit: habe nochmal genau gelesen.

Edit2: Der Konstruktor gehört auch in den Public-Bereich.

Gruss
Thorsten

grenzgaenger 2. Mär 2008 22:52

Re: Variable an der Klasse ansprechen
 
Tip:
Delphi-Quellcode:
constructor TBruch.Create(aZaehler, aNenner: Integer);
begin
  inherited Create;
  iZaehler:= aZaehler;
  iNenner:= aNenner;
end;
und wenn es sein muss, auch so...
Delphi-Quellcode:
constructor TBruch.Create(iZaehler, iNenner: Integer);
begin
  inherited Create;
  self.iZaehler:= iZaehler;
  self.iNenner:= iNenner;
end;

nEmai 2. Mär 2008 22:57

Re: Variable an der Klasse ansprechen
 
Wow das geht ja wirklich fix hier, danke. :thumb:

Noch eine Frage zum aZaehler.
Mein i soll ja ein Integer darstelln. Wie kommt man auf a? Standard bei Übergabewerten?
(Ich frage weil ich mein Code halbwegs "schön" bzw. "richtig" gestalten will.)

omata 2. Mär 2008 22:58

Re: Variable an der Klasse ansprechen
 
Ja, das "A" ist der Standard in der VCL.

nEmai 2. Mär 2008 23:01

Re: Variable an der Klasse ansprechen
 
Alles klar, dann änder ich die Namen halt doch. :mrgreen:

Nochmals danke. :roll:

omata 2. Mär 2008 23:04

Re: Variable an der Klasse ansprechen
 
Schau auch mal hier.

Ralf Kaiser 3. Mär 2008 08:52

Re: Variable an der Klasse ansprechen
 
Zitat:

Zitat von nEmai
Wow das geht ja wirklich fix hier, danke. :thumb:

Noch eine Frage zum aZaehler.
Mein i soll ja ein Integer darstelln. Wie kommt man auf a? Standard bei Übergabewerten?
(Ich frage weil ich mein Code halbwegs "schön" bzw. "richtig" gestalten will.)

Das "a" kommt wahrscheinlich von "a Zaehler" also: "ein Zaehler". (jedenfalls habe ich dieses "aXYZ" immer so verstanden/benutzt)

Christian Seehase 3. Mär 2008 09:05

Re: Variable an der Klasse ansprechen
 
Moin Alfi,

das A wird, üblicher Weise, als Präfix bei Parametern verwendet, und steht für Argument.
(Das P ist ja schon durch Pointer belegt).


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:50 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