Java - unterschied zwischen Klassenattributen und attributen?

2 Antworten

Die Klassenattribute beziehen sich auf die ganze Klasse. Es gibt sie nur ein einziges Mal.

Attribute werden auch Instanzvariablen genannt. Attribute enthalten Informationen und den aktuellen Zustand eines Objekts.

Ein Klassenattribut ist mit static markiert und benötigt keine Instanz einer Klasse, ist dafür aber auch für alle Instanzen der Klasse identisch.

Ein "normales" Attribut ist instanz-spezifisch, also ohne static und kann für jede Instanz der Klasse einen eigenen Wert haben.

Beispiel:

Ein Währungszeichen könnte als Klassenattribut definiert werden, wenn die Anzeige des Währungszeichen innerhalb der Anwendung identisch sein soll.

Der tatsächliche Betrag würde als Instanzattribut definiert werden, weil jede Instanz einen eigenen Wert haben soll.

public class Geldwert
{
    public static String währungsZeichen = "€";
    public double wert;
}

Du kannst jetzt sagen:

Geldwert.währungsZeichen = "$";

und es würde für ALLE Objekte gelten.

Geltwert g = new Geltwert();
g.wert = 15;

hat aber keinen Einfluss auf andere Objekte.