method vs function
Übersicht

![]() |
BMaxlerBetreff: method vs function |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was ist der Unterschied zwischen method und function?
Meine Suche hat leider kein Ergebnis gebracht. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Methoden werden auf dem Objekt selbst ausgeführt (-> es gibt ein self was das Objekt darstellt). Das gleiche gilt für "field" auf Types
Function werden hingegen immer nur auf der Klasse ausgeführt, sie haben kein self also kein Objekt das sie ausführt. Das gleiche gilt für "global" und "const" auf Type Am besten einfach ma in der Hilfe nachsehen und herumexperimentieren (falls du kein englisch kannst, nutz kein BM sorry, es gibt kein deutsches BM) moved da im falschen Board |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
BMaxler |
![]() Antworten mit Zitat ![]() |
---|---|---|
So, habe ein bisschen rumprobiert.
Folgendes Beispiel funktioniert nur mit method: Code: [AUSKLAPPEN] Type test
Field x:Int Method change(c:Int) x = c EndMethod Method printout() Print x EndMethod Function printout2() Print x EndFunction EndType Local x:test = New test x.change(3) x.printout() Der Aufruf x.printout2() ist nicht zulässig. Wie greife ich denn auf types zu, ohne ein Objekt mit new zu erstellen? |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Indem du den Klassennamen nutzt.
Dies wäre in diesem fall test.printout() Aber das wird nicht funktionieren. Denn x ist ein Field, das heisst es existiert auf Objekten, nicht jedoch für die Klasse im allgemeinen. Du kannst in Funktionen, wenn du nicht auf einem Objekt explizit arbeitest, nur auf global und const der entsprechenden Klasse zugreifen. (static in C++) |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
- Zuletzt bearbeitet von Dreamora am Mo, Jul 09, 2007 12:55, insgesamt einmal bearbeitet
![]() |
BMaxler |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, ich habs verstanden.
Vielen Dank für die schnellen Antworten. |
||
Lumooja |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Intressant... Ich hab mich immer gewundert, ob man wirklich ein grosses Array von "Daten"-Objekten erstellen sollte, z.B. ein "4D Punkt" Objekt, das z.B. die Methode "SetPos(x,y,z,a)" hat.
Würden dann nicht die einzelnen Methoden Speicher fressen? Wenn ja, sollte ich dann nicht eher eine seperate minimal "4D Punkt" Klasse erstellen die nur die Koordinaten enthält, und dann eine seperate "Methoden für 4D Punkt" Klasse erstellen? Oder sollte man immer Funktionen als Methoden verwenden, wenn diese keinen Speicher fressen (außer vielleicht die Referenzaddresse)? |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn du dir über solche Dinge Gedanken machen willst, bleibst du besser bei C++ wo du mit solchen Dingen mehr Performance rausholen kannst ![]() In BM ist der Unterschied sehr minimal und meist eher zu gunsten von OO und methoden als von Funktionen (die eine Referenz haben im Unterschied zu Methoden) welchen du das Objekt überhaupt erst übergeben musst. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group