Variable von einer Klasse in eine andere Übergeben?

4 Antworten

Eigentlich macht man sowas nicht in der main Methode. Und eine weitere Main-Methode in deiner Klasse3 macht eigentlich auch keinen Sinn..

Das was du aktuell wohl machen willst, geht ohne große Codeänderung bei dir einfach so:

package Klassen;

import java.awt.Graphics;
import javax.swing.JPanel;

public class HauptFenster {


public static void main(String[] args) {

Fenster fenster = new Fenster();
Rechteck panel = new Rechteck();

fenster.add(panel);

while(true){

int high = (int)(Math.random()*200);
int width = (int)(Math.random()*150);
panel.zufall = high;
}
}
}

Auch wenn es nur ein Beispiel sein mag, solltest du von beginn an versuchen, deine Klassen Strukturiert zu halten und dir eine gewisse Sauberkeit anzugewöhnen. - Das sag ich nicht um dich zu ärgern, eher viel mehr, deshalb weil es dein Code ist, und du darauf dein Wissen aufbaust. 

Sprich: hast du Instanz-Variablen schreibe dafür eine getter und setter Methode.

Konkret bei dir in Klasse3:

getZufallszahl();
setZufallszahl(int zahl);

Vermeide viel Code in der main Methode, denn diese soll eigentlich nur dazu dienen deine Anwendung auszuführen.

du musst in der Main klasse ne statische globale variable erstellen...
also public static int random;
und dann eben random den wert der zahl übergeben...
in der 3. Klasse greifst du mit Main.random darauf zu.
wenn du was ni weißt frag nochmal hab grad nicht so viel zeit :)


CrystalixXx  31.03.2016, 19:21

Kann man so machen, wenn man in der prozeduralen Programmierung hängen geblieben ist. Wenn man aber schon eine objektorientierte Sprache nutzt, dann sollte man darauf verzichten und die Parameter von Methoden oder Eigenschaften nutzen.

0
rmnstr  31.03.2016, 18:21

globale variablen für so etwas zu verwenden ist eine sehr schlechte idee. gewöhn dir das gar nicht erst an :P

0

In Java macht man das üblicherweise mit der Getter-Setter-Methode.
Informier dich am besten mal im Internet darüber.
LG Willibergi

Woher ich das weiß:Berufserfahrung – Software-Entwicklung

Die Variablen in der main-Methode habe ich erstellt:

package Klassen;

import java.awt.Graphics;
import javax.swing.JPanel;

public class HauptFenster {

public static int high;
public static int width;

public static void main(String[] args) {

Fenster fenster = new Fenster();
Rechteck panel = new Rechteck();

fenster.add(panel);

while(true){

high = (int)(Math.random()*200);
width = (int)(Math.random()*150);

}
}
}

Nun weiß ich aber nicht wie ich das mit "Main. ..." in die dritte Klasse schreiben muss.

In der dritten Klasse sollten die Werte high und width von der ersten Klasse an x und y in der dritten Klasse übergeben werden.

Klasse:

package Klassen;

import java.awt.Graphics;
import javax.swing.JPanel;

public class Rechteck extends JPanel {

int x;
int y;

public Rechteck(){

this.setSize(500, 500);
}

public void paint (Graphics g){

g.fillRect(x, y, 100, 130);

}
}