Java - Variablentypen

Eine Variable stellt uns einen benannten Speicher zur Verfügung, den unsere Programme bearbeiten können. Jede Variable in Java hat einen bestimmten Typ, der die Größe und das Layout des Speichers der Variablen bestimmt. den Wertebereich, der in diesem Speicher gespeichert werden kann; und die Menge 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 eine der Java - Datentypen 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.

Im Folgenden finden Sie 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 in Java Language verfügbare Variablentypen erläutert. In Java gibt es drei Arten von Variablen:

  • 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 beendet.

  • 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 Stapelebene 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 ist das Alter eine lokale Variable. Dies wird in der pupAge () -Methode definiert und ist nur auf diese Methode beschränkt.

public 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 führt zu folgendem Ergebnis:

Ausgabe

Puppy age is: 7

Beispiel

Das folgende Beispiel verwendet age, ohne es zu initialisieren, sodass beim Kompilieren ein Fehler auftritt.

public 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 führt beim Kompilieren zu folgendem Fehler:

Ausgabe

Test.java:4:variable number might not have been initialized
age = age + 7;
         ^
1 error

Instanzvariablen

  • Instanzvariablen werden in einer Klasse deklariert, jedoch außerhalb einer Methode, eines Konstruktors oder eines beliebigen Blocks.

  • Wenn einem Objekt im Heap ein Speicherplatz zugewiesen wird, wird ein Slot für jeden Wert der Instanzvariablen 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 einem Block verwiesen werden muss, oder wesentliche Teile des Status 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 zum Beispiel Variablen 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). Die Sichtbarkeit für Unterklassen kann jedoch für diese Variablen unter 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 zugänglich sind) sollten sie jedoch unter Verwendung des vollständig qualifizierten Namens aufgerufen werden. ObjectReference.VariableName .

Beispiel

import 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 führt zu folgendem Ergebnis:

Ausgabe

name  : Ransika
salary :1000.0

Klassen- / statische Variablen

  • Klassenvariablen, auch als statische Variablen bezeichnet, werden mit dem Schlüsselwort static in einer Klasse deklariert, jedoch außerhalb einer Methode, eines Konstruktors oder eines Blocks.

  • Es würde nur eine Kopie jeder Klassenvariablen pro Klasse geben, unabhängig davon, wie viele Objekte daraus erstellt werden.

  • Statische Variablen werden nur selten verwendet, außer als Konstanten deklariert zu werden. Konstanten sind Variablen, die als öffentlich / privat, endgültig und statisch deklariert sind. Konstante Variablen ändern sich nie von ihrem Anfangswert.

  • Statische Variablen werden im statischen Speicher gespeichert. Es ist selten, statische Variablen zu verwenden, die nicht als final deklariert sind und entweder als öffentliche oder private Konstanten verwendet werden.

  • Statische Variablen werden beim Starten des Programms erstellt und beim Stoppen des Programms zerstört.

  • Die Sichtbarkeit ähnelt Instanzvariablen. Die meisten statischen Variablen werden jedoch als öffentlich deklariert, da sie für Benutzer der Klasse verfügbar sein müssen.

  • Standardwerte sind dieselben wie Instanzvariablen. Für Zahlen ist der Standardwert 0; für Boolesche 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 Aufrufen mit dem Klassennamen ClassName.VariableName zugegriffen werden .

  • Wenn Klassenvariablen als öffentliches statisches Finale deklariert werden, werden Variablennamen (Konstanten) alle in Großbuchstaben geschrieben. Wenn die statischen Variablen nicht öffentlich und endgültig sind, entspricht die Benennungssyntax der Instanz und den lokalen Variablen.

Beispiel

import 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 führt zu folgendem Ergebnis:

Ausgabe

Development average salary:1000

Note - Wenn auf die Variablen von einer externen Klasse aus zugegriffen wird, sollte auf die Konstante als Employee.DEPARTMENT zugegriffen werden

Was kommt als nächstes?

Sie haben in diesem Kapitel bereits Zugriffsmodifikatoren (öffentlich und privat) verwendet. Im nächsten Kapitel werden Zugriffsmodifikatoren und Nichtzugriffsmodifikatoren ausführlich erläutert.