16.7. Orientação a Objetos em C#: Construtores e Destrutores

Página 23

Na programação orientada a objetos em C#, os construtores e destrutores são métodos especiais que são executados automaticamente quando um objeto é criado e destruído. Eles são essenciais para a inicialização e limpeza de recursos de objeto.

Construtores

Em C#, um construtor é um método especial com o mesmo nome da classe. Ele é chamado automaticamente quando um objeto é criado. O construtor não tem um tipo de retorno, nem mesmo void. Isso o distingue dos outros métodos. O construtor é usado para inicializar os campos de dados do objeto e executar qualquer outra configuração necessária.

public class Game
{
    public string name;
    public Game(string name)
    {
        this.name = name;
    }
}

Neste exemplo, a classe Game tem um construtor que aceita um parâmetro de string. Quando um objeto Game é criado, o construtor é chamado com o valor do nome do jogo.

Game game = new Game("Super Mario");

Aqui, "Super Mario" é passado para o construtor da classe Game, e o campo name do objeto game é inicializado com esse valor.

Se não definirmos um construtor para uma classe, o compilador C# criará automaticamente um construtor padrão sem parâmetros para nós. Este construtor padrão inicializará todos os campos do objeto com seus valores padrão.

Destrutores

Em C#, um destrutor é um método especial que é chamado automaticamente quando um objeto é destruído. O destrutor tem o mesmo nome que a classe, precedido por um til (~). O destrutor não pode ter parâmetros nem tipo de retorno.

public class Game
{
    ~Game()
    {
        // código para limpar recursos
    }
}

Neste exemplo, a classe Game tem um destrutor. O código dentro do destrutor será executado quando o objeto Game for destruído.

Os destrutores são usados para liberar recursos não gerenciados que o objeto pode ter adquirido durante sua vida. Recursos não gerenciados são recursos que o coletor de lixo .NET não pode limpar automaticamente, como identificadores de arquivo, conexões de banco de dados ou buffers de memória não gerenciados.

Em C#, não precisamos (e não podemos) chamar explicitamente um destrutor. O coletor de lixo .NET chama o destrutor automaticamente quando não há mais referências ao objeto. No entanto, não podemos prever quando o coletor de lixo executará a coleta de lixo, portanto, não podemos prever quando o destrutor será chamado.

Se precisarmos liberar recursos não gerenciados imediatamente, podemos implementar o método Dispose da interface IDisposable. Podemos chamar Dispose explicitamente quando terminamos de usar o objeto. Dentro do método Dispose, devemos liberar todos os recursos não gerenciados e chamar GC.SuppressFinalize(this) para informar ao coletor de lixo que ele não precisa chamar o destrutor.

Em resumo, os construtores e destrutores em C# são métodos especiais que são chamados automaticamente quando um objeto é criado e destruído. Eles são usados para inicializar e limpar recursos de objeto. Embora o coletor de lixo .NET lide com a maioria dos detalhes de gerenciamento de memória para nós, ainda precisamos entender como e quando usar construtores e destrutores para gerenciar recursos de maneira eficaz.

Now answer the exercise about the content:

Qual é a função dos construtores e destrutores na programação orientada a objetos em C#?

You are right! Congratulations, now go to the next page

You missed! Try again.

Next page of the Free Ebook:

2416.8. Orientação a Objetos em C#: Métodos e Propriedades

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text