orientação a copiar e colar · 2017. 2. 19. · programação orientada a objetos é um paradigma...
TRANSCRIPT
![Page 1: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/1.jpg)
![Page 2: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/2.jpg)
Orientação a copiar e colar
• Existe algo implicitamente errado nisso?
• Quem foi o ordinário que inventou que isso era errado?
• A palavra chave na programação: “ALTERAÇÃO”
![Page 3: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/3.jpg)
• Estado
• Instância/Exemplar
• Abstração
• Modularidade
Glossário
![Page 4: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/4.jpg)
Filosofia O.O.
![Page 5: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/5.jpg)
Pascal e os Mundos das ideias
![Page 6: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/6.jpg)
Pensando num mundo ideal...
• E se existisse uma máquina onde bastasse eu configurar, ela geraria quantos objetos eu desejasse?
![Page 7: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/7.jpg)
Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto com suas interações- para projetar aplicação e programas de computadores
Wikipedia
![Page 8: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/8.jpg)
Olhando os objetos de longeee...
![Page 9: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/9.jpg)
• Coleção de objetos com diferentes características e comportamentos.
• Cada um resolvendo um pequeno problema
• Juntos eles interagem para resolver um grande problema
![Page 10: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/10.jpg)
O comportamento do sistema é algo que emerge das interações entre os objetos
Transcendental
![Page 11: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/11.jpg)
Plugando, removendo e substituindo objetos é possível mudar o comportamento do sistema. Só me preocupo com o que o objeto faça, não como ele faz
![Page 12: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/12.jpg)
Uma teia de objetos
![Page 13: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/13.jpg)
Código procedural é escrito num sentido mais declarativo, definindo quem vai interagir com quem
O foco, no momento desta definição, deveria ser em “o que fazer”, não “como fazer”
![Page 14: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/14.jpg)
Nosso código deveria ser apenas declarativo Os objetos devem ter conexões explícitas
Lembrando...
![Page 15: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/15.jpg)
Coesão
Faça apenas uma coisa!
![Page 16: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/16.jpg)
Acoplamento
![Page 17: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/17.jpg)
Nós só poderemos obter o benefício desta abordagem se os nossos objetos forem facilmente plugáveis
![Page 18: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/18.jpg)
Do outro lado da força...
• Programas tendem a virar um longa lista de comandos
• Funções e variáveis são criadas, mas elas tendem a ser globais e serem acessadas por qualquer um
![Page 19: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/19.jpg)
Mas o que era uma classe mesmo..
Classe é um molde que será usado para construir objetos que representam elementos da vida real.
Classe = Características + Comportamentos
![Page 20: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/20.jpg)
Atributos
Atributos armazenam os dados de um objeto, e definem seu estado.
![Page 21: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/21.jpg)
![Page 22: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/22.jpg)
Estático e Instância
• Eu preciso de um exemplar de uma pessoa para perguntar sua idade?
• Eu preciso de um exemplar em particular para saber a maioridade?
![Page 23: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/23.jpg)
Brincando com um objeto
![Page 24: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/24.jpg)
Igualdade entre objetos
![Page 25: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/25.jpg)
Navio de Teseu
![Page 26: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/26.jpg)
Polimorfismo
![Page 27: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/27.jpg)
Polimorfismo
![Page 28: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/28.jpg)
Herança
• Clientes • Funcionários
![Page 29: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto](https://reader035.vdocuments.pub/reader035/viewer/2022071218/605086da68ab9653cc72d2ac/html5/thumbnails/29.jpg)
Referências
• http://www.java-samples.com/showtutorial.php?tutorialid=221
• Design Patterns, by Erich Gamma, et. Al
• http://www.amazon.com/Growing-Object-Oriented-Software-Guided-Signature/dp/0321503627
• Schach, Stephen (2006). Object-Oriented and Classical Software Engineering, Seventh Edition