O Essencial da Orientação a Objetos

30
Orientação a Objetos É disso que o povo gosta! [email protected] Osni Oliveira O essencial da @osnipso

description

Presented at Conexão Java 2014, São Paulo, Brazil. The content is in Brazilian Portuguese. Basic concepts about Object-Oriented Software Development using the Java language. Focus on the encapsulation concept, designing good class interfaces and modeling behavior. Caelum FJ-11 course on Object-Oriented Development using Java (in Brazilian Portuguese): https://www.caelum.com.br/curso-java-orientacao-objetos/ Full course material available (in Brazilian Portuguese): https://www.caelum.com.br/apostila-java-orientacao-objetos/

Transcript of O Essencial da Orientação a Objetos

Page 2: O Essencial da Orientação a Objetos

Vamos ver como está...

Page 3: O Essencial da Orientação a Objetos

Pensando em Objetos

“As três perguntas”:O que é?

O que tem?O que faz?

Page 4: O Essencial da Orientação a Objetos

O que é?

• Classe.

• Mais algumas coisas...

Page 5: O Essencial da Orientação a Objetos

O que tem?

• Atributos.

• Vale a pena pensar em tipos?

Page 6: O Essencial da Orientação a Objetos

O que faz?

• ... ou: “O que eu faço com”?

• Comportamentos.

• Métodos.

• Isso é importante!

Page 7: O Essencial da Orientação a Objetos

• Ok. E se eu...?

• Código trivial é fácil de entender.

• Passou um pouco disso, complica!

Page 8: O Essencial da Orientação a Objetos

Código da discórdia

Page 9: O Essencial da Orientação a Objetos

• Onde estão os comportamentos?

• Está tudo exposto!

• E/S junto com o restante?

• Esse, não vamos mexer ainda...

Podemos melhorar...

Page 10: O Essencial da Orientação a Objetos

Repetições repetidas

• Repetições repetidamente repetidas que se repetem

Page 11: O Essencial da Orientação a Objetos

Repetições repetidas

• Não, o sapo é um anfíbio! (:

Page 12: O Essencial da Orientação a Objetos

Isola, meu filho!

• Facilita manutenção.

• Facilita reaproveitamento.

• Melhora entendimento.

• Melhora QUALIDADE.

Page 13: O Essencial da Orientação a Objetos

Melhorando o código...

• Métodos?

• getters e setters.

• Adianta deixar tudo aberto?

Page 14: O Essencial da Orientação a Objetos

Melhorando o código...

• private vs. public.

• Quantos pacotes?

Page 15: O Essencial da Orientação a Objetos

ENCAPSULAMENTO

Page 16: O Essencial da Orientação a Objetos

• Não tão rápido...

• Ficou bom pra criar?

Page 17: O Essencial da Orientação a Objetos

CONSTRUTOR

Page 18: O Essencial da Orientação a Objetos

• Não consigo mais criar incompleto.

• Quer dizer, quase...

Page 19: O Essencial da Orientação a Objetos

• E os comportamentos?

Page 20: O Essencial da Orientação a Objetos

• Pergunta tem resposta.

• Resposta tem conteúdo, autor, etc.

• E agora?

Atributo, mas...

Page 21: O Essencial da Orientação a Objetos

Se é importante...

• É classe!

• Começa simples.

Page 22: O Essencial da Orientação a Objetos

COMPORTAMENTO

Page 23: O Essencial da Orientação a Objetos

Como eu quero usar?

• Fazer funcionar não é problema agora.

• Mesma idéia da TV, do celular, etc.

• Interface de uso.

• Isso (também) é importante!

Page 24: O Essencial da Orientação a Objetos

• Como se relacionam?

• Como quero que se relacionem?

Page 25: O Essencial da Orientação a Objetos

• Amor!

Programar é...

Page 26: O Essencial da Orientação a Objetos

Mas, não é:

• Digitar.

Page 27: O Essencial da Orientação a Objetos

Essencial

• Para o básico, ainda falta:

• Herança

• Polimorfismo

• Interfaces

• ...

Page 28: O Essencial da Orientação a Objetos

Hoje, aprendemos

Um passo por vez.Dominar isso é importante.

Bases sólidas.

Page 29: O Essencial da Orientação a Objetos

Obrigado

Page 30: O Essencial da Orientação a Objetos

Até a próxima!