Please enable JavaScript.
Coggle requires JavaScript to display documents.
Mapa Mental II – Revisão POO - Coggle Diagram
Mapa Mental II – Revisão POO
Encapsulamento
Conceito : O conceito de encapsulamento consiste em bloquear modificações externas no objeto. Toda modificação realizada no objeto será realizada através de algum metodo interno da classe, geralmente setters.
Exemplo de Uso : Imagine que estamos implementando uma classe Aluno, onde esse aluno tem um CPF, não seria prudente que qualquer pessoa que utilize a classe aluno faça aluno.cpf = "000.000.000-00", pois o cpf pode não ser valido, portanto seria interessante que esse atributo pudesse ser alterado apenas pela função setCPF. Portanto podemos ver um exemplo claro onde encapsulamento é utilizado.
Herança
Conceito
Método de reaproveitamento de código onde uma classe herda características de outra.
Exemplo de aplicação de uso
Superclasse: Funcionario
Atributos: matrícula, nome, documento, cargo
Subclasse: Funcionario_Interno
Atributos: salario, gerente_direto
Subclasse: Funcionario_Terceiro
Atributos: Consultoria, tempo_de_contrato,
contato_na_consultoria
Dessa forma, o Funcionário Terceiro tem os atributos de sua classe, assim como os atributos da classe Funcionario. Ele não tem um gerente direto, e não tem um salário pago pela empresa, já que quem gerencia o salário dos terceiros é a sua empresa de consultoria
Outro exemplo seria Pessoa. Tanto a Pessoa Física quanto a pessoa jurídica possuem um documento e um nome. Mas somente a Pessoa Física tem uma data de nascimento e o nome da mãe.
Superclasse: Pessoa - Atributos: Documento, Nome
Subclasse: Pessoa_Fisica - Atributos: Nascimento, Nome_Mae
Subclasse: PessoaJuridica - Atributos: Data_de_abertura
Outros
Também conhecida como generalização
Benefícios: Reaproveitamento de código, Facilidade de entender e manipular o código
Interface
Conceito : Uma interface define o que uma classe deve fazer e não como deve ser feito. Logo em uma interface todos os metodos são abstratos e publicos, isso significa que a classe que herda essa interface é obrigada a implementar todos os metodos abstratos. Uma interface não possui construtor e nem pode ser instanciada.
Exemplo : Podemos aplicar o conceito de interface em uma situação onde várias instituições financeiras precisam acessar uma classe conta, é obrigatório nesse contexto que cada instituição implemente as operações basicas : pix, saque, deposito, transferência.
Esses metodos recebem e devolvem atributos com tipos especificados e devem ser comum para todos os bancos, logo podemos implementar uma interface que vai obrigar cada banco a implementar as operações de acordo com o padrão estabelecido.
Alta Coesão e Baixo Acoplamento
Conceito
Acoplamento: em resumo acoplar é sinônimo de conectar. Precisamos manter o baixo acoplamento para que a dependência de nosso código seja baixa, e facilite o entendimento e alteração dos programas.
Quanto mais o programa for fortemente acoplado, mais será difícil prever possíveis problemas que surgirão ao alterar um código.
Alta Coesão: É quando um código cumpre somente a sua responsabilidade, não 'invadindo' responsabilidades que deveriam ser de outro código.
Quanto mais 'dividido' em funções conseguirmos fazer o código, mais código ficará claro para leitores e conseguiremos reaproveitar código
Exemplo de aplicação e uso
Uma função que calcula a média de altura dos alunos, mostra a média na tela e grava no banco não é coesa. Devemos dividir em várias funções pois esta está desenvolvendo múltiplas tarefas
Uma função que aguarda um retorno de uma API, que por sua vez aguarda o retorno de outra API, que por sua vez aguarda o retorno de outra API tem o acomplamento alto, pois tem várias dependências. Devemos diminuir o máximo de dependências no código.
Classes Abstratas
Conceito : Classes abstratas podem conter metodos abstratos que são metodos que não são implementados na classe abstrata, mas é obrigátorio que a classe que herda implemente esses metodos.
Exemplo : Suponha que queremos implementar a classe animal, essa classe tem os seguintes atributos : tipoAnimal, qtdPernas, cor. Essa classe tambem tem uma função fazerBarulho(), onde essa função deve retornar o barulho que o animal faz. A função fazerBarulho() nesse caso deve ser um método abstrato e obrigatoriamente vai ser implementada na classe que filha.