OOP Zugriff einer Klasse auf eine Andere

jeykey

Mitglied
Hallo zusammen, bin neu hier :).
Mit der Sprache Java habe ich mich erst seit ein paar Tagen vertraut gemacht :rtfm:, allerdings hab ich schon ein wenig Grundlagen von anderen Sprachen wie z.B. Python.

Nun zu meinem Problem: Ich habe versucht eine virtuelle Karte in der Konsole zu erstellen, in der sich ein Männchen in Form eines 'B's' bewegen kann, das klappte auch schon ganz gut, das Männchen läuft immerhin schon - mehr oder weniger - nach links. Der Code: Java pastebin - collaborative debugging tool

Die Ausgabe im Terminal ist folgende:
Code:
jeykey:~/$ javac rougelike.java && java rougelike
delfador                                                                                                   
XXXXXXXXXX                                                                                                 
XXXXXXXXXX                                                                                                 
XXXXXXXXXX                                                                                                 
XXXXXXXXXX                                                                                                 
XXXXXXXXXX                                                                                                 
XXXXXBXXXX                                                                                                 
XXXXXXXXXX                                                                                                 
XXXXXXXXXX                                                                                                 
XXXXXXXXXX                                                                                                 
XXXXXXXXXX                                                                                                 

XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
XXXXBBXXXX
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX

Wie man sieht "bewegt" sich B eins nach links, das Problem ist allerdings, dass das alte B nicht verschwindet, dazu muss ich das alte in meiner Karte - ein mehrdimensionales array - löschen.

Schaut man sich meinen Code an, dann sieht man das die Klasse Player, eine Funktion 'laufen' besitzt, wird diese ausgeführt, so werden die x- bzw. y-Koordinaten des Männchens verändert. Um allerdings den alten Punkt B auf der Karte löschen zu können, muss eine Instanz der Klasse Player (hier: player1) also irgendwie Zugriff auf die Instanz der Klasse Karte (hier: welt1) oder genauer auf dessen mehrdimensionales Array spielfeld bekommen.

Wie bekomme ich das am besten hin? Soll ich die Klasse Player von der Klasse Karte erben lassen? Oder wie bekomme ich sonst noch am besten Zugriff, welche Möglichkeit ist die naheliegendste?
Bitte seid nicht zu pingelig ;)

Ich hoffe ihr könnt mir helfen,
Grüße jeykey
 
Zuletzt bearbeitet:

Michael...

Top Contributor
Eigentlich würde es in Deinem Fall reichen in der Klasse rougelike vor jedem ändern der Position
Code:
welt1.fuellen('X');
oder
Code:
welt1.spielfeld[player1.y_pos][player1.x_pos] = 'X';
aufzurufen.
Player von Karte erben zu lassen bringt nichts und wäre zumal falsch da ja ein Player und eine Karte ja was völlig verschiedens sind.
Besser wäre es, wenn Karte eine Referenz (z.B. per Konstruktor übergeben) auf Player hätte und in der Methode anzeigen vor dem Zeichnen z.B prüfen würde, ob das Feld durch Player besetzt ist und entsprechend X oder B ausgeben würde.

Statt
Java:
for (int i=0; i!=spielfeld.length; i++) {
im Schleifenkopf die Abbruchbedingung lieber mit < definieren:
Java:
for (int i=0; i<spielfeld.length; i++) {
 

jeykey

Mitglied
Danke schon mal für die Antwort! :)

Ich weiß grad nicht wie ich das mit dem Konstruktor machen soll, so irgendwie?:
Code:
class Karte {

    public Karte(Player player1) { player1 = player1;}
    private Player player1;
...

Ich weiß, dass das irgendwie nicht gehen kann ist... ist an dem Beispiel:
Code:
class MyClass
{
  public MyClass()
  {
    i = 10;
  }
			
  private int i;
}

public class MyTest
{
  public static void main(String[] args)
  {
    MyClass object = new MyClass();			
  }
}

aus Tutorial / Java Grundlagen / Klassen angelehnt
 

eRaaaa

Top Contributor
Karte:
Java:
    private Player player;

    public Karte(Player player) {
	this.player = player;
    }

in deiner Main:
Java:
	Karte welt1 = new Karte(player1);
 

jeykey

Mitglied
Ja, das ist cool, funktioniert jetzt :toll:
Danke

Um nicht extra einen neuen Thread aufmachen zu müssen, hat jemand vielleicht noch einen Vorschlag meinen Code zu verbessern?
Wie schaff ich es z.B., dass die Spielfelder nicht untereinander, sondern übereinander ausgegeben werden, so das es aussieht als würde das Männchen wirklich laufen?
Unter anderen Sprachen hab ich immer das externe Systemkommando 'clear' verwendet um den Terminalinhalt zu löschen und anschließend wieder zu zeichnen. Gibt es da was?
 

jeykey

Mitglied

L-ectron-X

Gesperrter Benutzer
Ich glaube nicht, dass die Java-Konsole für mehr gemacht ist.
Du könntest es mit einer Pseudo-Konsole in einem JFrame versuchen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Zugriff auf eine ArrayList in einer anderen Klasse Java Basics - Anfänger-Themen 4
B Klassen Zugriff auf ein Objekt einer Klasse aus einer Methode heraus Java Basics - Anfänger-Themen 4
D Zugriff auf Methode einer anderen Klasse Java Basics - Anfänger-Themen 5
S Zugriff auf Attribut einer unbekannten Klasse erhalten Java Basics - Anfänger-Themen 6
G Methoden Zugriff auf Methode.. aus einer anderen Klasse Java Basics - Anfänger-Themen 6
F Zugriff auf Objekt einer anderen Klasse Java Basics - Anfänger-Themen 7
D Zugriff auf von einer anderen Klasse erstellten Objekten Java Basics - Anfänger-Themen 5
U Methoden Zugriff auf Array von weiterer Methode einer Klasse, Rückgabewert Problem Java Basics - Anfänger-Themen 5
S Klassen Zugriff auf Attribute einer zweiten Klasse, welche durch dritte gesettet wurden? Java Basics - Anfänger-Themen 2
K Zugriff einer Klasse auf eine andere Andere -> bad operand for binary operator Java Basics - Anfänger-Themen 5
P Zugriff auf Attribute einer Klasse, zu der keine Verbindung besteht Java Basics - Anfänger-Themen 11
C Klassen Zugriff auf Instanz einer anderen Klasse Java Basics - Anfänger-Themen 9
M Interpreter-Fehler Zugriff aus einer anonymen Klasse Java Basics - Anfänger-Themen 7
N OOP Zugriff auf eine Objekt innerhalb einer Klasse aus statischen Methoden Java Basics - Anfänger-Themen 9
G Zugriff auf private Variablen einer inneren Klasse Java Basics - Anfänger-Themen 5
? Zugriff auf Attribut einer anderen Klasse Java Basics - Anfänger-Themen 2
P Zugriff auf Objekte einer anderen Klasse Java Basics - Anfänger-Themen 1
L Zugriff auf Methode einer anderen Klasse -> ')' fehlt ? Java Basics - Anfänger-Themen 2
M objekt (linkedList) zugriff aus einer anderen klasse Java Basics - Anfänger-Themen 3
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
S Vererbung Zugriff auf die Basisklasse einer "zweiten" Erweiterungsklasse Java Basics - Anfänger-Themen 2
K Zugriff auf Variabeln Wert einer Instanz Java Basics - Anfänger-Themen 4
H Kein Zugriff auf das Element einer JList möglich: Fehlermeldung Java Basics - Anfänger-Themen 2
B Vererbung Probleme bei Zugriff auf protected-Methoden in einer Unterklasse Java Basics - Anfänger-Themen 27
A Zugriff auf Komponente innerhalb einer JPanel Java Basics - Anfänger-Themen 8
Q Zugriff auf Attribute einer Unterklasse Java Basics - Anfänger-Themen 7
E Zugriff aus einer Runnable auf die Oberklasse Java Basics - Anfänger-Themen 2
L Zugriff auf Steuerelemente einer website Java Basics - Anfänger-Themen 2
S Zugriff auf Methode einer Subklasse Java Basics - Anfänger-Themen 9
E Zugriff auf Objekte in einer ArrayList Java Basics - Anfänger-Themen 3
J Zugriff auf Objektparameter in einer Struktur Java Basics - Anfänger-Themen 3
Z Zugriff auf Attribute nach Zuweisung einer Referenz Java Basics - Anfänger-Themen 8
I In unterschiedlichen Applikation Zugriff auf eine gemeinsame Anwendung? Java Basics - Anfänger-Themen 8
C Zugriff auf Methode Java Basics - Anfänger-Themen 2
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
J Zugriff auf eine 2. Klasse die per UI-Designer erstellt wurde Java Basics - Anfänger-Themen 1
Encera Zugriff auf Map-Objekte Java Basics - Anfänger-Themen 3
T Zugriff auf Control anderer Klasse Java Basics - Anfänger-Themen 5
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
R TreeSet Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 8
C Kein Zugriff auf Klassenmethoden in Main Methode Java Basics - Anfänger-Themen 23
H Zugriff verweigert Java Basics - Anfänger-Themen 5
moiss002 Umgebungsvariable Kein Zugriff auf ein Array Java Basics - Anfänger-Themen 7
B Probleme mit Zugriff auf Dateisystem Windows 10 ( jFileChooser) Java Basics - Anfänger-Themen 17
B Zugriffsmodifier, Zugriff außerhalb Package Java Basics - Anfänger-Themen 5
C Zugriff auf Attribut von Oberklasse Java Basics - Anfänger-Themen 8
P Klasse hat keinen Zugriff auf getter/setter-Methoden eines Objektes Java Basics - Anfänger-Themen 9
B Methoden Methoden haben kein Zugriff auf variablen Java Basics - Anfänger-Themen 4
M Gettter/Setter Methoden Klassenfelder kapselung und zugriff? Java Basics - Anfänger-Themen 1
S Zugriff auf protected Fields = guter Programmierstil? Java Basics - Anfänger-Themen 11
M Pfadprobleme - Zugriff auf einen Ordner im Workspace Java Basics - Anfänger-Themen 17
ruutaiokwu Bluetooth-Zugriff, braucht es dazu plattformabhängige Libraries oder kann das Java mittlerweile selbst? Java Basics - Anfänger-Themen 10
R Zugriff auf den Index eines Arrays, welches ein Objekt ist. Java Basics - Anfänger-Themen 4
P Zugriff auf Variablen anderer Klassen in Greenfoot Java Basics - Anfänger-Themen 1
L Methoden Zugriff <identifier> expected Java Basics - Anfänger-Themen 13
T Java - Zugriff nur mit CLASSPATH ? Java Basics - Anfänger-Themen 7
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
S Zugriff auf Objekt Java Basics - Anfänger-Themen 5
A Klassen Zugriff auf Instanzen Java Basics - Anfänger-Themen 2
N ArrayList in eigener Klasse erzeugen mit Zugriff Java Basics - Anfänger-Themen 7
J Zugriff auf Variable in anderem Programm Java Basics - Anfänger-Themen 5
Q Zugriff auf Attribute Java Basics - Anfänger-Themen 3
J Klassen Zugriff auf ein "String Array" Java Basics - Anfänger-Themen 6
H Datentypen ArrayList in ArrayList: Zugriff Java Basics - Anfänger-Themen 6
J get methoden zugriff und objekt erzeugung Java Basics - Anfänger-Themen 30
J Datenbank Zugriff Java Basics - Anfänger-Themen 24
T Zugriff auf JCheckBox Java Basics - Anfänger-Themen 8
E Netzlaufwerk Zugriff schlägt fehl Java Basics - Anfänger-Themen 11
C Group, Actor und Instanz-Zugriff, LibGDX Java Basics - Anfänger-Themen 4
R Methoden Methode der GUI-Klasse Zugriff auf Methoden der Hauptklasse Java Basics - Anfänger-Themen 9
Z Threads Threads - Zugriff auf Ressourcen ohne(Lock, Synchronized) Java Basics - Anfänger-Themen 2
S Vererbung Zugriff auf Methode funktioniert nicht (static/non-static) Java Basics - Anfänger-Themen 3
F Klassen Zugriff auf verschachtelte Objekte Java Basics - Anfänger-Themen 11
J Sichtbarkeit und Zugriff Java Basics - Anfänger-Themen 9
G Wieviel kostet der Zugriff auf Objektattribute im Vergleich zur Erstellung von vars in Methode? Java Basics - Anfänger-Themen 11
L Zugriff auf zwei Java-Quellcodes Java Basics - Anfänger-Themen 3
A OOP Zugriff auf Objekte von außen Java Basics - Anfänger-Themen 8
M Kapselung Datenkapselung Sinn direkter Zugriff? Java Basics - Anfänger-Themen 1
J JDialog Zugriff auf parent JDialog Java Basics - Anfänger-Themen 5
K Collections Zugriff auf ein bestimmtes Element in der Collection Java Basics - Anfänger-Themen 1
K ArrayList in Konstruktor - wie späterer Zugriff Java Basics - Anfänger-Themen 2
P Zugriff auf Felder in ArrayList Objekten Java Basics - Anfänger-Themen 2
J Erste Schritte Zugriff auf Eigenschaft Java Basics - Anfänger-Themen 2
M MVC - Problem mit Zugriff auf Objekt Java Basics - Anfänger-Themen 4
C 5 - Zugriff verweigert Java Basics - Anfänger-Themen 1
A Methoden Zugriff auf eingelesene Variablen in der main Methode (ohne Änderung der Parameterliste) Java Basics - Anfänger-Themen 4
Z Methoden Zugriff mit Klasse 3 auf Methode von Klasse 2 welche in Klasse 1 erzeugt wird Java Basics - Anfänger-Themen 6
Z Zugriff auf andere Methoden Java Basics - Anfänger-Themen 12
Z Zugriff auf Pakete Java Basics - Anfänger-Themen 5
G Zugriff zwischen Klassen Java Basics - Anfänger-Themen 15
N Problem mit Swing Textfeld und Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 6
W OOP Zugriff auf mit Objekt erstellte Struktur Java Basics - Anfänger-Themen 7
F Klassen Zugriff auf Fenster aus versch. Klassen Java Basics - Anfänger-Themen 5
M Variablen Zugriff von außerhalb eines Blockes auf eine Variable innerhalb eines Blockes Java Basics - Anfänger-Themen 2
B Klassen Zugriff auf Daten der Child-Klasse Java Basics - Anfänger-Themen 9
W Typisierte ArrayList und der Zugriff auf den Typ Java Basics - Anfänger-Themen 5
M Zugriff auf Klasse Java Basics - Anfänger-Themen 2
K Zugriff auf C: Java Basics - Anfänger-Themen 5
S Das richtige Format für den SOAP Zugriff Java Basics - Anfänger-Themen 0
N Zugriff bei Package Struktur Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben