Was ist Method in Blitzmax ?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

funkheld

Betreff: Was ist Method in Blitzmax ?

BeitragDo, Aug 11, 2016 23:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, guten Tag.

Was bitte ist Method in Blitzmax ?


Danke.
GRuss

Xeres

Moderator

BeitragDo, Aug 11, 2016 23:48
Antworten mit Zitat
Benutzer-Profile anzeigen
~VERSCHOBEN~


Sag mir nicht, dass du zu dem Thema nichts selbst finden kannst.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Mathias-Kwiatkowski

BeitragFr, Aug 12, 2016 0:14
Antworten mit Zitat
Benutzer-Profile anzeigen
ich helfe dennoch auch wenn ich die fixe simple hilfe über skype angeboten habe, ich erkläre nun keine methoden den das findest du zu hauf hier... aber hier ein kleines bsp für dich

Code: [AUSKLAPPEN]
SuperStrict

Type TAuto
   Field Farbe:String
   Field Marke:String
   
   Function Anlegen:TAuto (Marke:String)
      Local A:TAuto = New TAuto
      A.Marke = Marke
      A.Farbe = "Standart Weiß"
      Return A
   End Function
   
   Method Ausgabe()
      Print Self.Marke + " " + Self.Farbe
   End Method
   
   Method Lackiere(Farbe:String)
      Self.Farbe = Farbe
   End Method
End Type

Local MeinAuto:TAuto = tauto.Anlegen("BMW")

MeinAuto.Ausgabe
MeinAuto.Lackiere "Blau"
MeinAuto.Ausgabe
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017
 

funkheld

BeitragFr, Aug 12, 2016 8:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja danke für die Hilfe.

Gruss

Midimaster

BeitragFr, Aug 12, 2016 9:33
Antworten mit Zitat
Benutzer-Profile anzeigen
1.
Die Unterscheidung in METHOD() und FUNCTION() gibt es nur in TYPES. Die einzelnen Elemente eines Types nennt man "Instanzen". Ihre Eigenschaften werden in FIELDS abgelegt.
2.
Zunächst grundsätzlich: METHOD() arbeitet wie FUNCTION(). Allerdings ist eine Methode nicht so "global", sondern sie ist ähnlich wie das FIELD eine "Kind" der Instanz.
3.
Bereits beim Aufruf der METHOD() kennt diese also ihre Instanz und deren Fields.
4.
Im Code wird die METHOD() wie das FIELD mit einem Punkt hinter der Instanz geschrieben. Vielleicht hast Du sowas schon mal genutzt, ohne dir großartig Gedanken darüber zu machen, dass dies bereis eine METHOD() ist:
BlitzMax: [AUSKLAPPEN]
Liste:TList= New TList
Liste.AddLast Irgendwas



BlitzMax: [AUSKLAPPEN]
Type TTest
Field X%

Method Set(xx%)
x=xx
End Method

Method Ausgabe()
Print x
End Method

End Type

Local A:TTest= New TTest()
A.Set 7
A.Ausgabe()


Das ganze ist sehr praktisch und hält den eigenen Code übersichtlicher, weil ja beim Aufruf einer METHOD anders als bei dem Versuch das gleiche über eine FUNCTION zu machen, die Parameter nicht übergeben werden müssen.

Grundsätzlich käme man auch ohne METHOD zurecht. Es gibt immer einen alternativen Weg. Aber es wird mit METHOD deutlcih eleganter.
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe
 

funkheld

BeitragFr, Aug 12, 2016 12:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die Beispiele.

Gruss

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group