ehssam Geschrieben 12. September 2008 Geschrieben 12. September 2008 Hallo zusammen, ich habe gerade ein Java-Programm vor mir liegen und versuche es zu verstehen aber ich komme an manchen Stellen gar nicht dahinter, was die zu bedeuten haben. ich Würde mich freuen, wenn ihr mir helfen könntet (ich habe in 10 Tagen eine wichtige Prüfung) Also ein Teil des Programms sieht so aus: public class ClickMe extends Applet implements MouseListener { private int x=-1, y=-1; private static int RADIUS = 7; public void paint(Graphics g) { this.drawBackground(g); } public void drawBackground(Graphics g) { g.setColor(Color.blue); g.fillRect(0, 0, this.getSize().width - 1, this.getSize().height - 1); g.setColor(Color.black); g.drawRect(0, 0, this.getSize().width - 1, this.getSize().height - 1); } Hier meine Fragen: Welche Funktion in der Methode paint hat (Graphics g)? Was bedeutet die Zeile "this.drawBackground(g);"? Was genau ist dieses "this" und welche funktion hat es? Warum wurde in der Methode drawBackground "(Graphics g)" nochmal definiert? Zitieren
Dragon8 Geschrieben 12. September 2008 Geschrieben 12. September 2008 Welche Funktion in der Methode paint hat (Graphics g)? Wie du schon richtig gesagt hast, paint(Graphics) ist eine Methode. Und Graphics g ist 1 Parameter der an diese Methode übergeben wird. Was bedeutet die Zeile "this.drawBackground(g);"? Diese Zeile ruft einfach nur die Methode drawBackground(Graphics), die in dieser Klasse definiert wurde, auf und übergibt das Graphics-Objekt an diese Methode Was genau ist dieses "this" und welche funktion hat es? this ist eine Referenz auf das Objekt dieser Klasse ("ClickMe") zur Laufzeit. Warum wurde in der Methode drawBackground "(Graphics g)" nochmal definiert? Weil die Methode das Graphics-Objekt bearbeitet, und damit es dieses überhaupt "kennt" muss es auch bei dieser Methode als Parameter übergeben werden. Also wenn du sagst du hast bald ne Prüfung vor dir, in der du das brauchst, würde ich dir sehr dringend empfehlen entweder deine Unterlagen nochmal durchzugehen, oder dir ein ordentliches eBook oder Tutorial im Internet zu suchen, in dem du nochmal die Grundlagen der Programmierung durchgehst...Ansonsten dürfte die Prüfung nen Reinfall werden... Zitieren
ehssam Geschrieben 13. September 2008 Autor Geschrieben 13. September 2008 Hallo Dragon8 und danke für deine Hilfe. ich habe schon zwei 2 bücher java ist auch eine Insel und Java von Kopf bis Fuß + die Skripte und sonstige Leermaterial aber für manche Sachen finde ich einfach keine plausible Erklärung. Kannst du auf diesen Referenz this etwas nähr eingehen evtl. mit einem Beispiel? Zitieren
kingofbrain Geschrieben 13. September 2008 Geschrieben 13. September 2008 Servus, das mit dem this ist einfacher als man erst mal glaubt. Nehmen wir an, Du hast eine Klasse Person mit den Eigenschaften firstname und lastname und der folgenden Methode: public void setFirstname(String newFirstname) { this.firstname = newFirstname; } Dann bezieht sich das this.firstname auf die Instanz der Klasse Person, auf der gerade die Methode setFirstname aufgerufen wird. Im folgenden Ausschnitt wirds hoffentlich deutlicher: Person person = new Person(); person.setFirstname("Heribert"); Hier hast Du eine konkrete Instanz von Person in der Variablen person gespeichert. Beim Aufruf der Methode setFirstname wird mit this.firstname der Vorname der konkreten Instanz "person" aus dem zweiten Codeausschnitt verändert. this bezieht sich also innerhalb einer nichtstatischen Methode immer auf das konkrete Objekt zum Zeitpunkt eines Methodenaufrufs. Peter Zitieren
ehssam Geschrieben 15. September 2008 Autor Geschrieben 15. September 2008 Danke jetzt scheint es etwas klarer Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.