Klassen Von einer Klasse auf eine erbende Klasse zugreifen

DaCrazyJavaExpert

Bekanntes Mitglied
Angenommen ich habe die Klasse "EinSpielMitGUI" welche von JFrame erbt.
Über den Konstruktur der Klasse greife ich auf die Superklasse zu, und erstelle ein Frame:
Java:
public class EinSpielMitGUI extends JFrame {
    public EinSpielMitGUI() {
        super ("Ein Spiel mit GUI")
            this.setSize (350, 400);
                this.setDefaultCloseOperarion (EXIT_ON_CLOSE);
        }
}

Wie kann ich auf diesen Konstruktor, oder bessergesagt auf das JFrame/ das "this" außerhalb des Konstruktors zugreifen , also bespielsweise eine Methode start () in einer anderen Klasse :
Java:
public class EinSpielMitGUIStart {
    void start() {
        this.setVisible(true); //was muss statt dem "this" da stehen?
    }
Also ja, nochmal meine allgemeine Frage:
Wie muss ich das "this" außerhalb des Konstruktors oder in anderen Klassen ersetzten?

Danke für die Hilfe.
PS: Und falls ihr noch Zeit habt, könnt ihr noch bei meiner anderen Frage vorbeischaun. Würde mich freuen 😛.
Danke:
https://www.java-forum.org/thema/jlabels-werden-nicht-angezeigt.178089/
 
Ich verstehe nicht so ganz wie mir eine Referenz bei meinem Problem helfen soll...
Kannst du mich aufklären?
Also unter Referenz verstehe ich gerade sowas hier:
Java:
EinSpielMitGUI einSpielMitGUI = new EinSpielMitGUI();
Und wie geh ich weiter vor? Soweit war ich auch schon gewesen, aber wie komme ich jetzt in den Konstruktor oder gar an das JFrame?
 
Deine Fragen sind jetzt etwas vermischt.
Hast du dich schon mit static beschäftigt?
Und extends heißt, dass die Klasse ein JFrame IST!!!
 
Angenommen ich habe die Klasse "EinSpielMitGUI" welche von JFrame erbt.
Wie kann ich auf diesen Konstruktor, oder bessergesagt auf das JFrame/ das "this" außerhalb des Konstruktors zugreifen , also bespielsweise eine Methode start () in einer anderen Klasse :
Java:
public class EinSpielMitGUIStart {
    void start() {
        this.setVisible(true); //was muss statt dem "this" da stehen?
    }
Also ja, nochmal meine allgemeine Frage:
Wie muss ich das "this" außerhalb des Konstruktors oder in anderen Klassen ersetzten?

Wie du das "this" außerhalb der Klasse (bzw. in anderen Klassen ersetzen musst hat dir JStein52 schon gezeigt.
Innerhalb deiner Klasse "EinSpielMitGUIStart" bleibt es einfach "this". Da die Klasse ja von JFrame erbt ist sie selber ein JFrame, du kannst mittels "this" ohne Probleme auf die Methoden der Superklasse zugreifen (sofern deren Sichtbarkeit es erlaubt).
 
Mein Ziel war es wigentlich in einer extraklasse diese startmethode zu schreiben und sie in der mainmethode mit:
Java:
EinSpielMitGUI einSpielMitGUI =  new EinSpielMitGUI();
einSpielMitGUI.start ();
auszuführen.
 
Mein Ziel war es wigentlich in einer extraklasse diese startmethode zu schreiben ....
Hört sich konfus an, eine Methode einer Klasse in einer anderen Klasse schreiben zu wollen 😉
Natürlich kannst du eine Referenz deines Objektes an eine Methode übergeben und die gewünschten Sachen durchführen

Java:
EinSpielMitGUI einSpielMitGUI =  new EinSpielMitGUI();
startGame(einSpielMitGUI);

....

public static void startGame(EinSpielMitGUI game) {
    // INIT AND START GAME
}
 

Zurück
Oben