Mein Verständnis ist wie folgt und ich sage nicht, dass dies 100% richtig ist, ich könnte mich genauso gut irren.
Eine Variable ist etwas, das Sie deklarieren, das sich standardmäßig ändern und unterschiedliche Werte haben kann, das aber auch explizit als endgültig bezeichnet werden kann. In Java wäre das:
public class Variables {
List<Object> listVariable; // declared but not assigned
final int aFinalVariableExample = 5; // declared, assigned and said to be final!
Integer foo(List<Object> someOtherObjectListVariable) {
// declare..
Object iAmAlsoAVariable;
// assign a value..
iAmAlsoAVariable = 5;
// change its value..
iAmAlsoAVariable = 8;
someOtherObjectListVariable.add(iAmAlsoAVariable);
return new Integer();
}
}
Eine Variable ist also im Grunde alles, was deklariert ist und Werte enthalten kann. Die obige Methode foo gibt beispielsweise eine Variable zurück. Sie gibt eine Variable vom Typ Integer zurück, die die Speicheradresse der neuen Integer () enthält. Alles andere, was Sie oben sehen, sind ebenfalls Variablen, listVariable, aFinalVariableExample und werden hier erklärt:
Ein Feld ist eine Variable, bei der der Umfang klarer (oder konkreter) ist. Die Variable, die aus dem Bereich der Methode foo zurückkehrt, ist im obigen Beispiel nicht klar, daher würde ich sie nicht als Feld bezeichnen. Andererseits ist iAmAlsoVariable ein "lokales" Feld, das durch den Bereich der Methode foo begrenzt ist, und listVariable ist ein "Instanz" -Feld, in dem der Bereich des Feldes (der Variablen) durch den Objektbereich begrenzt ist.
Eine Eigenschaft ist ein Feld, auf das zugegriffen / das mutiert werden kann. Jedes Feld, das einen Getter / Setter verfügbar macht, ist eine Eigenschaft.
Ich weiß nichts über Attribute und möchte auch wiederholen, dass dies mein Verständnis der Variablen, Felder und Eigenschaften ist.