Você está na página 1de 19

Leandro Medeiros

Programação Orientada a Objetos com Java


Programação Orientada a Objetos

Definição da Programação Orientada a Objetos
– Surgido por volta de 1970, é um paradigma de programação na
qual o mundo real pode ser abstraído por meio de objetos, que
se comunicam e que possuem características próprias como
elementos fundamentais na construção da solução.
– Várias linguagens implementam este paradigma de
programação como Java, C#, C++
Programação Orientada a Objetos

Definição da Programação Orientada a Objetos
– Vantagens

Reutilização de código

Fácil manutenibilidade

Flexibilidade

Recursos para extensão do software como herança, polimorfismo,
sobreposição e uma variedade de padrões de projeto
Programação Orientada a Objetos

Objeto
– Objetos são coisas do mundo real (carro, bola, pessoa) que se
queira modelar em um software
Programação Orientada a Objetos

Componentes de um objeto
– Identidade: distinguir um objeto dos demais
– Comportamento: procedimentos/métodos
– Estado: propriedades/atributos

– Um objeto armazena estados por meio de


seus atributos e reage a mensagens
enviadas a ele, assim como se relaciona
com outros objetos
Programação Orientada a Objetos

Classes
– Classes são modelos para objetos que têm atributos e
serviços. Logo, os objetos são instâncias das classes
Programação Orientada a Objetos

Atributos
– Consistem em uma informação de estado para o qual
cada objeto de uma classe tem em seu próprio valor.
Programação Orientada a Objetos

Métodos
– Consistem em um conjunto de operações que um objeto
executa quando recebe uma mensagem
Programação Orientada a Objetos

Mensagem
– Mensagens são requisições enviadas de um objeto para outro
com o intuito de receber algo em retorno por meio da execução
de uma operação.

– fusca é uma variável que referencia um objeto Carro .locomover é o nome da mensagem
(ou método invocado) e “30” é o parâmetro informado no envio da mensagem.
Programação Orientada a Objetos

Classes, Objetos e Mensagens
Programação Orientada a Objetos

Princípios da Orientação a Objetos
– Também conhecidos como pilares fundamentais, são quatro:
– Encapsulamento, Herança, Polimorfismo e Abstração
Programação Orientada a Objetos

Abstração
– Abstração é a subtração de detalhes, isto é, quanto mais abstrato, há menos
detalhes; e quanto menos abstrato, há mais detalhes
– Concentrar atenção em características essenciais, em aspectos importantes
Programação Orientada a Objetos

Abstração
– Uma classe abstrata é desenvolvida para representar conceitos abstratos
e não possui instâncias. São sempre superclasses e “incompletas” ou
genéricas, isto é, dependem de uma classe concreta para implementar as
partes faltantes. Assim, uma subclasse irá concretizar seus métodos.
Programação Orientada a Objetos

Encapsulamento
– É o mecanismo da OO que serve para esconder os detalhes internos de
implementação dos objetos do mundo externo
– Esconde esses detalhes por meio dos “modificadores de acesso” que
definem a forma pela qual atributos e objetos são visualizados e acessados
por outros objetos
Programação Orientada a Objetos

Polimorfismo
– Esse mecanismo permite que uma mesma mensagem seja enviada a diferentes objetos e
que cada objeto execute a operação que lhe é mais apropriado
– Dois tipos de polimorfismo:

Estático ou Sobrecarga (Overload)
– Early Binding > Ligação Estática > Sobrecarga> Tempo de Compilação > Assinatura diferente > De acordo com os
argumentos passados

Dinâmico, Sobreposição ou Sobrescrita (Override)
– Late Binding > Ligação Dinâmica > Sobrescrita > Tempo de Execução > Assinatura igual
Programação Orientada a Objetos

Herança
– É o mecanismo da Orientação a Objetos que permite criar novas classes a partir de classes já existentes,
reutilizando seus atributos e comportamentos com o intuito de generalizar comportamentos ou especializar
operações e atributos
– A forma como a herança é implementada depende da linguagem de programação escolhida.
– No caso de Java, a palavra reservada extends utilizada na classe para implementar o mecanismo de herança
– Existem dois tipos de herança

Simples

Múltipla
Programação Orientada a Objetos

Herança Simples
– Permite criar subclasses a partir de uma classe mãe.
Programação Orientada a Objetos

Herança Múltipla
– Uma mesma classe herda características de várias classes mãe
– A herança múltipla deve ser evitada, uma vez que é difícil de entender e a codificação
pode ficar confusa. Além de poder ocorrer ambiguidades e duplicidade de atributos.
– Java não permite herança múltipla, no entanto algumas linguagens de programação
implementam este conceito, como C++
Programação Orientada a Objetos
Obrigado
contato: leandromedeiros007@gmail.com
celular: (61) 99831-8616

Você também pode gostar