Klassen Klasse in anderer Klasse aufrufen

_Anonymus

Mitglied
Hallo,


ich bin neu hier (Java Anfänger noch dazu) und schreibe ein kleines Spiel in Java. Ich möchte hierzu zwei Level programmieren und jedes Level in eine eigene Klasse packen, welche ich dann in der "Hauptklasse" aufrufe. Aber es funktioniert einfach nicht !!! :mad: :)

Hier mein Beispiel:


Meine "Hauptklasse"

Java:
class TicTacToe
{
                                        // Hiervor erfolgt dann ne Wahl des Levels, ist jetzt aber uninteressant...

  if (levelwahl == 0) 								

  {
  level1 neu = new level1();   // Hier sollte dann eigentlich die Klasse aufgerufen werden?!
  }
        
  else if (levelwahl == 1) 				
  {
  ...	
  }


Eine meiner Levelklassen

Java:
public class level1 extends TicTacToe
{
	
	public static void main(String[] args)    // Das hier soll dann gemacht werden
	{
	System.out.println("hallo!");
	}

}






Natürlich ist das Programm ausgeschmückter, nur an diesem Teil haperts. Ich bekomm einfach nichts auf den Schirm! Wenn ich das Level auswähle, sollte ja dann eigentlich auf der Konsole "hallo!" erscheinen, aber das Programm läuft und es passiert: Nichts! Was mache ich falsch?

Ich bedanke mich schonmal im Vorraus...

P.S.: Ich bin noch ziemlicher Anfänger in Sachen Java, deswegen diese "sehr einfache" Frage, die es wahrscheinlich für die meisten von euch ist :)
 

Timothy Truckle

Top Contributor
Was mache ich falsch?
Ohne den kompletten Quellcode ist das schwer zu sagen, außer, dass ein Programm immer nur eine
Code:
main
Methode braucht, nicht jede Klasse.

Was man aber sagen kann ist, dass Du den Sinn der Vererbung noch nicht verstanden hast. Ist ein Level ein TickTackToe? Ich würde sagen nein, denn das Spiel
Code:
besteht
aus verschiedenen Level und diese Beziehung wird nicht über Vererbung realisiert.

Außerdem: worin unterscheiden sich die Level?
Gibt es wirklich unterschiedliches Verhalten? Oder ändert sich das Verhalten nur abhängig von Eigenschaften des Levels (z.B Spielstärke)?

Und als letztes natürlich der obligatorische Hinweis, die Namenskonventionen einzuhalten! Code Conventions for the Java Programming Language: Contents

bye
TT
 

_Anonymus

Mitglied
Die Level unterscheiden sich so, dass bei Level eins der Computer per random einen Zug macht in den TicTacToe Rahmen und Level zwei wird eine KI darstellen, wo der Computer nicht verlieren kann. Aber das ist für mein Problem ja erst mal völlig egal, jedenfalls unterscheiden sich die Level und jedes der beiden Level soll eine eigene Klasse bekommen.

das ich die main methode in der Level Klasse rausgenommen habe, habe ich schon probiert, aber es funktioniert trotzdem nichts :(

ist das mit

Java:
level1 neu = new level1();

überhaut richtig, wenn ich eine andere Klasse an dieser Stelle aufrufen möchte?


Und das mit der Vererbung....den extends Parameter habe ich nur schonmal eingefügt, weil ich später methoden aus der Hauptklasse in die Level Klasse übernehmen möchte. Aber es geht mir ja vorerst nur überhaupt mal darum, wie ich eine Klasse in einer anderen Klasse aufrufen kann, denn bei mir funktioniert es nicht...
 

Timothy Truckle

Top Contributor
Die Level unterscheiden sich so, dass bei Level eins der Computer per random einen Zug macht in den TicTacToe Rahmen und Level zwei wird eine KI darstellen, wo der Computer nicht verlieren kann. Aber das ist für mein Problem ja erst mal völlig egal, jedenfalls unterscheiden sich die Level und jedes der beiden Level soll eine eigene Klasse bekommen.
Es ist auch OK, dass die Level von etwas erben, dass gemeinsame Funktionalität bereit stellt, aber eben nicht vom Spie...

das ich die main methode in der Level Klasse rausgenommen habe, habe ich schon probiert, aber es funktioniert trotzdem nichts :(
Das ist eben so, wenn man code, der nicht ausgeführt wird entfernt, das ändert nichts am Verhalten der Anwendung.


ist das mit
Java:
level1 neu = new level1();
überhaut richtig, wenn ich eine andere Klasse an dieser Stelle aufrufen möchte?
Du kanst Klassen nicht "aufrufen". Du kannst statische Methoden in Klassen aufrufen (
Code:
Klassenname.methodenName(...)
) oder Methoden von Objekten (
Code:
variablenName.methodenName()
).

Und dass hast Du hier gemacht: ein Objekt der Klasse
Code:
Level1
zu erzeugt und dies der Variablen
Code:
neu
zugewiesen.
Und das mit der Vererbung....den extends Parameter
das ist kein Parameter sondern ein Schlüsselwort.

habe ich nur schonmal eingefügt, weil ich später methoden aus der Hauptklasse in die Level Klasse übernehmen möchte.
Dann solltest Du diese Methoden auch in die Level-Klasse (beziehungsweise deren künftige gemeinsame Oberklasse) verschieben.
Einfach mal so auf Verdacht zu vererben führt früher oder Später dazu, dass der Code nur mit hohem Aufwand verändert werden kann.

Aber es geht mir ja vorerst nur überhaupt mal darum, wie ich eine Klasse in einer anderen Klasse aufrufen kann, denn bei mir funktioniert es nicht...
Hast Du das Tutorial schon mal durchgearbeitet? Lesson: Classes and Objects (The Java™ Tutorials > Learning the Java Language)

bye
TT
 

_Anonymus

Mitglied
Du kanst Klassen nicht "aufrufen". Du kannst statische Methoden in Klassen aufrufen (
Code:
Klassenname.methodenName(...)
) oder Methoden von Objekten (
Code:
variablenName.methodenName()
).


Danke!! Das war was ich suchte....
 

Crian

Top Contributor
Für eine Leveloberklasse würde sich wohl eine Klasse Namens
Code:
Level
Sinn machen. Da kann Basismaterial / Methoden rein, die in allen Arten von Leveln gebraucht werden können. Dann kannst du auch getrost deine Klasse für das erste Level
Code:
LevelOne
*) nennen und von
Code:
Level
ableiten.

Möchtest du ausdrücken, dass von der Basisklasse
Code:
Level
selbst keine Objekte erzeugt werden können, schreibst du das Schlüsselwort
Code:
abstract
vor
Code:
class
.

Generell empfehle ich neben/vor dem Programmieren des Spiels die Lektüre eines guten Buches. Das Inselbuch etwa ist online ganz umsonst zu lesen.


*) Später wirst du bei so einer Benennung irgendwann an den Punkt kommen, dich zu fragen, was denn nochmal das erste Level war. Dann fällt dir vielleicht irgendwann auch ein, dass du gut ein weiteres Level dazwischen schieben könntest. Oder oder. Dann ist es höchste Zeit, deine Klasse umzubenennen. In diesem Fall wäre
Code:
RandomLevel
wohl eine brauchbare Benennung. Nun wirst du dich sofort, wenn diese Klasse irgendwo im Code auftaucht, daran erinnern, dass dahinter die Methode mit zufälligen Zügen steckt.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Zugriff auf Control anderer Klasse Java Basics - Anfänger-Themen 5
D Array in Main Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
J Fehler bei array aus anderer Klasse Java Basics - Anfänger-Themen 3
R TreeSet Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 8
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
KogoroMori21 Objektvariable anderer Klasse übernehmen, Getter/Setter Java Basics - Anfänger-Themen 11
M Klassen Methode in anderer Klasse aufrufen? Java Basics - Anfänger-Themen 3
M Methode in anderer Klasse aufrufen Java Basics - Anfänger-Themen 5
B Mit methode Objekt aus anderer Klasse erstellen Java Basics - Anfänger-Themen 6
M Klassen Klasse aus anderer Klasse "aufrufen" Java Basics - Anfänger-Themen 2
S Java Array Länge aus anderer Klasse lesen Java Basics - Anfänger-Themen 1
I Eigenschaften von Position aus anderer Klasse übernehmen Java Basics - Anfänger-Themen 17
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
CptK Interface Klasse Frame (extends JFrame) aus anderer Klasse schließen Java Basics - Anfänger-Themen 7
T OOP GUI aus anderer Klasse updaten Java Basics - Anfänger-Themen 6
A JButton in anderer Klasse bearbeiten. Java Basics - Anfänger-Themen 2
deatzi Wert aus anderer Klasse lesen Java Basics - Anfänger-Themen 7
J Methoden Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 12
S Eingabe in anderer Klasse verwenden Java Basics - Anfänger-Themen 3
F Interface JButton von anderer Klasse hinzufügen Java Basics - Anfänger-Themen 2
L Klassen Methode aus anderer Klasse Java Basics - Anfänger-Themen 13
M Klassen Methode aus anderer Klasse nicht aufrufbar Java Basics - Anfänger-Themen 11
J Button in anderer Klasse ändern Java Basics - Anfänger-Themen 3
E Referenzvariable in anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
E Klassen Referenzvariable in anderer Klasse aufrufen. Java Basics - Anfänger-Themen 1
M Neu instanzierte Klasse übernimmt Werte von anderer Instanz Java Basics - Anfänger-Themen 4
A Variablen In anderer Klasse auf Objekte von JFrame zugreifen Java Basics - Anfänger-Themen 1
magdaStone Logikproblem Umschalten von booleans in anderer Klasse Java Basics - Anfänger-Themen 0
F Methode anderer Klasse aufrufen Java Basics - Anfänger-Themen 1
K OOP Mit anderer Klasse auf JTextField zugreifen Java Basics - Anfänger-Themen 5
N Auf TextFeld aus anderer Klasse zugreifen ohne es zu übergeben Java Basics - Anfänger-Themen 3
P Aufruf Methode anderer Klasse Java Basics - Anfänger-Themen 5
G Variablen Verwendung von Variablen in anderer Klasse Java Basics - Anfänger-Themen 6
1 Arraylist in anderer Klasse aufrufen Java Basics - Anfänger-Themen 11
S Klassen Instanz anderer Klasse raus geben Java Basics - Anfänger-Themen 1
J KeyListener aus anderer Klasse bereitet Probleme Java Basics - Anfänger-Themen 1
B Klassen Auf Instanz anderer Klasse zugreifen Java Basics - Anfänger-Themen 1
D Methoden g.setColor funktioniert nicht bei Methodenaufruf in anderer Klasse Java Basics - Anfänger-Themen 1
B Liste in anderer Klasse aufrufen? Java Basics - Anfänger-Themen 3
F ArrayListen auf anderer Klasse implementieren Java Basics - Anfänger-Themen 4
I Rückgabewert einer Methode in anderer Klasse verwenden Java Basics - Anfänger-Themen 2
X Gwt DnD, Drag auf Droparea in anderer Klasse? Java Basics - Anfänger-Themen 0
N Problem mit Swing Textfeld und Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 6
T Vererbung Variable aus anderer Klasse verwenden Java Basics - Anfänger-Themen 8
M Dynamische Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 11
T [Erledigt] Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 0
R Hashmap in anderer Klasse nicht benutzbar Java Basics - Anfänger-Themen 1
Jackii Globale Variable aus anderer Klasse ändern... Java Basics - Anfänger-Themen 4
L Erste Schritte Methode aus anderer Klasse verwenden Java Basics - Anfänger-Themen 16
W Frame in anderer Klasse anzeigen lassen Java Basics - Anfänger-Themen 1
T Variable aus anderer Klasse Java Basics - Anfänger-Themen 3
G ArrayList in anderer Klasse verwenden Java Basics - Anfänger-Themen 31
C Timer aus anderer Klasse stoppen/starten Java Basics - Anfänger-Themen 3
Sogomn JLabel in anderer Klasse zum JFrame hinzufügen Java Basics - Anfänger-Themen 2
G Objekt wie Objekt anderer Klasse behandeln Java Basics - Anfänger-Themen 4
K Vererbung Variable aus anderer Klasse nutzen Java Basics - Anfänger-Themen 3
P Klassen JTextfield aus anderer Klasse herausfüllen Java Basics - Anfänger-Themen 12
G Klassen Richtig auf jTextArea aus anderer Klasse zugreifen? Java Basics - Anfänger-Themen 3
C Klassen Zugriff auf Objekt anderer Klasse Java Basics - Anfänger-Themen 8
J Button in extra Klasse festlegen und in anderer Klasse einfügen? Java Basics - Anfänger-Themen 3
J GUI Button Klasse in anderer Klasse einfügen Java Basics - Anfänger-Themen 3
G Methodenaufruf anderer Klasse Java Basics - Anfänger-Themen 18
J Threads Variablen Wert aus anderer Klasse auslesen Java Basics - Anfänger-Themen 4
A Array aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 9
N GUI aus anderer Klasse beziehen Java Basics - Anfänger-Themen 21
J Variablen Array aus anderer Klasse auslesen-Wie verhindert man eine NullPointerException? Java Basics - Anfänger-Themen 4
F Erste Schritte String von anderer Klasse auf TextArea von erster Klasse Java Basics - Anfänger-Themen 12
C Problem mit Zugriff auf Variable bzw. get-Methode in anderer Klasse Java Basics - Anfänger-Themen 2
A String aus anderer Klasse in JTextArea einfügen Java Basics - Anfänger-Themen 7
A Methode aus anderer Klasse Java Basics - Anfänger-Themen 5
M AWT Applet - Button aus anderer Klasse abfragen Java Basics - Anfänger-Themen 4
J "public int x" - Zugriff von anderer Klasse (selbes Package) nicht möglich?! Java Basics - Anfänger-Themen 4
A Bild erstellen in anderer Klasse Java Basics - Anfänger-Themen 2
X OOP Methoden und Variablen in anderer Klasse verwenden Java Basics - Anfänger-Themen 5
I Konstruktor in anderer Klasse nutzen Java Basics - Anfänger-Themen 11
U Factory in anderer Klasse Java Basics - Anfänger-Themen 2
I Collections Arraylist in anderer Klasse aufrufen Java Basics - Anfänger-Themen 6
H Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 7
S KeyListener aus anderer Klasse hinzufügen Java Basics - Anfänger-Themen 19
c_sidi90 Zugriff auf Swingkomponente aus anderer Klasse Java Basics - Anfänger-Themen 12
S Event aus anderer Klasse als Auslöser Java Basics - Anfänger-Themen 5
C Objekt X über Methode aus anderer Klasse verändert Java Basics - Anfänger-Themen 3
I auf Textfeld aus anderer Klasse heraus zugreifen Java Basics - Anfänger-Themen 2
L Methodenaufruf aus anderer Klasse Java Basics - Anfänger-Themen 5
I Von einer Methode eines Objektes auf Attribut eines Objektes anderer Klasse zugreifen Java Basics - Anfänger-Themen 4
S Main-Methode aus anderer Klasse heraus starten Java Basics - Anfänger-Themen 8
E ActionListener in anderer Klasse erkennen Java Basics - Anfänger-Themen 13
S Zugriff auf Methode anderer Klasse Java Basics - Anfänger-Themen 6
F Tabelle in anderer Klasse füllen Java Basics - Anfänger-Themen 9
B Wert einer String Variable an andere String Variable in anderer Klasse uebergeben Java Basics - Anfänger-Themen 5
T Datentypen boolean von anderer klasse in hauptklasse übertragen Java Basics - Anfänger-Themen 2
A drawImage auf JFrame in anderer Klasse Java Basics - Anfänger-Themen 4
J Auf ActionEvents in "anderer" Klasse reagieren Java Basics - Anfänger-Themen 2
U Anderer Klasse ein Obejkt einer Klasse übergeben Java Basics - Anfänger-Themen 5
M LinkedList in anderer Klasse nutzen Java Basics - Anfänger-Themen 4
M Probleme beim Aufruf von Listener in anderer Klasse Java Basics - Anfänger-Themen 9
R Textlabel aus anderer Klasse ansprechen - Konstruktor notwendig? Java Basics - Anfänger-Themen 7
T Aufrufen von get-Methode aus anderer Klasse (absolute Anfängerfrage) Java Basics - Anfänger-Themen 2
K CheckBox aus anderer Klasse Java Basics - Anfänger-Themen 3
G Variable welche in anderer Klasse liegt, verändern. Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben