Construtores e Destrutores Paradigmas de Programação Marco Antonio Montebello Júnior [email protected] Construtores Construtores são procedimentos realizados na construção de objetos Parecem métodos, mas não têm tipo de retorno e têm nome idêntico ao nome da classe Não fazem parte da definição do tipo do objeto (interface) Nem sempre aparecem explícitos em uma classe: podem ser omitidos (o sistema oferece uma implementação padrão) Para cada objeto, o construtor é chamado exatamente uma vez (durante sua criação) Exemplo: Objeto obj = new Objeto(); Alguns podem requerer parâmetros Objeto obj = new Objeto(35, "Nome"); Paradigmas de Programação 2 Construtores Implícitos São aqueles que não são declarados dentro do código da classe, porém são chamados no momento da instanciação. A linguagem se encarrega de iniciar os atributos da classe com os valores padrões adequados aos seus tipos. Explícitos São construtores declarados dentro do código da classe e que têm a finalidade de iniciar os atributos com valores diferentes dos padrões ou realizar determinadas tarefas no momento em que o objeto é criado. Paradigmas de Programação 3 Construtores Características É o primeiro método executado por um objeto. Deve ter o mesmo nome da classe. Não pode ter um tipo de retorno. É utilizado quando um objeto é instanciado através do operador new Na maioria das vezes é declarado como public Ele é responsável por alocar memória Paradigmas de Programação 4 Construtores Exemplo class Cliente { int codigo; string nome; //Construtor public Cliente() { } } Paradigmas de Programação 5 Construtores Exemplo class Cliente { int codigo; string nome; //Construtor public Cliente(int cod, string nom) { codigo = cod; nome = nom; } } Paradigmas de Programação 6 Construtores Exemplo class Cliente { int codigo; string nome; //Construtores public Cliente() { } public Cliente(int cod, string nom) { codigo = cod; nome = nom; } } Paradigmas de Programação 7 Destrutores Assim como os construtores, são métodos especiais que liberam os recursos alocados pelo objeto São executados quando o garbage collector elimina um objeto da memória Paradigmas de Programação 8 Destrutores Só pode existir um destrutor por classe Não podem ser chamados são executados automaticamente Não possuem modificadores de acesso (public, private) e não recebem parâmetros Não utilizar destrutores vazios em C# O mesmo gera um processamento desnecessário Paradigmas de Programação 9 Destrutores class Cliente { int codigo; string nome; //Destrutor ~Cliente() { //Codigo implementado para limpeza } } Paradigmas de Programação 10