Hi, ich bin gerade dabei ein eigenes kleines Programm zu schreiben wo es darum geht, Setups aus dem Kartenspiel "Dominion" zu erstellen (Vllt. sagt das jemandem etwas)
Das Problem, das ich dabei habe ist, dass ich nicht auf Instanzen zugreifen kann, die in einer anderen Klasse generiert wurden.
Konkret:
Ich habe Eine Kollektion "Set", welche ein Behälter für "Karten" ist. Diese kann ich auch ganz normal füllen und wieder leeren, allerdings hilft mir das nur bedingt, denn ein Set besteht ja nicht aus irgendwelchen Karten, sondern aus ganz bestimmten, die genau so fest stehen und nicht veränderbar sind.
Also erstelle ich Unterklassen von "Set" und befülle diese spezifisch mit den Karten die in diesem Set drin sind. Also zB alle Basiskarten in die Klasse "Basis exends Set"
Wenn ich in der Main methode der Hauptklasse aber auf die Karten des Basissets zugreifen möchte, kommt die Meldung "... cannot be resolved to a variable" Was muss ich dafür tun? Habs schon mit einem getter versucht, allerdings brauchte das nichts, die Meldung besteht nach wie vor.
Des besseren Verständnissis halber hier der für das Problem relevante Teil des Codes bzw. ein stark vereinfachter Code:
Vielen Dank schon mal
Das Problem, das ich dabei habe ist, dass ich nicht auf Instanzen zugreifen kann, die in einer anderen Klasse generiert wurden.
Konkret:
Ich habe Eine Kollektion "Set", welche ein Behälter für "Karten" ist. Diese kann ich auch ganz normal füllen und wieder leeren, allerdings hilft mir das nur bedingt, denn ein Set besteht ja nicht aus irgendwelchen Karten, sondern aus ganz bestimmten, die genau so fest stehen und nicht veränderbar sind.
Also erstelle ich Unterklassen von "Set" und befülle diese spezifisch mit den Karten die in diesem Set drin sind. Also zB alle Basiskarten in die Klasse "Basis exends Set"
Wenn ich in der Main methode der Hauptklasse aber auf die Karten des Basissets zugreifen möchte, kommt die Meldung "... cannot be resolved to a variable" Was muss ich dafür tun? Habs schon mit einem getter versucht, allerdings brauchte das nichts, die Meldung besteht nach wie vor.
Des besseren Verständnissis halber hier der für das Problem relevante Teil des Codes bzw. ein stark vereinfachter Code:
Java:
public class Set {
public static class Karte implements Comparable<Karte> {
static int nextNumber;
int nummer;
String name;
int kosten;
public Karte(String name, int kosten){
nextNumber++;
this.kosten = kosten;
this. name = name;
this.nummer = nextNumber;
}
public int compareTo(Karte o) {
return nummer - o.nummer;
}
public String toString(){
return "CUSTOM: #" + nummer + " " + name + ", Kosten: " + kosten;
}
}
}
Java:
public class Basis extends Set {
Karte Kapelle = new Karte("Kapelle", 2);
Karte Keller = new Karte("Keller", 2);
public void get(Karte k){
System.out.println(k);
}
}
Java:
public class Main {
public static void main(String[] args){
Set Basis = new Basis();
Basis.get(Keller);
}
}
Vielen Dank schon mal
Zuletzt bearbeitet: