15
Orientação a objetos Oberdan Bitencourt Ferreira [email protected]

Técnicas tradicionais como a decomposição funcional levam o desenvolvedor a decompor um sistema em partes menores (funções), que por sua vez chamam outras

Embed Size (px)

Citation preview

Page 1: Técnicas tradicionais como a decomposição funcional levam o desenvolvedor a decompor um sistema em partes menores (funções), que por sua vez chamam outras

Orientação a objetosOberdan Bitencourt Ferreira

[email protected]

Page 2: Técnicas tradicionais como a decomposição funcional levam o desenvolvedor a decompor um sistema em partes menores (funções), que por sua vez chamam outras

Orientação a ObjetosParadigma de Programação

Técnicas tradicionais como a “decomposição funcional” levam o desenvolvedor a decompor um sistema em partes menores (funções), que por sua vez chamam outras funções. (Programação funcional).

As desvantagens são:› Não há separação de conceitos e responsabilidades› Cria enormes dependências no sistema› Dificulta a manutenção posterior› Não há reaproveitamento de código (Ctrl + C, Ctrl + V)

Page 3: Técnicas tradicionais como a decomposição funcional levam o desenvolvedor a decompor um sistema em partes menores (funções), que por sua vez chamam outras

Orientação a ObjetosParadigma de Programação

Podemos chamar essa técnica de:

Programação Espaguete

Page 4: Técnicas tradicionais como a decomposição funcional levam o desenvolvedor a decompor um sistema em partes menores (funções), que por sua vez chamam outras

Orientação a ObjetosParadigma de Programação

Várias formas de se escrever o mesmo código Define como o desenvolvedor codificará

Paradigma Imperativo ou por procedimentos› Sequência de comandos executados passo a passo. › Não existem classes!

Paradigma Orientado à Objetos› Conceito de objetos para melhor representar o mundo real.› Classes› Paradigma mais utilizado atualmente

Os dois funcionam!!!

Page 5: Técnicas tradicionais como a decomposição funcional levam o desenvolvedor a decompor um sistema em partes menores (funções), que por sua vez chamam outras

Orientação a ObjetosConceitos Necessários

Abstração (lat abstractione)

› Consideração das qualidades independentemente dos objetos a que pertencem.

› Psicol Processo pelo qual se isolam atributos de um objeto, considerando os que certos grupos de objetos tenham em comum.

› Quím Extração ou separação por meio de evaporação, de princípios que estavam unidos quimicamente a outra substância.

› Observar a realidade e identificar sua estrutura.

Representar (lat repraesentare)

› Mostrar à evidência, patentear, revelar, significar, simbolizar› Fazer o papel ou a figura de (outrem)› Representar a estrutura previamente abstraída.

Page 6: Técnicas tradicionais como a decomposição funcional levam o desenvolvedor a decompor um sistema em partes menores (funções), que por sua vez chamam outras

Orientação a ObjetosPrincípios

Objetivos:› Organização› Desempenho› Reutilização de Software› Simular o mundo real no computador

Princípios da Orientação a Objeto› Qualquer coisa é um objeto› Objetos realizam tarefas através da aquisição de serviços a outros

objetos.› Cada objeto pertence a uma determinada classe. Uma classe agrupa

objetos similares.› A classe é um repositório para comportamento associado ao objeto.› Classes são organizadas em hierarquias.

Page 7: Técnicas tradicionais como a decomposição funcional levam o desenvolvedor a decompor um sistema em partes menores (funções), que por sua vez chamam outras

Orientação a ObjetosProgramação Orientada a Objetos

Vantagens› aumento de produtividade› reuso de código› redução das linhas de código programadas› separação de responsabilidades› componentização› maior flexibilidade do sistema› escalabilidade› facilidade na manutenção

Page 8: Técnicas tradicionais como a decomposição funcional levam o desenvolvedor a decompor um sistema em partes menores (funções), que por sua vez chamam outras

Orientação a ObjetosProgramação Orientada a Objetos

•Estrutura que abstrai um conjunto de objetos com características similares. Define comportamento e atributos.

Classe

•É uma instância de uma classe. Armazena estados através de seus atributos.

Objeto

•Permite às classes o compartilhamento de atributos e métodos àqueles que forem “filhos” desta classe.

Herança

•Permite que referências de tipos de classes mais abstratas representem o comportamento das classes concretas que referenciam.

Polimorfismo

•Ocultar informações, separar detalhes internos de um objeto que sejam acessíveis a outro objeto.

Encapsulamento

Page 9: Técnicas tradicionais como a decomposição funcional levam o desenvolvedor a decompor um sistema em partes menores (funções), que por sua vez chamam outras

Orientação a ObjetosClasses

Propriedade : o que a classe sabe. Método: o que a classe faz. Classe é como uma planta/protótipo de um objeto. Quando se tem uma Classe “Cachorro” não quer

dizer que existe somente um cachorro.

Pode ser assim... Assim... Ou assim!

Page 10: Técnicas tradicionais como a decomposição funcional levam o desenvolvedor a decompor um sistema em partes menores (funções), que por sua vez chamam outras

Orientação a ObjetosObjeto

Características› Estado

O estado de um objeto revela seus dados importantes. Por exemplo, um cachorro tem: nome, idade, peso, altura, pelagem.

› Comportamento Comportamento são as ações que aquele objeto pode

exercer ou executar. Por exemplo, uma cachorro pode: latir, ouvir, pular, brincar.

Podem ser:› Objetos concretos

Carro, livro, nota fiscal› Objetos abstratos

Conta corrente, venda, pessoa física, unidade organizacional

Page 11: Técnicas tradicionais como a decomposição funcional levam o desenvolvedor a decompor um sistema em partes menores (funções), que por sua vez chamam outras

Orientação a ObjetosObjeto

O objeto é uma instância de uma classe.› Instância: concretização de uma classe› Os cachorros apresentados anteriormente representam, cada um, uma instância

de uma Classe “Cachorro” qualquer.› Possuem características diferentes para atributos em comum (ex.: um era de

brinquedo, o outro tinha pelo amarelado).› Executam os mesmos comportamentos de forma diferente (ex.: um latia mais

baixo, o outro mais alto, mas ambos realizavam o mesmo comportamento: Latir).

Page 12: Técnicas tradicionais como a decomposição funcional levam o desenvolvedor a decompor um sistema em partes menores (funções), que por sua vez chamam outras

Orientação a ObjetosEncapsulamento

Discutir

private int numberOfCows;public int NumberOfCows{

get{

return numberOfCows;}set{

numberOfCows = value;BagsOfFeed = numberOfCows * FeedMultiplier;

}}

Page 13: Técnicas tradicionais como a decomposição funcional levam o desenvolvedor a decompor um sistema em partes menores (funções), que por sua vez chamam outras

Orientação a ObjetosHerança

Discutir

Page 14: Técnicas tradicionais como a decomposição funcional levam o desenvolvedor a decompor um sistema em partes menores (funções), que por sua vez chamam outras

Orientação a ObjetosPolimorfismo

Discutir

Page 15: Técnicas tradicionais como a decomposição funcional levam o desenvolvedor a decompor um sistema em partes menores (funções), que por sua vez chamam outras

Orientação a ObjetosReferência: C# Programming Guide

Classes and Structs Classes Objects Structs Inheritance Polymorphism Abstract and Sealed

Classes and Class Members Static Classes and Static

Class Members Members Access Modifiers Fields

Constants Properties Methods Constructors Destructors Object and Collection

Initializers Nested Types Partial Classes and Methods

Programming Anonymous

Types