Klassenfeld und Instanzfeld in Java
- die lokale Variable in Java
- der Eingabeparameter in Java
- das Klassenfeld in Java
- die Eigenschaften von Klassenfeldern in Java
- das Instanzfeld in Java
- die Eigenschaften von Instanzfeld in Java
In diesem Artikel lernen Sie grundlegende Begriffe der Java-Programmiersprache wie lokale Variablen, Eingabeparameter, Klassenfelder und Instanzfelder in Java kennen.
die lokale Variable in Java
Eine Variable, deren Gültigkeitsbereich an den Block, die Methode oder den Konstruktor gebunden ist, wird als lokale Variable bezeichnet. Sagen wir, wir haben eine Methode, Testen
.
Wir deklarieren eine val
-Variable und weisen dieser Methode 10
zu. Schreiben Sie die print
-Anweisung in den main
-Block.
public class Experiment {
public static void testing() {
int val = 10;
}
public static void main(String[] args) {
// try printing the local variable of the function demo
System.out.printf("%d", val);
}
}
Ausgabe:
error: cannot find symbol
System.out.printf("%d", val);
^
symbol: variable val
location: class Experiment
1 error
Obwohl die Variable val
in diesem Code vorhanden ist, erhalten wir einen Fehler. Hier ist die Variable val
eine lokale Variable der Methode testing()
.
Da es innerhalb der Methode testing
definiert ist, ist sein Anwendungsbereich begrenzt. Wir erhalten eine Fehlermeldung, wenn die Anweisung print
versucht, auf diese Variable außerhalb dieses Gültigkeitsbereichs zuzugreifen.
Deklarieren Sie nun die print
-Anweisung innerhalb der Methode testing
und rufen Sie die Methode aus dem main
-Block auf.
public class Experiment {
public static void testing() {
int val = 10;
System.out.printf("%d", val);
}
public static void main(String[] args) {
// call the method
testing();
}
}
Ausgabe:
10
Diesmal greift die print
-Anweisung auf die Variable innerhalb ihres Gültigkeitsbereichs zu.
Versuchen Sie nun, die lokale Variable in diesem Code herauszufinden.
public class Treat {
public static void main(String[] args) {
for (int i = 0, i < 1; i++) {
System.out.println("You will get a Cake if you answer correctly!");
}
}
}
Die Variable i
ist eine lokale Variable. Sein Geltungsbereich ist auf die for
-Schleife beschränkt.
Beachten Sie die folgenden Punkte zu lokalen Variablen:
- Wir können keine Zugriffsmodifikatoren wie
public
,protected
undprivate
verwenden, um lokale Variablen zu deklarieren. - Diese Variablen werden intern auf Stack-Ebene implementiert.
der Eingabeparameter in Java
Einige Informationen müssen ausgeführt werden, andere möglicherweise nicht. Sehen Sie sich diese Methode Willkommen
an.
public class Greet {
// a function that does not need any parameter or information
public static void welcome() {
System.out.println("Hello, we are happy you visited.");
}
public static void main(String[] args) {
// call the function
welcome();
}
}
Ausgabe:
Hello, we are happy you visited.
Wir rufen die Methode auf, ohne ihr irgendwelche Werte zu übergeben. Wir geben keine Informationen zu dieser Methode und sie wird ordnungsgemäß ausgeführt.
public class Test {
// a function that needs some information/parameter
public static void hello(int x) {
int a;
System.out.println("Hello, we are happy you visited.");
if (x < 18) {
a = 18 - x;
System.out.printf("Please come back after %d years.", a);
}
}
public static void main(String[] args) {
int age = 2;
// call the function
hello(age);
}
}
Ausgabe:
Hello, we are happy you visited.
Please come back after 16 years.
Die Methode hello
wird nicht richtig ausgeführt, wenn wir keinen Wert für age
übergeben.
Die Methode erhält diesen Wert durch die in der Klammer definierte Variable x
. Die Variable x
ist nichts anderes als ein Eingabeparameter oder einfach ein Parameter.
Ein Eingabeparameter oder ein Parameter in Java ist eine Variable, die zum Definieren einer Methode verwendet wird, um die Ausführung der Methode zu unterstützen.
Mischen Sie keine Parameter mit Argumenten. Sie haben denselben Wert, aber sie sind nicht dasselbe.
public class Test {
// function to add ages
public static int totalAge(int age1, int age2) {
return age1 + age2;
}
public static void main(String[] args) {
int a1 = 10;
int a2 = 12;
int total = totalAge(a1, a2);
System.out.println("Sum of ages: " + total);
}
}
Ausgabe:
Sum of ages: 22
Hier sind age1
und age2
die Eingabeparameter.
das Klassenfeld in Java
Jede Variable innerhalb einer Klasse kann in Java als field
bezeichnet werden. Alle Variablen wie price
, quantity
und name
sind Felder.
Beachten Sie jedoch, dass die Variable quantity
mit dem Schlüsselwort static
beginnt. Solche Felder mit dem Schlüsselwort static
in ihrer Definition werden in Java als Klassenfelder bezeichnet.
Klassenfelder werden in Java auch als class
-Variablen oder statische Felder
bezeichnet.
class Cake {
int price;
static int quantity;
string name;
}
die Eigenschaften von Klassenfeldern in Java
Die folgenden Punkte sind ein Klassenfeld:
- Ein Klassenfeld muss mit dem Schlüsselwort
static
deklariert werden.
public static NameOfClass {
static datatype name_of_variable;
}
- Viele Instanzen einer Klasse teilen sich das Klassenfeld, und daher sind Klassenfelder speichereffizient. In sehr einfachen Worten ist der Wert eines Instanzfelds für alle Instanzen einer Klasse in Java gleich.
- Wir können auf ein Klassenfeld in Java zugreifen, indem wir eine Instanz der Klasse und den Klassennamen selbst verwenden. Beachten Sie, dass für den Zugriff auf statische Felder nicht unbedingt eine Instanz erforderlich ist.
class Cake {
int price;
static int quantity = 10;
String name;
public static void main(String[] args) {
// create the object of Cake class
Cake c1 = new Cake();
// Access the class field using the object
System.out.println(c1.quantity);
// Access the class field using the class
System.out.println(Cake.quantity);
}
}
Ausgabe:
10
10
Im obigen Beispiel greifen wir auf das Klassenfeld mit einem Objekt zu, das den Operator Punkt
wie folgt verwendet: c1.quantity
. Um auf die Variable nach Klasse zuzugreifen, verwenden Sie auf ähnliche Weise den Klassennamen Cake.quantity
.
das Instanzfeld in Java
public class Cake {
int cost;
String flavor;
public Cake(int cost, String flavor) {
this.cost = cost;
this.flavor = flavor;
}
public int expense() {
return cost;
}
public static void main(String[] args) {
Cake cake1 = new Cake(1000, "Choco lava");
Cake cake2 = new Cake(2000, "Pineapple");
System.out.println(cake1.expense());
System.out.println(cake2.expense());
}
}
Ausgabe:
1000
2000
Innerhalb der Klasse Cake
haben wir zwei Variablen – cost
und flavor
. Wir erstellen cake1
und cake2
.
Diese Variablen, die für verschiedene Objekte unterschiedliche Werte annehmen können, werden Instanzvariablen
oder Instanzfelder
genannt.
die Eigenschaften von Instanzfeld in Java
Die Instanzfelder in Java werden auch als nicht statische Variablen bezeichnet. Hier sind ein paar Punkte zu Instanzfeldern.
- Instanzfelder werden nicht mit dem
static
-Schlüsselwort von Java deklariert.
public class ClassName {
datatype variable_name;
}
- Sie werden nicht mit allen Instanzen geteilt. Jede Instanz kann ihren eindeutigen Wert für ein Instanzfeld in Java haben.
- Sie haben gesehen, wie wir mit Hilfe der Klasse selbst auf ein Klassenfeld zugreifen können. Nun, das gilt nicht für ein Instanzfeld in Java. Wir brauchen eine
Instanz/ein Objekt
, um auf ein Instanzfeld in Java zuzugreifen. - Wir können jeden Zugriffsbezeichner mit einem Instanzfeld in Java verwenden. Weitere Informationen zu Feldern in Java finden Sie in dieser Dokumentation.