Fragen zu OOP syntax
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
SpionAtomBetreff: Fragen zu OOP syntax |
Mo, Okt 10, 2005 17:04 Antworten mit Zitat |
|
---|---|---|
Also vorweg: objektorientiert zu programmieren habe ich in der Schule mit Java gelernt. Ich möchte es aber auch in BlitzMax können
Aber vieles habe ich noch längst nicht raus. Werden referenzlose Objekte automatisch gelöscht (wie bei Java mit dem Garbage-collector), oder muss man das selbst machen? Wie macht man eine null-Referenz? Quasi ein leeres Objekt. Wie kann man bestimmte Methoden public oder private machen? Ich werde aus der Hilfe nicht schlau. Danke im vorraus Spion |
||
TheShadowModerator |
Mo, Okt 10, 2005 17:56 Antworten mit Zitat |
|
---|---|---|
Ja Obj. ohne Referenz werden gekillt
LOCAL myvar:mytype ist autom. NULL oder myvar=NULL nachträglich noch |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
SpionAtom |
Mo, Okt 10, 2005 21:31 Antworten mit Zitat |
|
---|---|---|
Danke für die Hilfe.
Aber nochmal konkret zum private/public problem: Wo setze ich private ein, um die Fields anzahl:Int und cKnoten:stackKnoten pivat zu machen? Und wo kommt das public hin, wenn die Methodes alle öffentlich sein sollen? Code: [AUSKLAPPEN] Type Stack Field anzahl:Int = 0 Field cKnoten:stackKnoten Method isEmpty:Int() Return (anzahl = 0) End Method Method add(pInt:Int) If anzahl = 0 Then self.cKnoten = New stackKnoten self.cKnoten.setInfo(pInt) 'cKnoten.setPre() 'Der erste Knoten hat keinen Vorgänger Else oKnoten:stackKnoten = self.cKnoten self.cKnoten = New stackKnoten self.cKnoten.setInfo(pInt) self.cKnoten.setPre(oKnoten) End If anzahl = anzahl + 1 End Method Method remove() If anzahl = 1 Then anzahl = 0 End If If anzahl > 1 Then self.cKnoten = self.cKnoten.getPre() anzahl = anzahl - 1 End If End Method Method show:Int() Return self.cKnoten.getInfo() End Method End Type |
||
Dreamora |
Di, Okt 11, 2005 1:32 Antworten mit Zitat |
|
---|---|---|
garnicht.
Es gibt kein private - public in klassen. Du kannst nur komplette Codeblöcke privat - public machen, also komplette klassen. in der FAQ habe ich vor "langem" eine kurze Erklärung zu Information Hidding in Modulen gemacht. Dies ist aktuell die einzige Möglichkeit private - public sinnvoll zu nutzen. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
SpionAtomBetreff: Also ich hab da noch ein Problem |
So, Okt 16, 2005 12:35 Antworten mit Zitat |
|
---|---|---|
Folgender Code wird beendet, sobald diese Zeile kommt:
Player[i] = New Snake Gibt es da was zu beachten, wenn ich Arrays und Objekte benutze? Code: [AUSKLAPPEN] Type Snake 'Die OOP-Fähigkeit ist natürlich auch ein Hammer Field xdir:Int Field ydir:Int Field k_up:Int Field k_down:Int Field k_left:Int Field k_right:Int Field headnode:node EndType Type node Field xpos:Int Field ypos:Int Field suc:node EndType Global anzahl_spieler:Int = 1 Global Player:Snake[anzahl_spieler] For i = 1 To anzahl_spieler Player[i] = New Snake Next |
||
Suco-XBetreff: ....... |
So, Okt 16, 2005 12:41 Antworten mit Zitat |
|
---|---|---|
Arrays fangen bei 0 an und hören 1 vor der Grösse auf.
Also entweder Code: [AUSKLAPPEN] For i = 0 To anzahl_spieler-1 Oder die neue Bmax Variante dafür Code: [AUSKLAPPEN] For i = 0 until anzahl_spieler Zweiteres ist das gleiche wie ersteres. Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
SpionAtom |
So, Okt 16, 2005 12:46 Antworten mit Zitat |
|
---|---|---|
Cool! Danke ging schnell! | ||
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group