Exercícios Resolvidos de Destruidores

Ver Teoria

Enunciado

Crie uma classe círculo com os atributos d e s l o c a r que desloca o centro do círculo em x e y , a u m e n t a r que aumenta o raio do círculo, e i m p r i m i r que mostra as informações do círculo. Crie um construtor que defina os dados iniciais do círculo (raio e centro). Defina um destrutor que execute o método i m p r i m i r . Os atributos da classe devem ser privados.

Passo 1

Vamos lá pessoal.

Essa é uma questão de construtor e destrutor! A questão pede pra gente criar uma classe que tenha um método destruidor e um método construtor, e outros três métodos úteis.

Então vamos começar escrevendo o cabeçalho do código.

Passo 2

Então vamos começar escrevendo a estrutura da classe. Vamos declarar todos os atributos e métodos, e depois a gente desenvolve o conteúdo de cada um deles.

Primeiro, vamos declarar os atributos. Um círculo possui uma posição x , y de seu centro e um valor de raio r . Todos devem ser valores reais do tipo f l o a t .

Logo em seguida, vamos declarar os métodos construtor e destrutor, métodos que não possuem tipo, e têm o mesmo nome da classe. O método destruidor tem o nome começado com o símbolo ~ .

O método construtor vai receber o valor dos atributos x ,   y e r . E o destruidor não recebe nenhum valor.

Em seguida, vamos declarar os demais métodos da classe d e s l o c a r , a u m e n t a r e i m p r i m i r .

Certo. Criamos o esqueleto da nossa classe apenas declarando os protótipos de todos os métodos. Nos próximos passos vamos desenvolver esses métodos.

Passo 3

Vamos desenvolver primeiro a parte mais importante da questão, o construtor e o destrutor.

Primeiro, lembre-se que pra desenvolver um método que já foi declarado, é só a gente chamar esse método usando o operador de escopo

t i p o   N o m e C l a s s e ∷ N o m e M e t o d o   p a r a m e t r o s   {   c o n t e u d o   d o   m e t o d o   }

Então vamos pro construtor. Ele é um método sem tipo, que recebe os três parâmetros da classe. Depois, a gente usa o t h i s para chamar os atributos da classe e inicializamos com o valor dos atributos.

E o construtor está construído.

Vamos agora dar uma olhada no destruidor. Pra desenvolver um destruidor é só a gente chamar a o método com ~ e mesmo nome da classe: ~ C i r c u l o (   ) . E dentro do destruidor a gente vai executar o método i m p r i m i r ( )

E pronto! Não tem dificuldade na hora de criar um destruidor.

Passo 4

O próximo passo é definir os outros métodos da classe.

Primeiro o método d e s l o c a r . Esse método vai receber como parâmetro um valor de deslocamento para cada uma das componentes. E dentro desse método vamos atualizar os atributos x e y para adicionar o valor de deslocamento.

Seguindo em frente, vamos desenvolver o método a u m e n t a r . Esse método vai receber como parâmetro um valor de proporção, e dentro do método vamos multiplicar o valor do raio por essa proporção.

O último método que precisamos desenvolver é o i m p r i m i r , que não precisa receber nenhum parâmetro. Dentro desse método vamos apenas usar o c o u t para imprimir uma mensagem com todos os atributos da classe:

E com isso a gente termina de desenvolver os métodos da classe! A classe está prontinha!

Passo 5

Agora é só a gente testar!

Primeiro, vamos criar um objeto da classe C i r c u l o . E vamos executar os métodos a u m e n t a r e d e s l o c a r

E agora é só a gente rodar, e olha que legal esse resultado. A gente não executou o método imprimir diretamente, porém o método imprimir está dentro do destruidor então, no momento que o programa acaba o objeto é destruído, e consequentemente o método i m p r i m i r é executado.

E prontinho! Classe feita e testada.

Resposta