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