Desenvolvimento em .NET




Programação Orientada a Objectos
Objectivos
●   Saber quando, como e em que bases assentou
    o aparecimento do conceito object-oriented
●   Conhecer term...
Objectivos
●   Saber o que é um Constructor
●   Identificar tipos de acessos (public, private,
    friend, protected)
●   ...
Perspectiva Histórica
●   Paradigmas de desenvolvimento
    –   Top-Down, Estruturado, Procedimental
    –   Orientado a O...
OOP
●   Primeira linguagem OO: Simula (anos 60)
●   Metáfora
       ●   “Borrowing ideas from these and other programs, as...
OOP – terminologia
●   classe vs objecto
    –   template vs documento
    –   declarar vs instanciar
    –   exemplo: Ter...
Exercicio
●   Criar novo projecto chamado 0004_Objectos
OOP – conceitos base
●   abstração – cada objecto representa uma
    abstracção de uma entidade do sistema
●   encapsulame...
OOP – conceitos base
●   Polimorfismo – várias formas
    –   consoante o objecto, um mesmo método poderá ter
        impl...
OOP – conceitos base
●   Herança
    –   reutilização levada ao extremo
         ●   se    Pessoa.Mover
         ●   e    ...
OOP – conceitos base
●   Herança - exemplo
    –   Artigo.CalcularPrecoVenda
         ●   Preço Materia Prima + Custos Tra...
Exercicio
●   Criar novo projecto chamado 0005_Heranca1
Análise vs Programa
●   Por onde começar?
    –   Nome / Verbo / Adjectivo
         ●   Objecto / Método / Propriedade
   ...
Constructors
●   Método que cria uma instância do objecto
●   Todas as classes têm o método New()
    –   diferença C#
●  ...
Tipos de Acesso
●   parecido com âmbito das variáveis
●   public, private, friend, protected
        Public    Todos
     ...
Overloads
●   Um objecto pode ter vários métodos com o
    mesmo nome
    –   desde que tenha parametros de entrada difere...
MyBase
●   numa estrutura hierárquica permite aceder à
    classe do nivel superior
    –   exemplo
         ●   Artigo (b...
Exercicio
●   Criar novo projecto chamado 0005_Heranca2
Ciclo de Vida
●   Sabemos quando um objecto é criado
    –   New()
●   Não sabemos quando é definitivamente
    eliminado
...
OOP em Progress
●   Versão 10.1 suporta:
    –   Objectos
    –   Herança
    –   Interfaces
    –   Constructors...
OOP em Progress
●   Procedures
    –   Can NEW a CLASS
    –   Can DELETE an object
    –   Invoke methods using object re...
OOP em Progress
●   Classes
    –   Can RUN a procedure
    –   Can invoke internal procedure / udf using procedure
      ...
Objectivos
●   Saber quando, como e em que bases assentou
    o aparecimento do conceito object-oriented
●   Conhecer term...
Objectivos
●   Saber o que é um Constructor
●   Identificar tipos de acessos (public, private,
    friend, protected)
●   ...
Upcoming SlideShare
Loading in …5
×

Desenvolvimento em .Net - Programaçao Orientada a Objectos

1,970 views
1,813 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,970
On SlideShare
0
From Embeds
0
Number of Embeds
319
Actions
Shares
0
Downloads
50
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Desenvolvimento em .Net - Programaçao Orientada a Objectos

  1. 1. Desenvolvimento em .NET Programação Orientada a Objectos
  2. 2. Objectivos ● Saber quando, como e em que bases assentou o aparecimento do conceito object-oriented ● Conhecer terminologia base (classe, objecto, propriedade, método) ● Conhecer conceitos base de OOP (abstracção, encapsulamento, herança, polimorfismo ● Ter noções de como estruturar o desenvolvimento de um projecto OO
  3. 3. Objectivos ● Saber o que é um Constructor ● Identificar tipos de acessos (public, private, friend, protected) ● Conhecer keyword Overloads ● Conhecer keyword MyBase ● Perceber o ciclo de vida de um objecto ● Conhecer opções OOP com Progress
  4. 4. Perspectiva Histórica ● Paradigmas de desenvolvimento – Top-Down, Estruturado, Procedimental – Orientado a Objectos – Declarativo ● Cada um tem vantagens / desvantagens ● Ferramentas actuais permitem explorar o melhor de cada paradigma
  5. 5. OOP ● Primeira linguagem OO: Simula (anos 60) ● Metáfora ● “Borrowing ideas from these and other programs, as well as from his background in Biology, he formulated his quot;biological analogy.quot; Kay postulated that the ideal computer would function like a living organism; each quot;cellquot; would behave in accord with others to accomplish an end goal but would also be able to function autonomously. quot;Cellsquot; could also regroup themselves in order to attack another problem or handle another function”
  6. 6. OOP – terminologia ● classe vs objecto – template vs documento – declarar vs instanciar – exemplo: Terceiro ● métodos – o que posso fazer com o objecto – exemplo: Terceiro.CriarFilial() ● propriedades – as caracteristicas / estado do objecto – exemplo: Terceiro.Morada
  7. 7. Exercicio ● Criar novo projecto chamado 0004_Objectos
  8. 8. OOP – conceitos base ● abstração – cada objecto representa uma abstracção de uma entidade do sistema ● encapsulamento – ninguém consegue aceder ao interior de um objecto a não ser através de pontos bem conhecidos (métodos e propriedades)
  9. 9. OOP – conceitos base ● Polimorfismo – várias formas – consoante o objecto, um mesmo método poderá ter implementações diferentes. ● exemplo: Chefe.AumentarSalario poderá ser diferente de Colaborador.AumentarSalario ● substitui select case potencialmente interminavel: select TipoColaborador case “Chefe” .... case “Colaborador” ....
  10. 10. OOP – conceitos base ● Herança – reutilização levada ao extremo ● se Pessoa.Mover ● e Criança is Pessoa ● então Criança.Mover – numa hierarquia de objectos os métodos e propriedades definidos nos niveis superiores (base class) estão disponiveis nos descendentes (derived class) ● dentro de algumas condições...
  11. 11. OOP – conceitos base ● Herança - exemplo – Artigo.CalcularPrecoVenda ● Preço Materia Prima + Custos Transformação + Custos Logistica – 1 Fato é 1 Artigo logo não preciso definir um novo método de cálculo. – mas se for necessário posso: ● usar aquilo que já foi definido e acrescentar mais valores – MyBase.CalcularPrecoVenda + Custos com Pessoal ● ou simplesmente substituir a implementação já disponivel – CalcularPrecoVenda = 0
  12. 12. Exercicio ● Criar novo projecto chamado 0005_Heranca1
  13. 13. Análise vs Programa ● Por onde começar? – Nome / Verbo / Adjectivo ● Objecto / Método / Propriedade ● Tabela / Acção / Campo – Nota: se este mapeamento for sempre directo então algo está mal!
  14. 14. Constructors ● Método que cria uma instância do objecto ● Todas as classes têm o método New() – diferença C# ● Pode haver mais do que um método New – ver exemplo random
  15. 15. Tipos de Acesso ● parecido com âmbito das variáveis ● public, private, friend, protected Public Todos Private Ninguém Friend Só descendentes Protected Só dentro do mesmo projecto ● boa prática – escrever sempre tipo de acesso – por defeito dentro de uma classe se não pusermos nada num método então ele é private
  16. 16. Overloads ● Um objecto pode ter vários métodos com o mesmo nome – desde que tenha parametros de entrada diferentes – exemplos: ● Empregado.CalcularAumento() ● Empregado.CalcularAumento(percentagem)
  17. 17. MyBase ● numa estrutura hierárquica permite aceder à classe do nivel superior – exemplo ● Artigo (base class) => Fato (derived class) ● em Fato posso fazer MyBase.CalcularPrecoVenda – estou-me a referir ao método CalcularPrecoVenda definido em Artigo.
  18. 18. Exercicio ● Criar novo projecto chamado 0005_Heranca2
  19. 19. Ciclo de Vida ● Sabemos quando um objecto é criado – New() ● Não sabemos quando é definitivamente eliminado – Garbage Collection
  20. 20. OOP em Progress ● Versão 10.1 suporta: – Objectos – Herança – Interfaces – Constructors...
  21. 21. OOP em Progress ● Procedures – Can NEW a CLASS – Can DELETE an object – Invoke methods using object reference – Can pass object reference as a parameter
  22. 22. OOP em Progress ● Classes – Can RUN a procedure – Can invoke internal procedure / udf using procedure handle
  23. 23. Objectivos ● Saber quando, como e em que bases assentou o aparecimento do conceito object-oriented ● Conhecer terminologia base (classe, objecto, propriedade, método) ● Conhecer conceitos base de OOP (abstracção, encapsulamento, herança, polimorfismo ● Ter noções de como estruturar o desenvolvimento de um projecto OO
  24. 24. Objectivos ● Saber o que é um Constructor ● Identificar tipos de acessos (public, private, friend, protected) ● Conhecer keyword Overloads ● Conhecer keyword MyBase ● Perceber o ciclo de vida de um objecto ● Conhecer opções OOP com Progress

×