Uma linguagem orientada a objetos PURA – suporta a noção que tudo é um objeto
Uma linguagem orientada a objetos – Não considera tudo um objeto
Um objeto imutável – é aquele cujo estado não muda
Construtores – são métodos usados para inicializar objetos durante a sua instanciação, operador new (Norgs – sem argumentos) e Com argumentos.
Definir um conjunto de comandos que será executado quando a classe onde foi declarada for instanciada
Destrutores – ou finalizador é um método executado quando o objeto é deslocado na memória.
Apaga arquivos temporários criados durante o ciclo de vida do objeto
Finaliza conexões
Acessores – dão acesso aos dados internos do objeto oculta o fato dos dados estarem em uma variavel (tem efeitos colaterais sobre o estado interno)
Mutantes – Permite que você altere o estado interno do objeto
Mensagem – os objetos se comunicam através de mensagens. Faz com que o objeto realiza algo.
Delegação – é o processo de um objeto passar uma mensagem para outro objeto, para atender algum pedido.
Especialização – é o processo de uma class filha ser projetada em termos de como ela e diferente de sua progenitora, depois de feita a classe incluirá apenas o que a torna diferente
Programação por diferença – é herdar uma classe e adicionar apena o código que torne a classe direfente da classe herdada
Herança – é o mecanismo que permite você criar uma nova classe na definição de uma classe previamente existente
“é um” – descreve o relacionamento em que uma classe é considerada do mesmo tipo da outra
Um Subtipo – é um tipo que estende outro tipo através da herança
Uma Hierarquia de Herança é um mapeamento do tipo arvore de relacionamento que se formam entre classes como resultadas da herança
Polimorfismo – ter muitas formas um único nome pode ter comportamentos diferentes
Uma linguagem que suporta polimorfismo é uma linguagem polimorfica (personalites é exemplo de uma variável polimorfica)
Polimorfismo de inclusão – ou chamado de puro permite que você trate objetos relacionados genericamente, (diminui a quantidade de código).
Polimorfismo paramétrico – Permite que você crie métodos e tipos genéricos
Polimorfismo de sobrecarga (estático/ ad hoc) – tem o mesmo nome de método com assinaturas (parâmetros) diferentes a mesma operação pode ser implementada 2x mesma
classe, usa o mesmo nome de método para métodos diferentes cada método difere apenas no numero e no tipos de seus parâmetros
Polimorfismo de sobreposição(dinâmico) – uma filha pega um método que tem na progenitora e reescreve para mudar o comportamento do método (chamado de redefinição de um
método) ou seja altera seu método e mantém a mesma assinatura (parâmetro)
Implementação – define como um componente realmente fornece serviço. Define os detalhes internos do componente.
Interface – lista os serviços fornecidos por um componente. A interface é um contato com o exterior, que define exatamente o que uma entidade externa pode fazer com o objeto
- É o painel de controle do objeto.
Os 3 níveis de acesso a POO:
+ publico – garante acesso a todos os objetos
# protegido – garante acesso ao objeto e as subclasses
- privado – garante acesso apenas para aquele objeto