Wie verwende ich "private"?
Übersicht

![]() |
SmilyBetreff: Wie verwende ich "private"? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Abend,
Eventuell stelle ich mich gerade nur ein bisschen doof an, aber ich bekomms einfach nicht hin, private richtig zu verwenden. Und bei google und im forum fande ich dazu auch nix großartiges. Kann mir mal jemand einen Codebeispiel geben? Am besten mal für ein Type mit einem Feld auf das von aussen nicht direkt zugegriffen werden kann, aber mittels einer get- und set-methode Ich habe es so versucht, funktioniert aber nicht. Code: [AUSKLAPPEN] Private
Type Test Field bla Method setBla(x) Self.bla = x EndMethod Method getBla() Return self.bla EndMethod EndType inst:Test = New Test 'Das soll Funktioniern... inst.setBla(3) Print inst.getBla() 'Das nicht... inst.bla = 5 Print inst.bla Was mache ich falsch? |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
kog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Private nützt dir meist nur was in einem Modul. Da kannst du Private Variabeln machen, bzw. bereiche. Und nur das Modul selber kann auf diese zugreifen.
Beispiel Code: [AUSKLAPPEN] Private
Global nurmodul:Int = 1 Type test End Type Public Global kannjeder:Int=1 |
||
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Private makes a Constant, Global variable or Function only accessible from within the current source file
Sprich, du kannst innerhalb des files wild rumfragen, aber von einer anderen sourcefile sind die Sachen nicht zu erreichen. Leider gibt es in BMax kein wirkliches Public/Private wie in Java oder C++. |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hoi, danke für die schnelle Hilfe. Allerdings habe ich immer noch ein kleines Problem.
Ich hab mich grad in das Thema modulerstellung eingelesen, und versucht mein erstes Modul zu schreiben: Code: [AUSKLAPPEN] Private
Type TTest_priv Field x EndType Public Type TTest Extends TTest_priv Method setX(x) Self.x = x EndMethod Method getX() Return x EndMethod EndType (Soweit ich das ganz bist jetzt verstanden habe, kann ich nur ganze type-blöcke als private oder public definieren, nicht einzelne felder, deswegen der weg mit zwei types) Es wird ohne fehler compiliert, aber wenn ich versuche, den Type zu verwenden, kommt eine Fehlermeldung Code: [AUSKLAPPEN] Import smily.myfirstmodule
test:TTest = New TTest Code: [AUSKLAPPEN] Compile Error: Type 'TTest_priv' not found
in der myfirstmodule.debug.win32.x86.i: Code: [AUSKLAPPEN] import brl.blitz
TTest^TTest_priv{ <-- hervorgehobene zeile -New%()="_smily_myfirstmodule_TTest_New" -Delete%()="_smily_myfirstmodule_TTest_Delete" -setX%(x%)="_smily_myfirstmodule_TTest_setX" -getX%()="_smily_myfirstmodule_TTest_getX" }="smily_myfirstmodule_TTest" Wieso nimmt der denn jetzt den type ttest_priv garnicht mehr mit rein? |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Die klasse ist schon da im Object File. Aber sie ist nimmer in der von dir gecheckten text file denn die klasse ist nicht public also können klassen von aussen auch nicht darauf zugreifen und das können sie für alles was da gelistet wird.
Hab dazu in blitzmax anfangszeiten mal nen artikel geschrieben wie man hiding in modulen handhaben kann / muss. private heisst: darf nur im gleichen source file verwendet werden, nirgend sonst, also auch nicht von extern instanziert oder sonstwie mit der aussenwelt in relation stehen. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group