Konstruktor w Javie - Różne typy konstruktorów z przykładami

Spisie treści:

Anonim

Wprowadzenie do konstruktora w Javie

Konstruktory w Javie to specjalne typy metod, które są używane do inicjalizacji obiektów klasy. Konstruktory są wywoływane w momencie tworzenia obiektu klasy. Podobnie jak metody, chociaż zawierają zestaw linii kodu, różnią się od nich. Konstruktory mają taką samą nazwę jak klasa Java, ale nie ma żadnego typu zwracanego. W Javie nowe słowo kluczowe () używane do tworzenia obiektu i za każdym razem, gdy tworzony jest nowy obiekt i wywoływany jest jeden konstruktor. Konstruktor jest wywoływany po przydzieleniu pamięci do obiektu. W momencie tworzenia obiektu konstruktory są używane do inicjowania wartości zmiennych klas do wartości domyślnych lub pożądanych.

Jeśli użytkownik nie utworzy żadnego konstruktora w programie, sam Java tworzy dla niego domyślny konstruktor i przypisuje wartości domyślne do różnych obiektów, np. Dla liczbowej wartości domyślnej jest 0, dla znaku („\ 0”) i zmiennych odniesienia jako null . Podobnie jak metody, konstruktory mogą być przeciążone, tzn. Jedna klasa może mieć wiele konstruktorów, jeśli wszystkie mają unikalną sygnaturę.

Podstawowa składnia konstruktora w Javie jest podana poniżej:

Składnia

public class Student() // name of the class
(
. . . .
. . . .
. . . .
Student() // this is Constructor with the same name of class
(
. . .
. . .
)
new Student(); // object creation and value initialization
)

W powyższej składni Student () to nazwa konstruktora, która jest taka sama jak nazwa klasy, a obiekty w Javie są tworzone za pomocą słowa kluczowego new.

Jak działa Konstruktor w Javie?

Aby zrozumieć działanie konstruktorów w Javie, weźmy przykład podany poniżej:

Kod

public class Student()
(
int rollno;
String name;
Student(int rollno, String name)
(
this.rollno = rollno;
this.name = name;
)
public static void main(String() args)
(
Student st = new Student(12, 'Ananya');
System.out.println(“Student name = ”+ st.name + “Student rollno = ”+st.rollno);
)
)

Wynik

W powyższym przykładzie mamy zmienne instancji (zmienne klasy). Roll no i name and st Jest to nazwa obiektu utworzonego z klasy Student. Kiedy obiekt st jest tworzony, wywołuje konstruktora Student i inicjuje zmienne klas z wartością rollno równą 12 i nazwą jako „Ananya”, w przeciwnym razie wartości domyślne, takie jak 0 dla rollno i null dla nazwy, zostaną przypisane do zmiennych. Dlatego po przypisaniu wartości i wydrukowaniu ich nazwisko jest drukowane jako Ananya i Student rollno jako 12.

Typy konstruktorów w Javie

Istnieją 2 typy konstruktorów w Javie w oparciu o parametry:

1. Niesparametryzowany / Brak argumentów Konstruktor

Gdy nie przekazujemy argumentów do konstruktora, konstruktor ten znany jest jako konstruktor nieparametryzowany lub bez argumentu. Gdy programista nie definiuje żadnego konstruktora w programie Java, wówczas sam kompilator Java dodaje do niego konstruktor, znany jako konstruktor domyślny, który zapewnia wartości domyślne dla obiektu, takie jak 0, null itp. Domyślny konstruktor nie jest specjalnym typem konstruktora ale należy do kategorii konstruktora bez argumentów.

Przykład (domyślny konstruktor)

Kod

public class Hello()
(
String name;
void display() //method to display name the value of variables
(
System.out.println(“name is” +name);
)
)
public class HelloMain()
(
public static void main(String() args)
(
Hello h1 = new Hello();
h1.display();
)
)

Wynik:

W powyższym przykładzie nie jest to żaden konstruktor zdefiniowany przez programistę, więc kompilator będzie traktował ten program jako:

Kod

public class Hello()
(
String name;
Hello() //default constructor created by compiler
(
name = null
)
void display()
(
System.out.println(“name is” +name);
)
)
public class HelloMain()
(
public static void main(String() args)
(
Hello h1 = new Hello();
h1.display();
)
)

Przykład (nieparametryzowany konstruktor)

Kod

public DemoProgram() // class
(
DemoProgram() // constructor with no arguments
(
System.out.println(“Hello this is just an example of no-arg constructor”);
)
public static void main(String() args)
(
new DermoProgram();
)
)

Wynik:

Jak w powyższym przykładzie, w przypadku konstruktora DemoProgram () nie przekazano żadnych argumentów, wypisywana jest tylko wiadomość, a zatem jest ona znana jako konstruktor bez argumentów.

2. Sparametryzowany konstruktor

Konstruktory sparametryzowane to te konstruktory, w których przekazujemy argumenty lub parametry. W tym konstruktorze wartości są przekazywane w momencie tworzenia obiektu.

Przykład (sparametryzowane konstruktory)

Kod

public class Animal()
(
int legs;
String sound;
Animal(int legs, String sound) // parameterized constructor
(
this.legs = legs; // values with get initialize of what is passed while object crea-this.sound = sound; // tion, ie (4, “bow bow”)
)
void display() // method to display the values
(
System.out.println(“Legs are ”+legs+“Sound is ”+sound);
)
)
class AnimalPlanet()
(
Public static void main(String() args)
(
Animal an = new Animal(4, “bow bow”);
an.display();
)
)

Wynik:

W powyższym przykładzie wartość 4 jest przypisana do nóg, a ciąg „łuk dziobowy” jest przypisany do dźwięku w konstruktorze Animal. Tak więc po wywołaniu metody wyświetlania obie wartości są drukowane na wyjściu.

Ważne punkty do zapamiętania

  • Każda klasa ma konstruktor, niezależnie od tego, czy programista ją tworzy, czy nie.
  • Nazwa konstruktora powinna być taka sama jak nazwa klasy.
  • Konstruktor nie ma typu zwracanego, w przeciwieństwie do metod.
  • Słowo kluczowe this () i super () musi być pierwszą instrukcją w konstruktorze.
  • Podobnie jak metody, konstruktory mogą być przeciążone.
  • Konstruktorów nie można zastąpić.
  • Jeden konstruktor może wywołać inny konstruktor tej samej klasy, używając słowa kluczowego this ().
  • Specyfikatory / modyfikatory dostępu można zastosować przed nazwą konstruktora, aby zadeklarować jego zakres w klasie.
  • W Javie konstruktor nigdy nie może być statyczny, końcowy, abstrakcyjny i zsynchronizowany.

Wniosek

Konstruktorzy odgrywają ważną rolę, jeśli chodzi o pracę z językiem programowania Java. Konieczne jest zrozumienie pełnych koncepcji konstruktora, różnych typów konstruktorów, łączenia łańcuchów konstruktorów, słowa kluczowego super () używanego do wywoływania konstruktora nadrzędnego, aby działał zgodnie z określonym scenariuszem. Chociaż praca z konstruktorami w Javie jest bardzo łatwa jak praca z metodami, ale jest kilka punktów specyficznych dla konstruktorów, których należy się dokładnie nauczyć.

Polecany artykuł

To jest przewodnik po konstruktorze w Javie. Tutaj omawiamy działanie konstruktora w Javie wraz z typami i przykładami z odpowiednią implementacją kodu. możesz także przejrzeć nasze sugerowane artykuły, aby dowiedzieć się więcej-

  1. Konstruktor w JavaScript i typy
  2. Wprowadzenie do konstruktora w Pythonie
  3. Konstruktor w C ++ i typach
  4. Konstruktor w PHP (przykłady)