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