Please enable JavaScript.
Coggle requires JavaScript to display documents.
Programação Orientada a Objetos - Coggle Diagram
Programação Orientada a Objetos
Encapsulamento
Separação dos aspectos internos e externos de um objeto.
Impede acesso direto aos estados de um objeto, disponibilizando apenas método que permitam alterações
Permite ignorar detalhes de implementação, fazendo com que o código possa ter um nível de abstração maior
Os modificadores de acesso que restringem o acesso aos membros da classe
Exemplos: Uso dos Getters e Setters para manipulação dos valores. Modificadores de acesso(public, default, protected e private)
Interface
Definição de métodos, sem implementação
Uma classe pode ter apenas uma superclasse, mas várias interfaces
É como um contrato, que define um conjunto de método que DEVEM ser implementados.
Não define métodos construtores
Exemplo: Definição dos métodos que serão necessários em uma calculadora, como na atividade feita.
Classe abstrata
Classe que não pode ser instanciada, definida pelo uso da palavra protegida abstract
Fornece uma superclasse apropriada para as outras classes que venham utilizá-la como base
Seus métodos podem ser implementados ou abstratos
Exemplo: Classe que define um carro e seus métodos básicos. Pode depois ser utilizada para definir classes de diversos tipos de carros, como esportivos, SUV's, e etc.
Herança
Usada para reutilização de código, a herança é utilizada para absorver métodos de uma classe já existente e aprimorá-la caso necessário
Absorve os métodos de uma classe com definição mais genérica, e aplica as especificidades conforme o uso
Superclasse: Classe genérica, Subclasse: Classe específica, herda métodos da superclasse
Exemplo: Criação de uma classe pessoa, que depois será utilizada para gerar uma Pessoa Física e Pessoa Jurídica
Coesão e Acoplamento
Coesão: Código com especificidade bem definida, onde cada etapa resolve apenas uma funcionalidade da aplicação
Acoplamento: Dependências entre classes.
Buscamos alta coesão e baixo acoplamento, onde cada etapa do nosso código tem uma tarefa bem definida e não geramos dependências desnecessárias durante esse processo
Exemplo: Coesão: Em uma calculadora, um método para soma, um para subtração e etc.
Exemplo: Acoplamento: Utilização de funções ao invés de classes, gerando dependências futuras que poderiam ser evitadas