View
105
Download
1
Category
Preview:
Citation preview
Orientação a objetosOberdan Bitencourt Ferreira
oberdan.bitencourt@gmail.com
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)
Orientação a ObjetosParadigma de Programação
Podemos chamar essa técnica de:
Programação Espaguete
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!!!
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.
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.
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
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
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!
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
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).
Orientação a ObjetosEncapsulamento
Discutir
private int numberOfCows;public int NumberOfCows{
get{
return numberOfCows;}set{
numberOfCows = value;BagsOfFeed = numberOfCows * FeedMultiplier;
}}
Orientação a ObjetosHerança
Discutir
Orientação a ObjetosPolimorfismo
Discutir
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
Recommended