Zugriff auf von einer anderen Klasse erstellten Objekten

disconnectus

Aktives Mitglied
Hallo Zusammen,

Zur Veranschaulichung meines Problems habe ich das folgende Programm geschrieben.
Ich will in der Main Methode mehrere Schlüssel und Auto-objekte erstellen. Ich möchte in der Klasse Auto schon erstellte Schlüsselobjekte abrufen. Das kann ich aber leider nicht machen. Ich bekomme die folgende Fehlermeldung:

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
schluesselAuto cannot be resolved to a variable
at Auto.<init>(Auto.java:4)
at Main.main(Main.java:6)

Wie kann ich das machen? Was ist das Problem. Eclipse hilft mir nicht weiter.
Ich möchte die Schlüssel nicht in der Klasse Auto erstellen und ich möchte sie auch nicht als statische variable definieren.

Java:
public class Schluessel {	
	String  schluesselName; 
	public String getSchluesselName() {
		return schluesselName;
	}
	public void setSchluesselName(String schlüsselTypes) {
		this.schluesselName = schlüsselTypes;
	}
}
Java:
public class Main {	
	public static void main (String [] args ){
		Schluessel schluesselAuto = new Schluessel();	
		schluesselAuto.setSchluesselName("AutoSchlüssel");		
		Auto newAuto = new Auto();	
	}	
}
Java:
public class Auto {
        Auto(){	
		System.out.println(schluesselAuto.getSchluesselName);
	}
}

Danke im Voraus
 
Zuletzt bearbeitet:
in der Klasse Auto hast du kein Object Schluessel mit der Referenz "schluesselauto" auf das du zugreifen kannst. Was du brauchst ist
Auto benz =new Auto( Schluessel schluesselauto);
Java:
public class Auto extends Schluessel{
    Schluessel schluessel;

    public Auto(Schluessel schluessel){
        this.schluessel=schluessel;
    }
}
 
@strußi Danke. Ich weiß dass ich es so wie du beschrieben hast machen kann. Ich will es aber wie ich beschreiben machen. Geht es nicht so ähnlich wie ich will?

1- Kann eine Klassse die auf die Objekten von einer anderen Klasse nicht zugreifen?
2- Gibt es keine Lösung dafür?
3- Wenn nein warum? Was bringt das?
 
Zuletzt bearbeitet:
du kannst nur auf den inhalt eines Objectes zugreifen wenn es erstellt ist, oder über eine static-methode, bei deinem fall wäre die ausgabe null
 
Wenn du keinen fertigen Schlüssel an deine Auto übergeben möchtest, sondern quasi das Auto seinen Schlüssel auswählen lassen willst, musst du an dein Auto ein Objekt übergeben, welches dir Schlüssel zur Verfügung stellt, z. B. eine List<Schlüssel>. Wenn du das auch nicht möchtest, bleibt nur der Umweg über static:
Java:
class Schlüsselliste{
    public static Schlüssel getSchlüssel(String key){
        //hier muss eine Logik rein, die dir aus dem angegebenen key den passenden Schlüssel beschafft
    }
}
class Auto{
    private Schlüssel schlüssel;    
    public Auto(){
        this. schlüssel = Schlüsseliste.getSchlüssel("4711.0815");
    }
}
 

Zurück
Oben