Ich weiß, dass Variablen können auf zwei Arten eingeteilt werden: -Sind alle Instanzvariablen außerhalb von Funktionen deklariert?
Der erste Weg ist, sie in globale und lokale Variablen auf ihren Umfang zu klassifizieren. Wenn auf die Variable von allen Methoden einer Instanz einer Klasse zugegriffen werden kann, dh innerhalb der Klasse, dann ist sie als globale Variable bekannt und wenn sie nur innerhalb eines Codeblocks in einer Instanz einer Klasse zugänglich ist, ist sie bekannt als lokale Variable.
Die zweite Möglichkeit besteht darin, sie in Klasse/statische Instanz/nicht statische Variablen zu klassifizieren. Klassen/statische Variablen sind die Variablen, die zu der Klasse gehören, und nur eine Kopie dieser Variablen existiert für alle Instanzen der Klasse und wird von ihnen gemeinsam genutzt. Instanzvariablen sind diejenigen Variablen, die zu der Instanz der Klasse gehören und für die für jede Instanz eine eigene Kopie erstellt wird.
Mein Dozent sagt, dass Instanzvariablen nur außerhalb von Funktionen deklariert werden können. Warum ist das so? Können lokale Variablen keine Instanzvariablen sein?
'außerhalb functions' erklärt ... gibt es keine Funktionen in Java, nur Methoden. –
Nein, sie können nicht. Ihr Geltungsbereich ist auf die Verwendung innerhalb einer Methode beschränkt, nachdem sie in einer Methode deklariert wurden. Sie sind nicht von anderen Methoden oder Objekten aus zugänglich. – f1sh
Wenn eine Methode, die für ein Objekt aufgerufen wird, Instanz oder statisch ist, dann stelle ich mir vor, dass alle Variablen, die innerhalb des Bereichs dieser Methode deklariert sind, mit dieser übereinstimmen würden. Allerdings ist dies ein strittiger Punkt, da der Umfang solcher Variablen nur für diesen Methodenaufruf gelten würde. – David