Java - konstruktory

Konstruktor inicjuje obiekt podczas jego tworzenia. Ma tę samą nazwę co jego klasa i jest składniowo podobny do metody. Jednak konstruktory nie mają jawnego typu zwracanego.

Zwykle konstruktor będzie używany do nadawania wartości początkowych zmiennym instancji zdefiniowanym przez klasę lub do wykonywania innych procedur startowych wymaganych do utworzenia w pełni uformowanego obiektu.

Wszystkie klasy mają konstruktory, niezależnie od tego, czy je zdefiniujesz, czy nie, ponieważ Java automatycznie udostępnia domyślny konstruktor, który inicjuje wszystkie zmienne składowe na zero. Jednak po zdefiniowaniu własnego konstruktora domyślny konstruktor nie jest już używany.

Składnia

Poniżej znajduje się składnia konstruktora -

class ClassName {
   ClassName() {
   }
}

Java pozwala na dwa typy konstruktorów, a mianowicie -

  • Brak konstruktorów argumentów
  • Sparametryzowane konstruktory

Brak konstruktorów argumentów

Ponieważ nazwa określa, że ​​konstruktory bez argumentów języka Java nie akceptują żadnych parametrów zamiast tego, przy użyciu tych konstruktorów zmienne instancji metody zostaną zainicjowane stałymi wartościami dla wszystkich obiektów.

Przykład

Public class MyClass {
   Int num;
   MyClass() {
      num = 100;
   }
}

Możesz wywołać konstruktora w celu zainicjowania obiektów w następujący sposób

public class ConsDemo {
   public static void main(String args[]) {
      MyClass t1 = new MyClass();
      MyClass t2 = new MyClass();
      System.out.println(t1.num + " " + t2.num);
   }
}

Dałoby to następujący wynik

100 100

Sparametryzowane konstruktory

Najczęściej będziesz potrzebować konstruktora, który akceptuje jeden lub więcej parametrów. Parametry są dodawane do konstruktora w taki sam sposób, w jaki są dodawane do metody, po prostu zadeklaruj je w nawiasach po nazwie konstruktora.

Przykład

Oto prosty przykład wykorzystujący konstruktora -

// A simple constructor.
class MyClass {
   int x;
   
   // Following is the constructor
   MyClass(int i ) {
      x = i;
   }
}

Możesz wywołać konstruktora, aby zainicjować obiekty w następujący sposób -

public class ConsDemo {
   public static void main(String args[]) {
      MyClass t1 = new MyClass( 10 );
      MyClass t2 = new MyClass( 20 );
      System.out.println(t1.x + " " + t2.x);
   }
}

Dałoby to następujący wynik -

10 20