SlideShare uma empresa Scribd logo
Desenvolvimento em .NET




Programação Orientada a Objectos
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
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
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
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”
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
Exercicio
●   Criar novo projecto chamado 0004_Objectos
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)
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” ....
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...
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
Exercicio
●   Criar novo projecto chamado 0005_Heranca1
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!
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
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
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)
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.
Exercicio
●   Criar novo projecto chamado 0005_Heranca2
Ciclo de Vida
●   Sabemos quando um objecto é criado
    –   New()
●   Não sabemos quando é definitivamente
    eliminado
    –   Garbage Collection
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 reference
    –   Can pass object reference as a parameter
OOP em Progress
●   Classes
    –   Can RUN a procedure
    –   Can invoke internal procedure / udf using procedure
        handle
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
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

Mais conteúdo relacionado

Mais procurados

Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScript
Rodrigo Branas
 
Curso de PHP - Objetos
Curso de PHP - ObjetosCurso de PHP - Objetos
Curso de PHP - Objetos
Fabio Moura Pereira
 
JavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersJavaScript e JQuery para Webdesigners
JavaScript e JQuery para Webdesigners
Harlley Oliveira
 
Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...
Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...
Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...
David Paniz
 
Curso javascript básico
Curso javascript básicoCurso javascript básico
Curso javascript básico
Vinicius Dacal Lopes
 
Java script1
Java script1Java script1
T04_LM3: Javascript (2013-2014)
T04_LM3: Javascript (2013-2014)T04_LM3: Javascript (2013-2014)
T04_LM3: Javascript (2013-2014)
Carlos Santos
 

Mais procurados (7)

Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScript
 
Curso de PHP - Objetos
Curso de PHP - ObjetosCurso de PHP - Objetos
Curso de PHP - Objetos
 
JavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersJavaScript e JQuery para Webdesigners
JavaScript e JQuery para Webdesigners
 
Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...
Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...
Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...
 
Curso javascript básico
Curso javascript básicoCurso javascript básico
Curso javascript básico
 
Java script1
Java script1Java script1
Java script1
 
T04_LM3: Javascript (2013-2014)
T04_LM3: Javascript (2013-2014)T04_LM3: Javascript (2013-2014)
T04_LM3: Javascript (2013-2014)
 

Semelhante a Desenvolvimento em .Net - Programaçao Orientada a Objectos

Desenvolvimento em .Net - Herança e Interfaces
Desenvolvimento em .Net - Herança e InterfacesDesenvolvimento em .Net - Herança e Interfaces
Desenvolvimento em .Net - Herança e Interfaces
Vitor Silva
 
Aula 3 introducao a orientação a objetos
Aula 3   introducao a orientação a objetosAula 3   introducao a orientação a objetos
Aula 3 introducao a orientação a objetos
Rafael Pinheiro
 
Java 00 Poo
Java 00 PooJava 00 Poo
Java 00 Poo
Regis Magalhães
 
Resumão java
Resumão javaResumão java
Desenvolvimento em .Net - Dados vs Objectos
Desenvolvimento em .Net - Dados vs ObjectosDesenvolvimento em .Net - Dados vs Objectos
Desenvolvimento em .Net - Dados vs Objectos
Vitor Silva
 
(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012
Luís Cobucci
 
(Re)pensando a OOP - Flisol Gyn
(Re)pensando a OOP - Flisol Gyn(Re)pensando a OOP - Flisol Gyn
(Re)pensando a OOP - Flisol Gyn
Luís Cobucci
 
PHP: Programando com orientação a Objetos
PHP: Programando com orientação a ObjetosPHP: Programando com orientação a Objetos
PHP: Programando com orientação a Objetos
Pablo Dall'Oglio
 
(Re)pensando a OOP - PHPDay Curitiba 2013
(Re)pensando a OOP - PHPDay Curitiba 2013(Re)pensando a OOP - PHPDay Curitiba 2013
(Re)pensando a OOP - PHPDay Curitiba 2013
Luís Cobucci
 
PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e Objetos
George Mendonça
 
Desenvolvimento em .Net - A Framework e o Visual Studio
Desenvolvimento em .Net - A Framework e o Visual StudioDesenvolvimento em .Net - A Framework e o Visual Studio
Desenvolvimento em .Net - A Framework e o Visual Studio
Vitor Silva
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
Sedu
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
Cleyton Ferrari
 
POO - Aula 003
POO - Aula 003POO - Aula 003
Solid
SolidSolid
Php5 e a orientação a objetos
Php5 e a orientação a objetosPhp5 e a orientação a objetos
Php5 e a orientação a objetos
xbacon
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0
César Augusto Pessôa
 
Introdução a JPA (2010)
Introdução a JPA (2010)Introdução a JPA (2010)
Introdução a JPA (2010)
Helder da Rocha
 
Poo padadigmas
Poo padadigmasPoo padadigmas
Poo padadigmas
rafa nonato
 
Especialização e generalização em java
Especialização e generalização em javaEspecialização e generalização em java
Especialização e generalização em java
Diogo Winck
 

Semelhante a Desenvolvimento em .Net - Programaçao Orientada a Objectos (20)

Desenvolvimento em .Net - Herança e Interfaces
Desenvolvimento em .Net - Herança e InterfacesDesenvolvimento em .Net - Herança e Interfaces
Desenvolvimento em .Net - Herança e Interfaces
 
Aula 3 introducao a orientação a objetos
Aula 3   introducao a orientação a objetosAula 3   introducao a orientação a objetos
Aula 3 introducao a orientação a objetos
 
Java 00 Poo
Java 00 PooJava 00 Poo
Java 00 Poo
 
Resumão java
Resumão javaResumão java
Resumão java
 
Desenvolvimento em .Net - Dados vs Objectos
Desenvolvimento em .Net - Dados vs ObjectosDesenvolvimento em .Net - Dados vs Objectos
Desenvolvimento em .Net - Dados vs Objectos
 
(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012
 
(Re)pensando a OOP - Flisol Gyn
(Re)pensando a OOP - Flisol Gyn(Re)pensando a OOP - Flisol Gyn
(Re)pensando a OOP - Flisol Gyn
 
PHP: Programando com orientação a Objetos
PHP: Programando com orientação a ObjetosPHP: Programando com orientação a Objetos
PHP: Programando com orientação a Objetos
 
(Re)pensando a OOP - PHPDay Curitiba 2013
(Re)pensando a OOP - PHPDay Curitiba 2013(Re)pensando a OOP - PHPDay Curitiba 2013
(Re)pensando a OOP - PHPDay Curitiba 2013
 
PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e Objetos
 
Desenvolvimento em .Net - A Framework e o Visual Studio
Desenvolvimento em .Net - A Framework e o Visual StudioDesenvolvimento em .Net - A Framework e o Visual Studio
Desenvolvimento em .Net - A Framework e o Visual Studio
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
POO - Aula 003
POO - Aula 003POO - Aula 003
POO - Aula 003
 
Solid
SolidSolid
Solid
 
Php5 e a orientação a objetos
Php5 e a orientação a objetosPhp5 e a orientação a objetos
Php5 e a orientação a objetos
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0
 
Introdução a JPA (2010)
Introdução a JPA (2010)Introdução a JPA (2010)
Introdução a JPA (2010)
 
Poo padadigmas
Poo padadigmasPoo padadigmas
Poo padadigmas
 
Especialização e generalização em java
Especialização e generalização em javaEspecialização e generalização em java
Especialização e generalização em java
 

Mais de Vitor Silva

Cidadania20
Cidadania20Cidadania20
Cidadania20
Vitor Silva
 
Forum Onde Vais Cidade - Habitação No Porto
Forum Onde Vais Cidade - Habitação No PortoForum Onde Vais Cidade - Habitação No Porto
Forum Onde Vais Cidade - Habitação No Porto
Vitor Silva
 
Desenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a DadosDesenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a Dados
Vitor Silva
 
Desenvolvimento em .Net - Deployment
Desenvolvimento em .Net - DeploymentDesenvolvimento em .Net - Deployment
Desenvolvimento em .Net - Deployment
Vitor Silva
 
Desenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosDesenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosVitor Silva
 
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernateDesenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Vitor Silva
 
Desenvolvimento em .Net - Reflection
Desenvolvimento em .Net - ReflectionDesenvolvimento em .Net - Reflection
Desenvolvimento em .Net - Reflection
Vitor Silva
 
Desenvolvimento em .Net - Databinding
Desenvolvimento em .Net - DatabindingDesenvolvimento em .Net - Databinding
Desenvolvimento em .Net - Databinding
Vitor Silva
 
Desenvolvimento em .Net - Eventos
Desenvolvimento em .Net - EventosDesenvolvimento em .Net - Eventos
Desenvolvimento em .Net - Eventos
Vitor Silva
 
Desenvolvimento em .Net - Excepções
Desenvolvimento em .Net - ExcepçõesDesenvolvimento em .Net - Excepções
Desenvolvimento em .Net - Excepções
Vitor Silva
 
Desenvolvimento em .Net - User Interface
Desenvolvimento em .Net - User InterfaceDesenvolvimento em .Net - User Interface
Desenvolvimento em .Net - User Interface
Vitor Silva
 
Desenvolvimento em .Net - Boas Praticas De Desenvolvimento
Desenvolvimento em .Net - Boas Praticas De DesenvolvimentoDesenvolvimento em .Net - Boas Praticas De Desenvolvimento
Desenvolvimento em .Net - Boas Praticas De Desenvolvimento
Vitor Silva
 
Desenvolvimento em .Net - Estruturas Basicas
Desenvolvimento em .Net - Estruturas BasicasDesenvolvimento em .Net - Estruturas Basicas
Desenvolvimento em .Net - Estruturas Basicas
Vitor Silva
 
Desenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A FrameworkDesenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A Framework
Vitor Silva
 

Mais de Vitor Silva (14)

Cidadania20
Cidadania20Cidadania20
Cidadania20
 
Forum Onde Vais Cidade - Habitação No Porto
Forum Onde Vais Cidade - Habitação No PortoForum Onde Vais Cidade - Habitação No Porto
Forum Onde Vais Cidade - Habitação No Porto
 
Desenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a DadosDesenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a Dados
 
Desenvolvimento em .Net - Deployment
Desenvolvimento em .Net - DeploymentDesenvolvimento em .Net - Deployment
Desenvolvimento em .Net - Deployment
 
Desenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosDesenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes Unitários
 
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernateDesenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
 
Desenvolvimento em .Net - Reflection
Desenvolvimento em .Net - ReflectionDesenvolvimento em .Net - Reflection
Desenvolvimento em .Net - Reflection
 
Desenvolvimento em .Net - Databinding
Desenvolvimento em .Net - DatabindingDesenvolvimento em .Net - Databinding
Desenvolvimento em .Net - Databinding
 
Desenvolvimento em .Net - Eventos
Desenvolvimento em .Net - EventosDesenvolvimento em .Net - Eventos
Desenvolvimento em .Net - Eventos
 
Desenvolvimento em .Net - Excepções
Desenvolvimento em .Net - ExcepçõesDesenvolvimento em .Net - Excepções
Desenvolvimento em .Net - Excepções
 
Desenvolvimento em .Net - User Interface
Desenvolvimento em .Net - User InterfaceDesenvolvimento em .Net - User Interface
Desenvolvimento em .Net - User Interface
 
Desenvolvimento em .Net - Boas Praticas De Desenvolvimento
Desenvolvimento em .Net - Boas Praticas De DesenvolvimentoDesenvolvimento em .Net - Boas Praticas De Desenvolvimento
Desenvolvimento em .Net - Boas Praticas De Desenvolvimento
 
Desenvolvimento em .Net - Estruturas Basicas
Desenvolvimento em .Net - Estruturas BasicasDesenvolvimento em .Net - Estruturas Basicas
Desenvolvimento em .Net - Estruturas Basicas
 
Desenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A FrameworkDesenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A Framework
 

Desenvolvimento em .Net - Programaçao Orientada a Objectos

  • 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. 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. 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. 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. 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. Exercicio ● Criar novo projecto chamado 0004_Objectos
  • 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. 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. 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. 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. Exercicio ● Criar novo projecto chamado 0005_Heranca1
  • 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. 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. 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. 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. 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. Exercicio ● Criar novo projecto chamado 0005_Heranca2
  • 19. Ciclo de Vida ● Sabemos quando um objecto é criado – New() ● Não sabemos quando é definitivamente eliminado – Garbage Collection
  • 20. OOP em Progress ● Versão 10.1 suporta: – Objectos – Herança – Interfaces – Constructors...
  • 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. OOP em Progress ● Classes – Can RUN a procedure – Can invoke internal procedure / udf using procedure handle
  • 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. 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