Wprowadzenie do Constructor i Destructor w Javie

Poniższy artykuł Constructor and Destructor w Javie zawiera szczegółowy zarys tworzenia konstruktorów i destruktorów w Javie. Każdy język programowania ma tę koncepcję zwaną konstruktorem i destruktorem. Java jest zorientowanym obiektowo językiem programowania. Jeśli znasz pojęcia zorientowane obiektowo, korzystne będzie dla ciebie lepsze zrozumienie. Konstruktor to coś, co inicjuje obiekty, a destruktory niszczą tę inicjalizację. Java ma automatyczne zbieranie śmieci, które używa algorytmu mark i sweep.

Co to jest Constructor and Destructor w Javie?

Konstruktor służy do inicjalizacji zmiennej, co oznacza, że ​​alokuje pamięć dla tego samego Konstruktor to nic innego jak automatyczna inicjalizacja obiektu. Za każdym razem, gdy program tworzy obiekt, konstruktor jest wywoływany automatycznie. Nie musisz jawnie wywoływać tej metody. Destructor służy do zwalniania pamięci przydzielonej podczas inicjalizacji. Zasadniczo w Javie nie musimy jawnie wywoływać destruktora. Java ma funkcję automatycznego usuwania śmieci.

Dlaczego potrzebujemy konstruktora i niszczyciela w Javie?

Konstruktor i destruktor są najczęściej używane do wydajnej alokacji pamięci i alokacji. Konstruktor i destruktor odgrywają bardzo ważną rolę w każdym języku programowania inicjowania i niszczenia go po użyciu, aby zwolnić miejsce w pamięci.

Jak działa Konstruktor i Niszczyciel w Javie

Konstruktor to tylko metoda w Javie. Która ma taką samą nazwę jak nazwa klasy. metoda konstruktora nie ma dla niej żadnego typu zwracanego.

Spójrz na poniższy przykład dla większej przejrzystości:

class Employee (
Employee() (
)
)

Jeśli widzisz w powyższym przykładzie, nie podaliśmy żadnego typu zwrotu, takiego jak int lub void dla metody, która ma taką samą nazwę jak nazwa klasy.

Służy głównie do inicjalizacji obiektu. Kiedy tworzymy obiekt klasy w tym czasie, wywoływany jest konstruktor.

Będzie to bardziej zrozumiałe dzięki poniższemu fragmentowi kodu.

Jak tworzyć konstruktory i niszczyciele w Javie?

Spójrz na następujący przykład

class Employee (
Employee() ( //This is constructor. It has same name as class name.
System.out.println(“This is the default constructor”);
)
)

Rodzaje konstruktorów

Istnieją dwa typy konstruktorów, w zależności od typu, który możemy dodawać i usuwać zmienne.

1. Domyślny konstruktor

2. Sparametryzowany konstruktor

Dzięki temu zobaczymy również przeciążenie konstruktora.

1. Domyślny konstruktor

To jest jeden typ konstruktora. Domyślnie bez żadnych parametrów ten konstruktor ma miejsce. Ten konstruktor nie zawiera żadnych parametrów.

Przykład:

Class Abc(
Abc()(
System.out.println(“This is the example of default constructor.”);
)
)

2. Sparametryzowany konstruktor

Jak sama nazwa wskazuje, sparametryzowany konstruktor ma pewne parametry lub argumenty w momencie inicjalizacji obiektu.

Przykład:

class Square(
int width, height;
Square( int a, int b)(
width = a;
height = b;
)
int area()(
return width * height;
)
)
class Cal(
public static void main(String() args)(
(
Square s1 = new Square(10, 20);
int area_of_sqaure = s1.area();
System.out.println("The area of square is:" + area_of_sqaure);
)
)
)

Wynik:

java Cal

Powierzchnia kwadratu wynosi 200

Czas porozmawiać o przeciążeniu konstruktora w Javie. Oznacza to, że posiadanie wielu konstruktorów o różnych parametrach. Dzięki temu każdy konstruktor może wykonywać różne zadania. Czasami zgodnie z wymaganiami musimy inicjować konstruktory na różne sposoby.

Przykład

public class Abc(
String name;
int quantity;
int price;
Abc( String n1, int q1, int p1)(
name = n1;
quantity = q1;
price = p1;
)
Abc( String n2, int p2)(
name = n2;
price = p2;
quantity = price/10;
)
void display()(
System.out.println("Product Name"+ name);
System.out.println("Product quantity is"+ quantity);
System.out.println("Product price is:"+ price);
)
public static void main(String() args)(
Abc product1;
product1 = new Abc("Dates", 500, 50);
product1.display();
product1 = new Abc("cashu", 800);
product1.display();
)
)

Wynik:

Data nazwy produktu

Ilość produktu to 500

Cena produktu wynosi 50

Nazwa produktu cashu

Ilość produktu wynosi 80

Cena produktu to 800

Wypróbuj powyższy program, a będziesz jasne, co dokładnie dzieje się z przeciążeniem konstruktora.

Burzyciel

Zanim zacznę mówić o destruktorze, powiem ci, że w Javie nie ma destruktora. Destructor jest w języku programowania C ++. Jeśli mówimy o Javie, to java ma funkcję o nazwie automatyczny moduł czyszczenia pamięci. Które zwalniają pamięć przydzielaną dynamicznie, gdy nie jest używana. Ta koncepcja jest bardzo ważna i możesz dowiedzieć się więcej o tym śmieciu w Javie.

  • Java automatycznie stosuje technikę zbierania odzieży do przydzielania pamięci.
  • Nie ma potrzeby jawnego korzystania z destruktorów, takich jak C ++.
  • Do przydzielania pamięci w java nie mamy funkcji malloc, jak w programowaniu C.
  • Ten sam proces przydzielania pamięci jest wykonywany przez nowego operatora w java.
  • nowe słowo kluczowe przydziela przestrzeń pamięci dla obiektu w pamięci sterty.
  • W momencie wykonywania programu nowe słowo kluczowe przydziela część pamięci dla obiektu. Użytkownik końcowy musi się tym martwić, ponieważ program zajmuje się przydzielaniem pamięci. W momencie, gdy obiekt używany w programach wykonanych z pracą, pamięć używana dla obiektu jest wykorzystywana do innego zadania. Ten proces efektywnego wykorzystania pamięci jest zadaniem czyszczenia pamięci w java.

Porozmawiajmy więc o destruktorze. Jak wiemy, w Javie nie ma destruktora, ponieważ ma do tego metodę finalize (). Oto niektóre z kluczowych punktów, na które należy zwrócić uwagę.

Metody Finalize ()

  • Metoda finalizacji działa podobnie jak destruktor i jest przeciwieństwem konstruktora, jak widzieliśmy wcześniej.
  • Zasadniczo do usunięcia obiektu używana jest metoda finalizacji.
  • Aby skorzystać z tej metody, musimy jawnie zdefiniować tę metodę w Javie.
  • Metoda finalizacji zaczyna działać po zakończeniu czyszczenia pamięci.
  • Oznacza to po prostu, że po zwolnieniu przestrzeni pamięci poprzez zwolnienie przestrzeni pamięci z obiektów istnieje prawdopodobieństwo, że wykorzystanie pamięci nadal tam z innymi rzeczami, takimi jak czcionki itp., Aby usunąć tę pamięć lub zwolnić tę przestrzeń, wykorzystujemy metodę finalize ().

Wniosek

Konstruktor i destruktor (zbieranie śmieci w Javie) są bardzo ważnymi rzeczami do wyjaśnienia w dowolnym języku programowania, ponieważ jest to początek, w którym można faktycznie dowiedzieć się, jak rzeczy są wykonywane w tle, aby zarządzać pamięcią.

Polecane artykuły

Jest to przewodnik po Constructor and Destructor w Javie. Tutaj omawiamy wprowadzenie do Konstruktora i Niszczyciela, Dlaczego go potrzebujemy i jak konstruktor i niszczyciel działają w Javie wraz z przykładem. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -

  1. Bit Manipulation w Javie
  2. Najlepsze IDE Java
  3. Sortuj sterty w Javie
  4. Co to jest interfejs Java?
  5. Co to jest Constructor and Destructor w C ++?
  6. Przykłady implementacji sortowania sterty w Pythonie
  7. Przewodnik po Destructor w PHP z przykładami