Methode paint(Graphics g) { }

hallo liebe Leute!
hab eine frage: wenn man im applet was zeichnen will, benutzt man diese methode paint, wieso paint(Graphics g) { g.drawString(„hall!“, 20, 20);}, aber ich meine diese parameter g ist noch gar kein objekt, wieso kann man schon seine methode zugreifen?
ich dachte man sollte so schreiben: g = new Graphics(), g.drawString(…).
wer kann mir das erklaeren? waere sehr dankbar!

gruss, Steve

Hallo Steve,

hab eine frage: wenn man im applet was zeichnen will, benutzt
man diese methode paint, wieso paint(Graphics g) {
g.drawString(„hall!“, 20, 20);}, aber ich meine diese
parameter g ist noch gar kein objekt, wieso kann man schon
seine methode zugreifen?
ich dachte man sollte so schreiben: g = new Graphics(),
g.drawString(…).

Da muss ich wohl ein bißchen ausholen.
Die Methoden definieren das Verhalten eines Objektes. Im Fall eines Applets definiert die Methode paint, das Verhalten, wenn etwas gezeichnet werden soll. Das Wörtchen „wenn“ ist hier entscheidend, denn man selber (also die Instanz Deines Applets) kann i.A. nicht entscheiden, wann Sie sich neu zeichnen muß.
Dies macht das AWT-Subsystem. Dieses instantiiert auch den Parameter g korrekt, so dass man auf die Methoden von g zugreifen kann.
Falls g noch nicht instantiiert ist (z.B. wenn es noch null ist), dann kann man auch nicht auf die Methoden zugreifen.
Es wird dann eine Exception geschmissen (im Beispiel eine NullPointerException)

Merke: Die Methoden die man aus dem JDK überlädt sind im allgemeinen (was die Parameter betrifft) wohldefiniert.
Sprich: Man kann die Parameter gleich benutzen.

Hoffentlich war das nicht zu kompliziert.
Gruss,
Frank