Aplicando a Orientação a Objetos: Os métodos[2/10]🧶
Tags: beginners, programming, csharp
Published: 2023-05-29 11:42:04

_Com o propósito de processar informações e realizar operações, os métodos são de extrema importância na orientação a objetos além de oferecerem uma gama de benefícios para a codificação, tais como reaproveitamento e limpeza de código. Antes de implementá-los, é de suma importância entender os seus tipos._
## 
As classes, independente do conceito a qual elas representam, podem implementar quantos métodos forem necessários para a execução do programa. Eles podem trabalhar em conjunto ou individualmente, isto é, um método pode ser utilizado dentro de outro método e por aí vai. Mas além dos métodos mostrados anteriormente, temos outros dois tipos, os construtores e os destrutores. 
## 
## **CONSTRUTORES**
## 
Um método construtor é o principal responsável pela criação de um objeto, conceito que será visto posteriormente. Sempre que um objeto for criado, o método construtor agirá antes de qualquer coisa e instanciará a classe com os atributos criados. Com o construtor acionado, a instância de uma classe será realizada e o resultado disso será a criação do objeto. 

A utilização de um construtor não se dá apenas à parte de criação de objetos, mas também de fornecer valores iniciais para o objeto. Um método construtor tem exatamente o mesmo nome que a sua classe, podendo ou não ter parâmetros.  

## 

![ICodificação de um método construtor](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/173v8gtpt4y613bs5gd5.png)

- Acima temos a classe Livro que possui 3 atributos, NomeLivro, QuantidadeDePaginas e ISBN.

- O primeiro método construtor, Livro(){} é o construtor vazio. Quando um objeto for instanciado a partir dele, todos os atributos serão nulos, ou vazios.

- O segundo método construtor possui 3 parâmetros com os mesmos nomes dos atributos. Isso se dá porque no momento em que o objeto for instanciado, os valores passados no parâmetro serão os valores iniciais dos atributos do objeto. 

- O nome da classe recebe o parâmetro nome do construtor, é assim que a associação é feita.

## 

Como visto acima, um construtor deve ter o mesmo nome da classe e não necessita de um parâmetro de retorno (int, double, void, …) pois o retorno de um construtor já é o próprio tipo da classe. Na linguagem c#, os construtores são implícitos, isso significa que não é necessário a criação manual do construtor para que um objeto seja instanciado. Somente quando precisamos definir quais os parâmetros iniciais de um objeto é que os construtores são realmente necessários. Um exemplo é, se quiséssemos criar um objeto Livro fornecendo apenas o Nome e o ISBN, (sem o número de páginas) seria necessário a criação de um construtor fornecendo apenas estes dois parâmetros. Outro fator importante dos construtores é a necessidade de inicializar objetos com valores diferentes de nulo, isto é, quando criamos apenas **um** construtor atribuindo parâmetros, isso **obriga** que o objeto **só seja instanciado se os valores especificados no corpo do construtor forem fornecidos na criação do objeto.** Quer dizer que o objeto só será criado se os parâmetros do método forem fornecidos. 

## 

## **DESTRUTORES**
## 

Se os construtores constroem os objetos, os destrutores desfazem. Eles são pouco usados e geralmente tem o objetivo de limpar a carga de objetos que não são mais necessários para a execução do programa. Assim como construtores, eles não precisam de um tipo de retorno. Sua sintaxe é muito simples, só necessita de um ~ antes do método. No ecossistema .NET possuímos o garbage collector que faz o gerenciamento de memória e descarta o que não está sendo utilizado, tornando o destrutor uma ferramenta muito específica para uma necessidades isoladas.
## 


![Codificação de um método destrutor](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mft0z166h5gr6it1j1q7.png)
## 

A construção e destruição dos métodos são codificações simples que em grande parte do tempo são facilitadoras na hora de instanciar objetos, tornando o código mais legível. Além deles, existem ainda outras operações que são realizadas com os métodos e serão vistas no próximo tópico.