Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Bin gerade am Anfang meiner Javalaufbahn.
Es geht um Methoden deren Parameter vom Typ einer Klasse sind. Wie z.B
"public void mouseDragged(MouseEvent ev).." oder "public void paint( Graphics g )..".
Die Variblen ev oder g sind ja noch nicht instanziert oder. Muß man nicht zuerst mit "new" ein konkretes Objekt der Klasse Graphics oder MouseEvent erzeugen.
Kann mir das jemand erklären?
Danke für die Antwort !
Dass diese Mehtoden von anderen Objekten aufgerufen werden ist mir klar. Aber wo wir die Instanz dieser Klassen (Graphics oder MouseEvent erzeugt). Ich vermissen eine Instanzierung wie: Graphics g = new Graphics(); oder MouseEvent ev = new MouseEvent();
Natürlich bei allen. Die JRE Klassen-Bibliothek arbeitet mit den gleichen Mitteln wie du sie hast.
Ein Objekt ruft eine Methode eines anderen Objekts auf, und kann bei bedarf Parameter übergeben.
Diese Methodik ist integraler Bestandteil der Sprache Java.
Was genau ist für dich an diesem Konzept befremdlich? Vieleicht kann ich dir die Frage dann besser beantworten.
Eigentlich ist mir alles unklar. Aber vielleicht könntes du, wenn die Lust hast, ein lokales Beispiel schreiben, wo cih mir das irgendwie bildlich vorstellen kann.
Vielleicht ausgehend von einer Klasse Auto, sodass in einer Ableitung die Methode xy(Auto a) vorkommt.
Das würde mir sicher weiterhelfen.
Das würde dir bei deinen Verständnisschwierigkeiten nicht helfen.
Es geht darum, daß andere Methoden im System die Objekte erzeugen
(Also die new-Aufrufe gibt es irgendwo immer) und diese dann an
deine Methode übergeben.
Die Verkäuferin im Bäckerladen um die Ecke muß ja schließlich das Brötchen,
das sie dir verkauft, nicht selbst gebacken haben.
Hier mal ein kleines Code-Beispiel. Der erste Teil ist das, was man sich vorstellen kann, dass im System abläuft:
Code:
Graphics graphics = new Graphics();
//OK, dein Beispiel ist vielleicht nicht das beste. Die Graphics werden natürlich irgendwie nativ erzeugt, aber das ist hier nicht so wichtig...
graphics.doSomething();
guentersFrame.paint(graphics);
und bei dir steht dann:
Code:
public void paint (Graphics xyz)
{
//hier kannst du xyz verwenden, wie du willst. Es ist (eine Referenz auf) das gleiche Objekt, wie das "graphics" oben. Man nennt es eben oft "g"
}