eng mec | poo

vantagens

produção de software natural

substitui a programação
em termos de região de memória

confiabilidade

possibilidade de reutilização

manutenibilidade

correções podem ser feitas em um objeto
e todos os outros se beneficiam do aprimoramento

recursos para
estender o código

herança

polimorfismo

sobreposição

rapidez de
desenvolvimento
do software

fundamentos

objeto

classe

modelo a partir do qual
objetos são construídos

= instância de classe

componentes

identidade

estado (propriedades)

comportamento (operações)

conjunto de atividades
externamente observáveis
do objeto (métodos e procedimentos)

valores de atributos do objeto
em determinado momento

torna o objeto único

atributos

de objetos
(de instâncias)

de classes

é compartilhado
por todos os objetos de
determinada classe

valores mantidos
em um objeto

não é compartilhado,
cada objeto tem o seu

= informação de estado

se mudar o valor em um objeto membro,
muda em todos os outros dentro da classe

métodos

= descrições das operações
que um objeto faz quando
recebe uma msg

a mesma mensagem pode resultar em métodos diferentes quando enviada para objetos diferentes

o mais importante: método construtor

chamado automaticamente
qd instâncias são criadas

objetivo: garantir que
o objeto será instanciado
de forma correta

inicializador

tipos

de classe

de instância

pode ter >1 em uma classe

a ação só ocorre qd o método chama
o objeto por meio da msg!

binding: ligação entre
método e objeto

early binding

late binding

mensagem

meio de comunicação
entre objetos

componentes
de uma msg

objeto (destinatário da msg)

nome do método ou serviço que se deseja executar

parâmetros necessários ao método
(se existirem)

a natureza das operações realizadas
é determinada pelo objeto receptor

abstração

= mais abstrato, menos detalhes

classe
abstrata

= representa entidades
e conceitos abstratos

superclasse sem instâncias

define modelo/template pra uma funcionalidade,
que é compartilhada (herdada) por classes derivadas

classe derivada

classe concreta

podem ser
instanciadas
diretamente

implementa funcionalidade
de forma incompleta

completa a funcionalidade da classe abstrata
adicionando comportamentos específicos

apesar de não ter instâncias,
não se pode criar uma instância sem ela

se a classe
possui

pelo menos um
método abstrato

todos os métodos concretos

obrigatoriamente
abstrata

abstrata ou concreta
(depende da decisão
do designer)

todos os
métodos abstratos

obrigatoriamente
abstrata

classe abstrata VS interface

mecanismos

encapsulamento

polimorfismo

= capacidade de duas ou mais classes de objetos
responderem à mesma msg, cada um do seu próprio modo

tipos

estático

dinâmico

por sobrecarga
ou overloading

por subtipo

herança
(generalização/
especialização)

click to edit