Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Guten Morgen,
ich habe eine Problem mit der Erzeugung eines Objekts in der Klasse "Auto"...
Ich Erzeuge das Objekt "Kundenauto" in der Methode erstelleKundenauto() und will jetzt von einer anderen Klasse aus auf dieses Objekt bzw. dessen Attribute mit Gettern zugreifen. WO liegt der Fehler? Vielen Dank für Eure Hilfe!
Code:
public class Auto {
String farbe;
public Auto kundenauto;
public Auto(){
tueren=0;
motor=320;
downpipe=false;
farbe= "weiss";
}
public static void erstelleKundenauto(){
Auto kundenauto= new Auto();
}
public String getFarbe(){
return farbe;
}
}
Code:
public class Herzlich_wilkommen {
static String kategorie="0";
public static void Wilkommen() {
System.out.println(kundenauto.getFarbe());
}
]
Auf diese Art erzeugst du ein neues lokales Objekt namens kundenauto. Und das hat nichts mit der gleichnamigen Instanzvariablen kundenauto zu tun. Lass einfach in der erstelleKundenauto das "Auto" vor dem kundenauto weg !
Und überhaupt solltest du dich mal mit den Grundlagen von Java beschäftigen.
Dein ganzer Code ist nicht nur unübersichtlich, sondern auch semantisch falsch sowie rein logisch vollkommen unsinnig.
Du hast eine Klasse Auto und innerhalb davon definierst du eine Instanzvariable kundenauto. Warum hat ein Auto eine Referenz auf ein Auto? In erstelleKundenauto setzt du aber nicht die Instanzvariable kundenauto, sondern erzeugst eine neue lokale Variable mit dem gleichen Namen.
In deiner Herzlich_willkommen Klasse benutzt du nun kundenauto.getFarbe(), obwohl kundenauto überhaupt nicht in dieser Klasse definiert ist, sondern eben in der Auto Klasse.
Viel habe ich ja noch gar nicht geschrieben... Und ja, ich bin Anfänger in Java...
Gut, das mit der lokalen Variable in der Methode erstelleKundenauto() habe ich verstanden.
Wie kann ich jetzt in der class Herzlich_wilkommen auf das Objekt zugreifen?
public class Auto {
private String farbe;
private int tueren;
private int motor;
private boolean downpipe;
public Auto(){
tueren=0;
motor=320;
downpipe=false;
farbe= "weiss";
}
public String getFarbe(){
return farbe;
}
public static void main(String[] args) {
Auto kundenauto = new Auto();
//und hier kannst du nun irgendwas zu dem kundenauto ausgeben
}
}
Das war die etwas einfachere Variante. Du kannst dir aber auch eine zweite Klasse (z.B. public class TestAuto ) machen und du verschiebst die main-Methode von oben einfach in diese neue Klasse. In der könntest du z.B. dann auch das machen was du in deiner Willkommen-Methode hast.
Das war die etwas einfachere Variante. Du kannst dir aber auch eine zweite Klasse (z.B. public class TestAuto ) machen und du verschiebst die main-Methode von oben einfach in diese neue Klasse. In der könntest du z.B. dann auch das machen was du in deiner Willkommen-Methode hast.
Edit: Sorry, manchmal stottert das Forum Aber einen Beitrag kann man ja nicht löschen
Du kannst dir aber auch eine zweite Klasse (z.B. public class TestAuto ) machen und du verschiebst die main-Methode von oben einfach in diese neue Klasse. In der könntest du z.B. dann auch das machen was du in deiner Willkommen-Methode hast.