Instanzvariablen werden in einer Klasse deklariert, jedoch außerhalb von Methoden, Konstruktoren und Anweisungsblöcken
Wenn ein Objekt instanziiert wird, wird der Wert jeder Instanzvariablen bestimmt.
Instanzvariablen werden erstellt, wenn das Objekt erstellt wird, und wenn das Objekt zerstört wird Zeit;
Der Wert der Instanzvariablen sollte von mindestens einer Methode, einem Konstruktor oder einem Anweisungsblock referenziert werden , damit die Außenseite die Instanzvariableninformationen erhalten kann durch diese Methoden;
Instanzvariablen sind für Methoden, Konstruktoren oder Anweisungsblöcke in der Klasse sichtbar. Im Allgemeinen sollten Instanzvariablen privat gemacht werden. Instanzvariablen können mithilfe von Zugriffsmodifikatoren für Unterklassen sichtbar gemacht werden
Instanzvariablen haben Standardwerte. Der Standardwert numerischer Variablen ist 0, der Standardwert boolescher Variablen ist falsch und der Standardwert von Referenztypvariablen ist null. Der Wert einer Variablen kann zum Zeitpunkt der Deklaration oder im Konstruktor angegeben werden;
Auf Instanzvariablen kann direkt über Variablenname zugegriffen werden. Aber in statischen Methoden und anderen Klassen sollten Sie den vollständig qualifizierten Namen verwenden: ObejectReference.VariableName.
Klassenvariablen werden auch statische Variablen genannt, in der Klasse mit dem statischen SchlüsselwortDeklaration, muss jedoch außerhalb von Methodenkonstruktoren und Anweisungsblöcken liegen.
Egal wie viele Objekte eine Klasse erstellt, die Klasse verfügt nur über eine Kopie der Klassenvariablen.
Statische Variablen werden selten verwendet, außer wenn sie als Konstanten deklariert sind. Konstanten beziehen sich auf Variablen, die als öffentliche/private, finale und statische Typen deklariert sind. Konstanten können nach der Initialisierung nicht mehr geändert werden.
Statische Variablen werden im statischen Speicherbereich gespeichert. Variablen werden oft als Konstanten deklariert, selten jedoch nur mit statischen Variablen.
Statische Variablen werden am Anfang des Programms erstellt und am Ende des Programms zerstört.
hat eine ähnliche Sichtbarkeit wie Instanzvariablen. Um jedoch für Benutzer der Klasse sichtbar zu sein, werden die meisten statischen Variablen als öffentliche Typen deklariert.
Standardwerte ähneln Instanzvariablen. Der Standardwert numerischer Variablen ist 0, der Standardwert boolescher Variablen ist falsch und der Standardwert von Referenztypen ist null. Der Wert einer Variablen kann bei der Deklaration oder im Konstruktor angegeben werden. Darüber hinaus können statische Variablen auch in statischen Anweisungsblöcken initialisiert werden.
Auf statische Variablen kann zugegriffen werden über: KlasseName.VariableName.
Wenn eine Klassenvariable als öffentlicher statischer Endtyp deklariert wird, muss der Klassenvariablenname Großbuchstaben verwenden. Wenn die statische Variable nicht vom öffentlichen oder endgültigen Typ ist, stimmt ihre Benennungsmethode mit der Benennungsmethode von Instanzvariablen und lokalen Variablen überein.
class TiXing{ float up,height; static float down; TiXing(float x,float y,float z){ up=x; height=y; down=z; } } public class ep3_9{ public static void main(String args[]){ TiXing one=new TiXing(1,2,3); System.out.println("one's down is:"+one.down); TiXing two=new TiXing(4,5,6); System.out.println("one's down is:"+one.down); System.out.println("two's down is:"+two.down); System.out.println("TiXing's down is:"+TiXing.down); } }
Instanzmethoden- und Klassenmethodenzugriff auf Instanzvariablen und Klassenvariablen
Instanzmethoden können mit den Instanzvariablen des aktuellen Objekts oder mit Klassenvariablen arbeiten. Instanzmethoden werden von Instanzobjekten aufgerufen.
Klassenmethoden können nicht auf Instanzvariablen zugreifen, sondern nur auf Klassenvariablen. Klassenmethoden werden über den Klassennamen oder das Instanzobjekt aufgerufen. Dieses oder super Schlüsselwörter
class TiXing{ private float up,height; private static float down; TiXing(float x,float y,float z){ up=x; height=y; down=z; } public void display(){ System.out.println("up is:"+up+"height is:"+height+"down is:"+down); } public static void change(float number){ down=number; //System.out.println("height:"+height);//出错 } } public class ep3_9{ public static void main(String args[]){ TiXing one=new TiXing(1,2,3); one.display(); TiXing two=new TiXing(4,5,6); one.display(); two.display(); //TiXing.display();//出错 one.change(101); one.display(); two.change(102); two.display(); } }dürfen nicht in Klassenmethoden vorkommen
Das obige ist der detaillierte Inhalt vonErklärung der JAVA-Klassen und -Objekte (der Unterschied zwischen Instanzvariablen und Klassenvariablen) (der Unterschied zwischen Instanzmethoden und Klassenmethoden).. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!