Objekt-Variablen vs-Klasse-Variablen in Java
Ich bin dabei Java zu lernen und ich verstehe nicht den Unterschied zwischen Objektvariablen und Klassenvariablen. Alles was ich weiß ist, dass es eine Klasse Variable, die Sie deklarieren müssen es zuerst mit der static-Anweisung.
Danke!
Haben Sie einen Blick auf diesem Artikel aus der Java-Tutorials.
Sie werden auch als "Felder" in Java. Ihre Objekt-variable ist ein Feld einer Klasse und Ihrer Klasse variable ist ein statisches Feld einer Klasse.
Sie werden auch als "Felder" in Java. Ihre Objekt-variable ist ein Feld einer Klasse und Ihrer Klasse variable ist ein statisches Feld einer Klasse.
InformationsquelleAutor foobar5512 | 2011-12-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Java (und OOP im Allgemeinen) die Objekte haben zwei Arten von Feldern(Variablen).
Instanz-Variablen(oder Objekt -) Variablen sind Felder, die gehören zu einer bestimmten Instanz eines Objekts.
Statische Variablen oder Klassenvariablen) sind die für alle Instanzen der gleichen Klasse.
Hier ein Beispiel:
Verwendung:
InformationsquelleAutor Heisenbug
Den Unterschied zwischen einer statischen variable oder eine Klassenvariable und eine Instanz-variable oder eine Objektvariable ist ziemlich einfach. Jedes Objekt, das Sie erstellen, hat seine eigene Kopie der eigenen Instanz-Variablen. Wo, wie, wenn es eine statische variable in der Klasse, dann wird nur eine Kopie, die statische variable existiert für alle Objekte. Zum Beispiel
Wenn Sie 2 jellybean Objekte, die Sie zwei Variablen für die Farbe, denn jeder jellybean hat seine eigene variable für die Farbe. Und 1 variable für totalNumberOfJellyBeans, weil beide jellyBean-Objekte verwenden diese eine Klasse variable.
InformationsquelleAutor gluestick
Eine Objekt-variable ist-Zustand abhängig von einer bestimmten Instanz einer Klasse, in der Erwägung, dass eine Klasse, variable Global zugänglich über die Klasse selbst. Das könnte ein wenig verschwommen, so, hier sind einige Beispiele:
In dieser Klasse
calories
ist eine Klassenvariable. In jedem anderen Stück code, können Sie die Anzahl der Kalorien in jede Art von muffin durch den AufrufMuffin.calories
. In diesem Fall, diefinal
Schlüsselwort wird auch verwendet, um die Anzahl der Kalorien konstant.In der gleichen Klasse, wir haben ein Objekt variable,
flavor
. Dies ist abhängig von der Instanz der Klasse und wird im Konstruktor.So, jetzt können Sie Zugang zu diesem speziellen muffin-Geschmack durch den Aufruf
myMuffin.flavor
. Beachten Sie, wie wir brauchen, um zu instanziierenMuffin
Objekt, bevor wir Zugriff auf Ihreflavor
.Ändern statische (Klassen -) Variablen
Obigen Beispiel ist ein bisschen weit hergeholt, da verschiedene Arten von muffins hätte andere Kalorie zählt. Sie sind nützlich für die Konstanten, aber hier ist ein Fall, wo der Wert der statischen Variablen ändert:
Im zweiten Beispiel, wir brauchen, um eine einzigartige ID-Nummer für jedes muffin, die wir erstellen, so können wir eine statische variable wird erhöht, jedes mal ein
Muffin
instanziiert wird. Diestatic
Schlüsselwort macht den Wert vonnext_id
fortbestehen durch jeden Aufruf an den Konstruktor, so dass dieid
wird anders sein und weiter erhöhen, um für jede neue muffin.InformationsquelleAutor derekerdmann
Lassen Sie uns sagen, Sie haben einen Entwurf, ein Auto namens
ToyotaYaris
, in dem Sie haben eine variable namensmaxSpeed
. Alle Autos, die mit, dass blueprint (Instanzen) haben die gleiche maximale Geschwindigkeit, so dass variable gehören soll, um die Blaupause, und nicht die einzelnen Autos. Wenn diemaxSpeed
änderungen in der Blaupause, so wird es ändern in alle Autos, die er produziert.Jedoch auf jedes Auto, möchten Sie vielleicht eine andere variable namens
speed
. Diese variable kann gehören nicht zur Blaupause, weil jedes Auto kann fahren mit unterschiedlichen Geschwindigkeiten, die unabhängig von einander sind, so müssen Sie diese variable, um zu gehören zu jeder spezifischen Instanz derToyotaYaris
.Daher:
InformationsquelleAutor Smig
Einer Objekt-variable oder Instanz Mitglied gehört zu einer bestimmten Instanz einer Klasse. Das heißt, dass jede Instanz besitzt eine eigene Kopie der Daten. Eine Klasse, variable oder statische member - wird gemeinsam von jeder Instanz der Klasse. Das ist zu sagen, dass es nur eine Kopie, das Stück der Daten, egal, wieviele Instanzen der Klasse es gibt.
InformationsquelleAutor bobbymcr