Java - Variablentypen
Eine Variable stellt uns einen benannten Speicher zur Verfügung, den unsere Programme manipulieren können. Jede Variable in Java hat einen bestimmten Typ, der die Größe und das Layout des Speichers der Variable bestimmt; der Wertebereich, der in diesem Speicher gespeichert werden kann; und den Satz von Operationen, die auf die Variable angewendet werden können.
Sie müssen alle Variablen deklarieren, bevor sie verwendet werden können. Es folgt die Grundform einer Variablendeklaration −
data type variable [ = value][, variable [ = value] ...] ;
Hier Datentyp ist einer der Datentypen von Java und Variable ist der Name der Variablen. Um mehr als eine Variable des angegebenen Typs zu deklarieren, können Sie eine durch Kommas getrennte Liste verwenden.
Es folgen gültige Beispiele für die Deklaration und Initialisierung von Variablen in Java −
Beispiel
int a, b, c; // Declares three ints, a, b, and c. int a = 10, b = 10; // Example of initialization byte B = 22; // initializes a byte type variable B. double pi = 3.14159; // declares and assigns a value of PI. char a = 'a'; // the char variable a iis initialized with value 'a'
In diesem Kapitel werden verschiedene Variablentypen erklärt, die in der Java-Sprache verfügbar sind. Es gibt drei Arten von Variablen in Java −
- Lokale Variablen
- Instanzvariablen
- Klassen-/Statische Variablen
Lokale Variablen
-
Lokale Variablen werden in Methoden, Konstruktoren oder Blöcken deklariert.
-
Lokale Variablen werden erstellt, wenn die Methode, der Konstruktor oder der Block eingegeben wird, und die Variable wird zerstört, sobald sie die Methode, den Konstruktor oder den Block verlässt.
-
Zugriffsmodifikatoren können nicht für lokale Variablen verwendet werden.
-
Lokale Variablen sind nur innerhalb der deklarierten Methode, des Konstruktors oder des Blocks sichtbar.
-
Lokale Variablen werden intern auf Stackebene implementiert.
-
Es gibt keinen Standardwert für lokale Variablen, daher sollten lokale Variablen deklariert und vor der ersten Verwendung ein Anfangswert zugewiesen werden.
Beispiel
Hier, Alter ist eine lokale Variable. Dies wird innerhalb von pupAge() definiert Methode und ihr Geltungsbereich ist auf diese Methode beschränkt.
Live-Demopublic class Test { public void pupAge() { int age = 0; age = age + 7; System.out.println("Puppy age is : " + age); } public static void main(String args[]) { Test test = new Test(); test.pupAge(); } }
Dies wird das folgende Ergebnis erzeugen −
Ausgabe
Puppy age is: 7
Beispiel
Das folgende Beispiel verwendet age ohne es zu initialisieren, also würde es beim Kompilieren einen Fehler geben.
Live-Demopublic class Test { public void pupAge() { int age; age = age + 7; System.out.println("Puppy age is : " + age); } public static void main(String args[]) { Test test = new Test(); test.pupAge(); } }
Dies wird beim Kompilieren den folgenden Fehler erzeugen −
Ausgabe
Test.java:4:variable number might not have been initialized age = age + 7; ^ 1 error
Instanzvariablen
-
Instanzvariablen werden in einer Klasse deklariert, aber außerhalb einer Methode, eines Konstruktors oder eines beliebigen Blocks.
-
Wenn einem Objekt im Heap Speicherplatz zugewiesen wird, wird ein Slot für jeden Instanzvariablenwert erstellt.
-
Instanzvariablen werden erstellt, wenn ein Objekt mit dem Schlüsselwort 'new' erstellt wird, und zerstört, wenn das Objekt zerstört wird.
-
Instanzvariablen enthalten Werte, auf die von mehr als einer Methode, einem Konstruktor oder Block verwiesen werden muss, oder wesentliche Teile des Zustands eines Objekts, die in der gesamten Klasse vorhanden sein müssen.
-
Instanzvariablen können vor oder nach der Verwendung auf Klassenebene deklariert werden.
-
Zugriffsmodifikatoren können für Instanzvariablen angegeben werden.
-
Die Instanzvariablen sind für alle Methoden, Konstruktoren und Blöcke in der Klasse sichtbar. Normalerweise wird empfohlen, diese Variablen privat zu machen (Zugriffsebene). Allerdings kann für diese Variablen die Sichtbarkeit für Unterklassen durch die Verwendung von Zugriffsmodifikatoren gegeben werden.
-
Instanzvariablen haben Standardwerte. Für Zahlen ist der Standardwert 0, für boolesche Werte ist er falsch und für Objektreferenzen ist er null. Werte können während der Deklaration oder innerhalb des Konstruktors zugewiesen werden.
-
Auf Instanzvariablen kann direkt zugegriffen werden, indem der Variablenname innerhalb der Klasse aufgerufen wird. Innerhalb statischer Methoden (wenn Instanzvariablen Zugriff gewährt wird) sollten sie jedoch mit dem vollständig qualifizierten Namen aufgerufen werden. Objektreferenz.Variablenname .
Beispiel
Live-Demoimport java.io.*; public class Employee { // this instance variable is visible for any child class. public String name; // salary variable is visible in Employee class only. private double salary; // The name variable is assigned in the constructor. public Employee (String empName) { name = empName; } // The salary variable is assigned a value. public void setSalary(double empSal) { salary = empSal; } // This method prints the employee details. public void printEmp() { System.out.println("name : " + name ); System.out.println("salary :" + salary); } public static void main(String args[]) { Employee empOne = new Employee("Ransika"); empOne.setSalary(1000); empOne.printEmp(); } }
Dies wird das folgende Ergebnis erzeugen −
Ausgabe
name : Ransika salary :1000.0
Klassen-/Statische Variablen
-
Klassenvariablen, auch statische Variablen genannt, werden mit dem Schlüsselwort static in einer Klasse deklariert, aber außerhalb einer Methode, eines Konstruktors oder eines Blocks.
-
Es gäbe nur eine Kopie jeder Klassenvariablen pro Klasse, unabhängig davon, wie viele Objekte daraus erstellt werden.
-
Statische Variablen werden selten verwendet, außer dass sie als Konstanten deklariert werden. Konstanten sind Variablen, die als öffentlich/privat, final und statisch deklariert sind. Konstante Variablen ändern nie ihren Anfangswert.
-
Statische Variablen werden im statischen Speicher gespeichert. Es ist selten, statische Variablen zu verwenden, die nicht als final deklariert und entweder als öffentliche oder als private Konstanten verwendet werden.
-
Statische Variablen werden erstellt, wenn das Programm startet und zerstört, wenn das Programm stoppt.
-
Die Sichtbarkeit ähnelt Instanzvariablen. Die meisten statischen Variablen werden jedoch öffentlich deklariert, da sie für Benutzer der Klasse verfügbar sein müssen.
-
Standardwerte sind die gleichen wie Instanzvariablen. Für Zahlen ist der Standardwert 0; für Boolesche Werte ist es falsch; und für Objektreferenzen ist es null. Werte können während der Deklaration oder innerhalb des Konstruktors zugewiesen werden. Zusätzlich können Werte in speziellen statischen Initialisierungsblöcken zugewiesen werden.
-
Auf statische Variablen kann durch Aufruf mit dem Klassennamen ClassName.VariableName zugegriffen werden .
-
Wenn Klassenvariablen als öffentliches statisches Finale deklariert werden, werden alle Variablennamen (Konstanten) in Großbuchstaben geschrieben. Wenn die statischen Variablen nicht öffentlich und endgültig sind, ist die Benennungssyntax die gleiche wie bei Instanz- und lokalen Variablen.
Beispiel
Live-Demoimport java.io.*; public class Employee { // salary variable is a private static variable private static double salary; // DEPARTMENT is a constant public static final String DEPARTMENT = "Development "; public static void main(String args[]) { salary = 1000; System.out.println(DEPARTMENT + "average salary:" + salary); } }
Dies wird das folgende Ergebnis erzeugen −
Ausgabe
Development average salary:1000
Hinweis − Wenn von einer externen Klasse auf die Variablen zugegriffen wird, sollte auf die Konstante als Employee.DEPARTMENT
zugegriffen werdenWas kommt als Nächstes?
In diesem Kapitel haben Sie bereits Zugriffsmodifikatoren (öffentlich und privat) verwendet. Das nächste Kapitel erklärt Access Modifiers und Non-Access Modifiers im Detail.
Java