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 -
- Manipulação de bits em Java
- Melhor IDE Java
- Heap Sort In Java
- O que é a interface Java?
- O que é Construtor e Destrutor em C ++?
- Exemplos para implementar a classificação de heap em Python
- Guia para destruidor em PHP com exemplos