Punkt Notation funktioniert nicht

monsterherz

Aktives Mitglied
Ich versuche mich gerade mit Klassen und Objekten zu beschäftigen. Leider will er hier noch nicht. Wo ist der Fehler?


Java:
public class Auto
{
public static void main(String args[])
{
private String farbe="blau";
private float verbrauch=12;
private int PS=200;

//Instanz einer Klasse erstellen:

Auto fahrzeug1 = new Auto();
Auto fahrzeug2 = new Auto();

//der Operator new sorgt dafür Speicher
// für die zu erzeugenden Objekte zu reservieren


Auto fahrzeug1 = fahrzeug2;
fahrzeug2.PS=100;
fahrzeug1.PS=200;

//ausgabe der PS-Zahl

System.out.println(fahrzeug1.PS);
System.out.println(fahrzeug2.PS);
}
}
 

Anhänge

  • Screenshot from 2023-01-31 17-45-59.png
    Screenshot from 2023-01-31 17-45-59.png
    358,8 KB · Aufrufe: 4
Du hast die Instanzvariablen, die eigentlich zur Klasse Auto gehören, innerhalb der main-Methode deklariert. Das ist natürlich falsch.
Die drei Instanzvariablen solltest du außerhalb der main-Methode aber innerhalb der Klasse deklarieren.
 
ok so habe ich es verstanden:


Java:
  GNU nano 7.2                    Auto.java                               
public class Auto
{
private String farbe="blau";
private float verbrauch=12;
private int PS=200;

//Instanz einer Klasse erstellen:

Auto fahrzeug1 = new Auto();
Auto fahrzeug2 = new Auto();

//der Operator new sorgt dafür Speicher
// für die zu erzeugenden Objekte zu reservieren

Auto fahrzeug1 = fahrzeug2;
fahrzeug2.PS=100;
fahrzeug1.PS=200;

//ausgabe der PS-Zahl
System.out.println(fahrzeug1.PS);
System.out.println(fahrzeug2.PS);
}
public static void main(String args[])
{
//System.out.println(fahrzeug1.PS);
//System.out.println(fahrzeug2.PS);
}

Aber er will trotzdem nicht
 

Anhänge

  • Screenshot from 2023-01-31 18-19-21.png
    Screenshot from 2023-01-31 18-19-21.png
    152,6 KB · Aufrufe: 6
Jetzt hast du den gesamten Code außerhalb der main-Methode gezogen.
Du solltest nur die Deklaration der drei Instanzvariablen außerhalb der main-Methode ziehen. Nicht alle Anweisungen.
 
Tip: Fang damit an, Logik und Daten zu trennen.
Erstell als erstes mal eine Klasse Auto mit all ihren Eigenschaften - OHNE ABLAUFLOGIK!
Also wirklich nur Daten. Klassenvariablen, Getter, Setter.

Dann erstell eine zweite Klasse z.B. BrummBrummAuto und erstelle dort die Main-Methode, in deren Code Objekte der Klasse Auto erzeugt werden.
Ein Programm namens Auto, das Autos behandelt, ergibt doch eh wenig Sinn, oder?
Von Anfang an richtig strukturieren, dann hast du weniger Probleme.
 

Zurück
Oben