Von anderen Objekten aus auf Methoden zugreifen?

Status
Nicht offen für weitere Antworten.
Hallo, ich habe da eine Sammlung Objekte und will, dass ein Objekt auf die Methode eines anderen Objekts zugreift:

Ganz unten in main() erzeuge ich ein Objekt der Klasse Blubb mit Namen XY. nun möchte ich in Zeile 36 auf die Methode inc() des Objekts zugreifen, doch XY ist in Zeile 36 unbekannt.

Wie kann ich richtig auf die Methode zugreifen?
Code:
import java.util.*;
import java.io.*;
import java.sql.*;

class Blubb
{
int i;
  int[] ergebnisse = new int[10];
  public Blubb()
  {
	  System.out.println("Blubb-Konstruktor");
  }
  public void inc()
  {
	ergebnisse[i]=i;
  }
}

class Start extends TimerTask
{
    public void run()  
  {
    System.out.println("Start: ");
    for(int i = 0; i < 10; i++){ 
    	  Timer timer = new Timer(); 
    	  timer.schedule(new Eingabe(), 500 * (i+1));
    	}
   }
}

class Eingabe extends TimerTask
{
	public void run()  
  {
        System.out.println("Platsch ");
        XY.inc();
  }
}

public class Test
{
  public static void main( String args[] )
  {
	Blubb XY = new Blubb();   
    Timer timer = new Timer();
    timer.schedule  ( new Start(), 1000, 15000 );
  }
}
 
übergib XY an Start im Konstruktor als Parameter,
dort wird es in einem Klassenattribut gespeichert,

in run() von Start das gleiche Spiel, XY an Eingabe weiterreichen

--------

Variablen klein schreiben!

auf Zeilennummern achten, Zeile 36 ist leer
 
Danke!!
Meinst Du so? (Siehe code) So funktioniert es dann bei mir.
...Ist das dann eigentlich überall dasselbe Objekt XY der Klasse Blubb? Scheint so, der Zähler der Methode Blubb.inc zählt jedenfalls hoch, wie gewünscht.
Ist das die Standardvorgehensweise, wenn ein Objekt Methoden eines anderen Objekts aufruft oder habe ich hier bald den ganzen Speicher mit Kopien von Objekten voll?
Code:
import java.util.*;
import java.io.*;
import java.sql.*;

class Blubb
{
int i;
  int[] ergebnisse = new int[10];
  public Blubb()
  {
	  System.out.println("Blubb-Konstruktor");
  }
  public void inc()
  {
	  System.out.println("INC !");
	  i++;
	  if(i>3)System.out.println("größer 3.");
  }
}

class Start extends TimerTask
{
	  Blubb temp;
	  public Start(Blubb a)
	  {
		  temp=a;
	  }

	public void run()  
  {
    System.out.println("Start: ");
    for(int i = 0; i < 10; i++){ 
    	  Timer timer = new Timer(); 
    	  timer.schedule(new Eingabe(temp), 500 * (i+1));
    	}
   }
}

class Eingabe extends TimerTask
{
	  Blubb temp;
	  public Eingabe(Blubb a)
	  {
		  temp=a;
	  }

	public void run()  
  {
        System.out.println("Platsch ");
  	    temp.inc();
  }
}

public class Test
{
  public static void main( String args[] )
  {
	Blubb XY = new Blubb();   
    Timer timer = new Timer();
    timer.schedule  ( new Start(XY), 1000, 15000 );
  }
}
 
passt erstmal so,
und du hast nur ein Objekt, ja, von Blubb zumindest,
aber viele Referenzen darauf
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben