Heim  >  Artikel  >  Java  >  Erklärung der JAVA-Klassen und -Objekte (der Unterschied zwischen Instanzvariablen und Klassenvariablen) (der Unterschied zwischen Instanzmethoden und Klassenmethoden).

Erklärung der JAVA-Klassen und -Objekte (der Unterschied zwischen Instanzvariablen und Klassenvariablen) (der Unterschied zwischen Instanzmethoden und Klassenmethoden).

高洛峰
高洛峰Original
2018-05-25 09:30:004965Durchsuche

In diesem ArtikelwerdenJAVAKlassen und Objekte (der Unterschied zwischen Instanz-Variablenund Klassenvariablen) (der Unterschied zwischen Instanzmethoden und Klassenmethoden) erläutert

Instanzvariablen

  • 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 (statische Variablen)

  • 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);
    }
}

这篇文章介绍JAVA类与对象(实例变量与类变量的区别)(实例方法和类方法的区别 )说明

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();    
    }
}

这篇文章介绍JAVA类与对象(实例变量与类变量的区别)(实例方法和类方法的区别 )说明

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn