Introdução ao Construtor e Destrutor em Java

O artigo a seguir Construtor e Destrutor em Java fornece um esboço detalhado para a criação de construtor e destruidor em Java. Toda linguagem de programação tem esse conceito chamado construtor e destruidor. Java é uma linguagem de programação orientada a objetos. Se você conhece os conceitos orientados a objetos, será benéfico para você entender mais claramente. Um construtor é algo que inicializa objetos e destruidores devem destruir essa inicialização. Java possui coleta automática de lixo, que utilizou o algoritmo de marcação e varredura.

O que é o Constructor and Destructor em Java?

Um construtor é usado para inicializar uma variável, o que significa que aloca memória para o mesmo. Um construtor não é senão a inicialização automática do objeto. Sempre que o programa cria um objeto naquele momento, o construtor é chamado automaticamente. Você não precisa chamar esse método explicitamente. O destruidor é usado para liberar a memória alocada durante a inicialização. Geralmente, em java, não precisamos chamar explicitamente o destruidor. Java possui um recurso de coleta automática de lixo.

Por que precisamos de construtor e destruidor em Java?

Construtor e destruidor usado principalmente para lidar com alocação e desalocação de memória com eficiência. O construtor e o destruidor desempenham um papel muito importante em qualquer linguagem de programação para inicializá-lo e destruí-lo após o uso para liberar espaço na memória.

Como o Constructor e o Destructor funcionam em Java

Um construtor é apenas um método em java. Que tem o mesmo nome que o nome da classe. O método construtor não possui nenhum tipo de retorno.

Veja o exemplo a seguir para obter mais clareza:

class Employee (
Employee() (
)
)

Se você vê no exemplo acima, não fornecemos nenhum tipo de retorno como int ou void para o método que tem o mesmo nome que o nome de uma classe.

É usado principalmente para inicializar o objeto. Quando estamos criando um objeto de uma classe naquele momento, o construtor é chamado.

Será mais claro com o seguinte trecho de código.

Como criar construtores e destruidores em java?

Veja o exemplo a seguir

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

Tipos de Construtor

Existem dois tipos de construtores, dependendo do tipo que podemos adicionar e remover variáveis.

1. Construtor Padrão

2. Construtor parametrizado

Com isso, também veremos sobrecarga de construtores.

1. Construtor Padrão

Este é o único tipo de construtor. Por padrão, sem nenhum parâmetro, esse construtor ocorre. Este construtor não possui nenhum parâmetro.

Exemplo:

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

2. Construtor parametrizado

Como o nome sugere, o construtor parametrizado possui alguns parâmetros ou argumentos no momento da inicialização do objeto.

Exemplo:

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);
)
)
)

Resultado:

java Cal

A área da praça é 200

Agora, é hora de falar sobre a sobrecarga de construtores em java. Isso significa que ter vários construtores com parâmetros diferentes. Portanto, com isso, cada construtor pode executar tarefas diferentes. Às vezes, conforme o requisito, precisamos inicializar os construtores de maneiras diferentes.

Exemplo

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();
)
)

Resultado:

Datas do nome do produto

A quantidade do produto é 500

O preço do produto é 50

Nome do produto cashu

A quantidade do produto é 80

O preço do produto é 800

Experimente o programa acima e você ficará claro o que exatamente está acontecendo com a sobrecarga de construtores.

Destruidor

Antes de começar a falar sobre destruidor, deixe-me dizer que não há destruidor em java. O destruidor está na linguagem de programação C ++. Se estamos falando de java, o java possui um recurso chamado coletor de lixo automático. Que liberam a memória alocada dinamicamente quando não há uso. Esse conceito é muito importante e você pode explorar mais sobre essa coleta de lixo em java.

  • Java usa a técnica de coleta de roupas para alocação de memória automaticamente.
  • Não há necessidade de uso explícito de destruidores como C ++.
  • Para alocar memória em java, não temos a função malloc, como na programação C.
  • O mesmo processo de alocação de memória é realizado pelo novo operador em java.
  • nova palavra-chave aloca espaço de memória para um objeto na memória heap.
  • No momento da execução do programa, uma nova palavra-chave aloca algum espaço de memória para o objeto. O usuário final precisa se preocupar com isso, pois a alocação de memória é tratada pelo programa. No momento em que o objeto usado nos programas executados com o trabalho, a memória usada para o objeto é utilizada para outra tarefa. Esse processo de utilização eficiente da memória é o trabalho de coleta de lixo em java.

Vamos falar sobre destruidor então. Como sabemos, não há destruidor no java, pois ele possui o método finalize () para fazer isso. A seguir, alguns dos principais pontos a serem observados.

Métodos Finalize ()

  • O método Finalize é um trabalho como destruidor e oposto ao construtor, como vimos anteriormente.
  • Geralmente, o método finalize é usado para remover o objeto.
  • Para usar esse método, precisamos definir explicitamente esse método em java.
  • O método finalize começa a funcionar após a coleta de lixo concluída.
  • Isso significa simplesmente que, após liberar espaço na memória desalocando o espaço da memória dos objetos, há chances de a utilização da memória ainda existir com outras coisas, como fontes etc. para excluir esse espaço da memória ou liberar esse espaço, usando o método finalize ().

Conclusão

Construtor e destruidor (coleta de lixo em java) são coisas muito importantes a serem esclarecidas em qualquer linguagem de programação, pois este é o começo em que você pode realmente entender como as coisas são feitas em segundo plano para gerenciar o espaço de memória.

Artigos recomendados

Este é um guia para o Constructor and Destructor in Java. Aqui discutimos a introdução ao Constructor and Destructor: Por que precisamos dele e como o construtor e o destruidor trabalham em java, juntamente com um exemplo. Você também pode consultar os seguintes artigos para saber mais -

  1. Manipulação de bits em Java
  2. Melhor IDE Java
  3. Heap Sort In Java
  4. O que é a interface Java?
  5. O que é Construtor e Destrutor em C ++?
  6. Exemplos para implementar a classificação de heap em Python
  7. Guia para destruidor em PHP com exemplos