# Eine Variable in mehreren Klassen



## Guest (25. Aug 2004)

Wie richte ich eine Variable ein, die in mehreren Klassen verwendet werden kann. So ne Art globale Variable.

In der einen Klasse soll sie gesetzt werden, und in einer anderen abgefragt werden. Wie kann ich ein solches Problem lösen ?


----------



## Roar (25. Aug 2004)

plll... lies dir mal was zum thema OOP durch
variable public machen und eine getter methode


----------



## Guest (25. Aug 2004)

public machen war mir klar, nur wie sieht diese getter methode aus ?


----------



## foobar (25. Aug 2004)

Roar hat gesagt.:
			
		

> plll... lies dir mal was zum thema OOP durch
> variable public machen und eine getter methode



Entweder du machst die Variable public oder erstellst getter und setter. Denn eine public Variable kannst du auch ohne getter/setter ansprechen.


----------



## foobar (25. Aug 2004)

```
private int myvar;
public void setMyvar(int i)
{
   this.myvar = i;
}

public int getMyvar()
{
 return myvar;
}
```


----------



## Guest (25. Aug 2004)

aber das ist doch jetzt nur zwischen 2 verschiedenen funktionen, oder nicht ?

das funktioniert ja nicht für 2 verschiedene klassen !!!


----------



## meez (25. Aug 2004)

Anonymous hat gesagt.:
			
		

> aber das ist doch jetzt nur zwischen 2 verschiedenen funktionen, oder nicht ?
> 
> das funktioniert ja nicht für 2 verschiedene klassen !!!



Doch...da du ja ein Objekt dieser Klasse in der anderen hast...

Aber wenn du nicht mit OO hantieren willst, kannst du auch static brauchen...(Ist zwar nicht zu empfehlen)...


```
public class cls1 {
   public static String s = "klasse 1";
}


public class cls2 {
   public void methode() {
      cls1.s = "Nein, Klasse 2";
      System.out.println(cls1.s);
   }
}
```


----------



## foobar (25. Aug 2004)

Anonymous hat gesagt.:
			
		

> aber das ist doch jetzt nur zwischen 2 verschiedenen funktionen, oder nicht ?
> 
> das funktioniert ja nicht für 2 verschiedene klassen !!!



Wenn du Probleme hast auf die Instanz dieser Klasse zu zugreifen, kannst du ja ein Singleton benutzen. Falls daß in diesem Fall möglich ist, was ich im Moment nicht beurteilen kann.


----------



## Guest (25. Aug 2004)

Die Übergabe klappt wunderbar, nur irgendwie habe ich auch einen Fehler bei meinem ActionListener. Ich habe einen Button:


```
public class ButtonPanel extends Panel implements ActionListener{
   private MainFrame owner;
   public static String print;
   
   public ButtonPanel( MainFrame owner ){
      this.owner = owner;
     
      //Test-Button
	  Button button = new Button("Test");
	  button.setBounds( 20, 60, 70, 25 );
	  owner.add(button);
    }
   
   
    public void actionPerformed(ActionEvent event){
	  String cmd = event.getActionCommand();
		
		if (cmd.equals("Test"))
		{
			print = "Test",
		} 
		
}
```

Nun soll bei einem Klick auf den Button print auf "Test" gesetzt werden. Klappt aber nicht. Und ich weiß nicht warum :-(


----------



## Beni (25. Aug 2004)

Dir fehlt ein "button.addActionListener( this )".


----------



## Guest (25. Aug 2004)

stimmt. alles klar. danke


----------

