Was sind Attribute?

1 Antwort

Ein Attribut (der eigentliche Fachbegriff ist Feld) ist eine Variable, die innerhalb des Klassenkörpers, aber nicht innerhalb einer Methode/einem Konstruktor deklariert wird.

Beispiel:

class SomeClass {
  int someVariable; // field

  public SomeClass() { // constructor
    someVariable = 123; // set field value

    int otherVariable; // local variable
  }
}

In deinem Code werden alle vorhandenen Variablen als Attribute/Felder deklariert. Eine explizite Konstruktordefinition hast du dort nicht.

(...) Eigentlich werden Attribute ja mit private begonnen. (...)

Ein Attribut muss nicht zwingend mit einem expliziten Zugriffsmodifikator deklariert werden (siehe obiges Beispiel).

Caro0680 
Fragesteller
 08.06.2023, 21:41

Das heißt int ist dann trotzdem ein Attribut. Und was ist mit Player player = new player()? Hier ruf ich das doch nur neu auf oder?

0
regex9  08.06.2023, 21:42
@Caro0680
In deinem Code werden alle vorhandenen Variablen als Attribute/Felder deklariert.
1
Caro0680 
Fragesteller
 08.06.2023, 21:44
@regex9

Tut mir leid, dass ich so viel nachfrage, aber was für ne Art von Attribut ist das dann? Ist ja kein string oder int oder boolean.

0
regex9  08.06.2023, 21:54
@Caro0680

Es ist ein Attribut mit dem Typ Player. Es kann also nur auf Objekte diesen Typs zeigen oder null ("nichts"). Wie bei einer Variablendeklaration wird vor dem Namen der Typ aufgeführt.

Bei den Typen int und boolean handelt es sich um primitive Datentypen, die fest in der Sprache verankert sind und sich nur einen konstanten Wert merken.

Bei den Typen String, Player, Ball, Score1, etc. handelt es sich um komplexe Datentypen, da sie sich noch mehr Werte merken und auch über Methoden verfügen. Sie werden definiert, indem man eine Klasse erstellt.

Die Klasse bzw. der Typ String wird von der Java-Standardbibliothek definiert, all die anderen Typen sind Klassen, die von deiner Anwendung oder einer eingebundenen Bibliothek beschrieben werden. Du erstellst auch gerade einen eigenen Typ namens Table.

Komplexe Typen werden auch Referenztypen genannt, da Variablen eines Referenztyps entweder auf ein Objekt oder null verweisen kann. Nicht nur auf einen konstanten Wert wie int.

Beispiel:

Person tim = null;
Person tom = new Person();

Zwei Variablen werden angelegt, die jeweils den Typ Person haben. Die erste Variable verweist auf nichts (null), die zweite hingegen auf ein Objekt der Klasse bzw. des Typs Person.

1
Caro0680 
Fragesteller
 08.06.2023, 21:58
@regex9

Danke! Du hast mir so krass geholfen. Jetzt hab ich das endlich verstanden. Danke für die ausführliche Antwort. Das ist echt super lieb!

0