Resumo da Transcrição
Nesta aula, foi discutido o uso de interfaces em programação, especialmente a interface geométrica e sua implementação em tipos concretos, como o quadrado. A seguir estão os principais pontos abordados:
-
Interface Geométrica: A interface geométrica não declara a propriedade lado, que é específica do quadrado. Portanto, não se pode acessar G.lado quando G é uma variável do tipo geométrica, pois nem todas as formas geométricas possuem a propriedade lado (por exemplo, o círculo).
-
Remoção da Propriedade lado: Para resolver o problema, foi necessário remover a referência a G.lado. O acesso à área do quadrado foi feito através do método área contido na interface geométrica.
-
Cálculo da Área: A área do quadrado foi calculada com base no lado 3, resultando em uma área de 9. Para exibir o resultado corretamente, foi modificado o método de formatação da impressão.
-
Implementação de Métodos: A interface geométrica define a assinatura do método área, que deve ser implementado por qualquer tipo que deseje ser considerado geométrico, como o quadrado.
-
Atribuição de Tipos: O quadrado, por implementar a interface geométrica, pode ser armazenado em uma variável do tipo geométrica. Entretanto, mesmo armazenando um quadrado em uma variável geométrica, não se pode acessar diretamente suas propriedades específicas.
-
Chamada de Métodos: Ao chamar o método área da variável G, a implementação correspondente ao quadrado é invocada, que utiliza Q.lado para calcular a área.
Conclusão
A aula enfatizou a distinção entre interfaces e tipos concretos, a importância de declarar propriedades nas interfaces, e a forma correta de chamar métodos quando se trabalha com variáveis de tipos da interface.
Até a próxima aula!
Então, batemos num detalhe que tentamos referenciar a propriedade lado usando a variável G,
que por si própria é do tipo geométrica.
Mas, geométrica é uma interface, mas não há a declaração da propriedade lado na geométrica.
Usando nossa intuição, a gente achava que talvez devido a quadrado implementar a interface geométrica,
teríamos acesso ao lado do próprio quadrado, mas esse não é o caso.
Então, felizmente, não posso usar isso aqui.
A não ser que eu tenha definido o lado na interface geométrica,
para poder acessar diretamente através da variável de interface,
mas como o lado não é comum a todas as formas geométricas, por exemplo, o círculo não tem lado,
então não posso fazer isso.
Então, eu vou ter que remover o G.lado daqui.
A única maneira de poder acessar isso é se a variável fosse do tipo quadrado.
Então, vamos revolver aqui.
A área do quadrado é, essa vai ser a mensagem, e vou chamar a área através da variável de interface geométrica.
E por si própria, vai chamar a área o método do que foi definido pelo quadrado.
Vamos salvar e tentar novamente no terminal.
Ah, o que é que aconteceu aqui?
Eu acho que a área do quadrado é o centro de G.area.
Será que eu fiz?
Nesse caso, o quadrado tem lado 3, então a área vai ser 9.
Talvez esse percentual seja por cento F.
Tá certo.
E vamos usar uma nova linha.
Então, a área do quadrado é 9.
Eu trouquei o percento D por por cento F.
Acho que também V serve.
V tira os pontos.
Tá?
Usando printf.
Se você quiser aprender mais para o printf ver na referência,
às vezes a gente se esquece de qual percentual usar.
Então, só referenciar a documentação.
Certo? Então, vamos ver o que aconteceu.
Temos a interface geométrica que tem assinatura do método área.
Então, a interface geométrica, se você quiser implementar o seu tipo,
tem que implementar a função método área.
Nesse caso, temos o tipo quadrado que tem o método área.
Como tem o método área aqui no quadrado,
o quadrado implicitamente implementa a interface geométrica.
Nesse caso, se tiver um variável do tipo de interface geométrica,
podemos atribuir essa variável.
Um outro tipo que é o tipo quadrado,
porque o quadrado implementa a interface geométrica.
Portanto, pode ser armazenado em variável do tipo geométrica.
Aprendemos que, embora que podemos armazenar o quadrado
na variável do tipo geométrica,
não podemos referenciar diretamente a propriedade do quadrado,
que é o lado, porque não está presente na interface geométrica.
Então, usamos a variável G de tipo geométrica,
interface geométrica, para chamar o método área.
Note que área é presente na lista de assinaturas geométrica,
mas ele vai chamar o área do quadrado que está armazenado no G.
Portanto, a função área que será chamada será essa,
que é da linha 15 do quadrado,
que vai por si chamar o Q ponto lado
vezes Q ponto lado, que é a área do quadrado,
o lado do quadrado.
Está certo?
Então, por essa aula é só.
E até a próxima.
Comentários
Entre para participar da conversa.
Carregando comentários…