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.
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);
}
}
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.
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);
}
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.