SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
Classes em VBA/EXCEL
Wanderlei Silva do Carmo
<wander.silva@gmail.com>
Objetivos
Apreender conceitos básicos de programação orientada a
objetos :
Abstração
Encapsulamento
Herança
Polimorfismo
Modificadores de acesso
Private
Protected
Friend
Static
Classe
Uma classe é um arquivo texto escrito utilizando uma linguagem
de programação contendo instruções e comandos que definem
atributos, propriedades e métodos que darão origem a objetos.
Dizemos que objetos são instancia de uma classe.
Um objeto portanto é criado a partir de uma instanciação de uma
classe em memória. Uma mesma classe pode gerar vários
objetos para vários propósitos e funcionalidades.
Classes são códigos armazenados..
Objetos são variáveis que fazem referencias a endereços de
memória.
Em outras palavras:
Uma classe descreve propriedades e comportamentos dos
objetos que serão criados por ela.
Abstração
O uso da abstração na computação pode ser exemplificada da seguinte forma:
Imagine que um determinado processamento é realizado em vários pontos de
um sistema, da mesma forma ou de forma idêntica. Ao invés de repetirmos o
trecho de código responsável por este processamento, o abstraímos na forma
de um procedimento ou função, e apenas fazemos uma chamada à tal
procedimento, onde quer que necessitemos e por quantas vezes se fizer
necessário.
(Fonte: http://pt.wikipedia.org/wiki/Abstração)
Em outras palavras para melhor entendimento:
Abstrair é isolar toda complexidade de uma ação ou objeto e pegar apenas o que nos interessa em um
dado momento.
Um exemplo:
Quando fazemos uso de um forno Micro-ondas não precisamos saber detalhes técnicos de seu
funcionamento nem tampouco como foi construído e ainda não precisamos saber de que forma ele
fará com que os alimentos sejam cozidos, assados, etc... Sabemos apenas que temos que “apertar” a
tecla correspondente a ação que queremos. Da mesma forma em um software não precisamos saber
como o programa executará as ações internamente, basta apenas que sabemos que ao clicar na
opção desejada ele fará e pronto!
Encapsulamento
Encapsulamento vem de encapsular, que em
programação orientada a objetos significa separar o programa em partes,
o mais isoladas possível. A idéia é tornar o software mais flexível, fácil de
modificar e de criar novas implementações. (http://
pt.wikipedia.org/wiki/Encapsulamento)
Em outras palavras:
Vamos pensar na ideia de uma cápsula onde vamos colocar algo que não
queremos que ninguém veja ou saiba o que está guardado ali. Algumas
informações poderemos permitir que outros acessem, porém de forma
controlada, tomando todo o cuidado de tratar toda informação oriunda ou
resultante de forma que tudo seja protegido de ações indesejadas por parte de
quem as usar.
Um exemplo:
Conteúdo protegido
Acesso controlado ao
conteúdo protegido
Objeto
Herança
Herança é um princípio de orientação a objetos, que permite que
classes compartilhem atributos e métodos, através de "heranças".
Ela é usada na intenção de reaproveitar código ou comportamento
generalizado ou especializar operações ou atributos. O conceito de
herança de várias classes é conhecido como herança múltipla.
Como exemplo pode-se observar as classes 'aluno' e 'professor',
onde ambas possuem atributos como nome, endereço e telefone.
Nesse caso pode-se criar uma nova classe chamada por exemplo,
'pessoa', que contenha as semelhanças entre as duas classes,
fazendo com que aluno e professor herdem as características de
pessoa, desta maneira pode-se dizer que aluno e professor são
subclasses de pessoa.
(http://pt.wikipedia.org/wiki/Herança_(programação) )
Um Exemplo:
Funcionário
Gerente
Vendedor
Motorista
Atributos comuns:
codigo,nome,cpf,endereço,telefone,etc...
Polimorfismo
Na programação orientada a objetos, o polimorfismo permite que referências
de tipos de classes mais abstratas representem o comportamento das classes
concretas que referenciam. Assim, é possível tratar vários tipos de maneira
homogênea (através da interface do tipo mais abstrato). O
termo polimorfismo é originário do grego e significa "muitas formas" (poli =
muitas, morphos = formas).
O polimorfismo é caracterizado quando duas ou mais classes distintas tem
métodos de mesmo nome, de forma que uma função possa utilizar um objeto de
qualquer uma das classes polimórficas, sem necessidade de tratar de forma
diferenciada conforme a classe do objeto.1
Uma das formas de implementar o polimorfismo é através de uma classe
abstrata, cujos métodos são declarados mas não são definidos, e através de
classes queherdam os métodos desta classe abstrata. (wikipedia).
Em outras palavras:
Podemos criar classes e métodos abstratos, ou seja em que nenhuma implementação
de seus métodos serão feitos nela mas na classe que a herdar . Dessa forma
poderemos implementar tais métodos de acordo com a necessidade para o qual foi
construída a subclasse.
Exempo:
Animal
cachorro
gato
Emitir_som
Emitir_som
latido
miado
Em programação orientada a objetos, modificador de acesso, também
chamado de visão de método ou ainda visão de atributo, é a palavra-chave
que define um atributo, método ou classe como público (ou public, qualquer
classe pode ter acesso), privado (ou private, apenas os métodos da própria
classe pode manipular o atributo) ou protegido (ou protected, pode ser
acessado apenas pela própria classe ou pelas suas subclasses).
Geralmente, utiliza-se modificadores de acesso para privar os atributos do
acesso direto (tornando-os privados) e implementa-se métodos públicos que
acessam e alteram os atributos. Tal prática pode ser chamada de
encapsulamento.
Em outras palavras:
Métodos privados geralmente são usados apenas por outros métodos que são
públicos (e que podem ser chamados a partir de outro objeto) da mesma classe
a fim de não repetir código em mais de um método. (wikipedia)
Modificadores de Acesso
Lembram-se do encapsulamento?
Os atributos que não queremos expor ficam protegidos de forma que somente o objeto
saiba deles. Para expor de forma controlada o acesso à eles, usamos métodos
públicos. É comum usarmos os chamados métodos get e set para respectivamente obter
e alterar um determinado atributo. Em VB usamos suas propriedades para essa
finalidade.
Na Prática
Criando uma classe em VBA
1 - No Project Explorer,
clique com o botão
direito em cima do
nome de seu projeto.
Escolha inserir, módulo
de classe.
2- Agora vamos alterar o nome
da classe na janela de
propriedades. Na figura o nome
foi alterado para “Contato”
Na Prática
Criando uma classe em VBA - Continuando
Antes de começarmos a codificar
devemos fazer um “esboço” da classe
que iremos criar.
Definir seus atributos e seus métodos.
Lembrando do encapsulamento, os
atributos privados somente podem ser
vistos pelo próprio objeto.
Para expor estes atributos para o mundo
externo deve-se então usar métodos
públicos.
Antes de começarmos a codificar
devemos fazer um “esboço” da classe
que iremos criar.
Definir seus atributos e seus métodos.
Lembrando do encapsulamento, os
atributos privados somente podem ser
vistos pelo próprio objeto.
Para expor estes atributos para o mundo
externo deve-se então usar métodos
públicos.
Os atributos privados são precedidos do sinal
“-” e os atributos públicos com o sinal “+” .
Os atributos privados são precedidos do sinal
“-” e os atributos públicos com o sinal “+” .
As propriedades são a forma de se ter
acesso de forma protegida aos atributos
privados do objeto.
As propriedades são a forma de se ter
acesso de forma protegida aos atributos
privados do objeto.
Declaração de atributos privadosDeclaração de atributos privados
Get e Let –
Estas instruções são utilizadas para obter ou
alterar o valor de um determinado atributo.
Pode-se por exemplo, testar e validar valores
antes de alterá-los ou mesmo incluir algum tipo
de formatação de saída.
Get e Let –
Estas instruções são utilizadas para obter ou
alterar o valor de um determinado atributo.
Pode-se por exemplo, testar e validar valores
antes de alterá-los ou mesmo incluir algum tipo
de formatação de saída.
Para instanciar uma classe, podemos usar o
seguinte código em um módulo ou em rotinas de
formulários.
Para instanciar uma classe, podemos usar o
seguinte código em um módulo ou em rotinas de
formulários.
Métodos públicos são visíveis ao mundo
externo.
Métodos públicos são visíveis ao mundo
externo.
Um exemplo mais completo do uso de classes em VBAUm exemplo mais completo do uso de classes em VBA
Agora os botões chamarão
métodos do objeto MeuContato.
Agora os botões chamarão
métodos do objeto MeuContato.
Método Salvar do objetoMétodo Salvar do objeto
Usando orientação a objetos:
Benefícios:
Reaproveitamento de código
Código mais enxuto
Acoplamento baixo entre os módulos
Segurança.. entre outros.
FIMFIM
Dúvidas:
E-Mail: wander.silva@gmail.com

Más contenido relacionado

La actualidad más candente

Guia Rápido de Referência Java
Guia Rápido de Referência JavaGuia Rápido de Referência Java
Guia Rápido de Referência JavaMario Jorge Pereira
 
Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Helder da Rocha
 
Introdução a JPA (2010)
Introdução a JPA (2010)Introdução a JPA (2010)
Introdução a JPA (2010)Helder da Rocha
 
Guia do F12: Chrome Developer Tools
Guia do F12: Chrome Developer ToolsGuia do F12: Chrome Developer Tools
Guia do F12: Chrome Developer ToolsLeonardo Tegon
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaDaniel Brandão
 
Apresentação da EMP Consultoria e Treinamentos para Empresas de Segurança
Apresentação da EMP Consultoria e Treinamentos para Empresas de SegurançaApresentação da EMP Consultoria e Treinamentos para Empresas de Segurança
Apresentação da EMP Consultoria e Treinamentos para Empresas de SegurançaEmir Pinho
 
Banco de Dados Orientado a Objeto
Banco de Dados Orientado a ObjetoBanco de Dados Orientado a Objeto
Banco de Dados Orientado a Objetoelliando dias
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terEmerson Macedo
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a ObjetosIgor Takenami
 
Stored Procedures and Triggers
Stored Procedures and TriggersStored Procedures and Triggers
Stored Procedures and Triggersflaviognm
 
Design principles - SOLID
Design principles - SOLIDDesign principles - SOLID
Design principles - SOLIDPranalee Rokde
 
Cozinheira das cozinheiras
Cozinheira das cozinheirasCozinheira das cozinheiras
Cozinheira das cozinheirastsunamidaiquiri
 
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
Introdução à programação para web com Java -  Módulo 03: Conceitos básicos de...Introdução à programação para web com Java -  Módulo 03: Conceitos básicos de...
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...Professor Samuel Ribeiro
 
Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágilClaudia Melo
 

La actualidad más candente (20)

Guia Rápido de Referência Java
Guia Rápido de Referência JavaGuia Rápido de Referência Java
Guia Rápido de Referência Java
 
Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)
 
POO - 11 - Prática de Herança
POO - 11 - Prática de HerançaPOO - 11 - Prática de Herança
POO - 11 - Prática de Herança
 
Aula09 variavel
Aula09 variavelAula09 variavel
Aula09 variavel
 
Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
 
Introdução a JPA (2010)
Introdução a JPA (2010)Introdução a JPA (2010)
Introdução a JPA (2010)
 
Guia do F12: Chrome Developer Tools
Guia do F12: Chrome Developer ToolsGuia do F12: Chrome Developer Tools
Guia do F12: Chrome Developer Tools
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 
Introdução CSS
Introdução CSSIntrodução CSS
Introdução CSS
 
Curso MySQL #01 - Surgimento dos Bancos de Dados
Curso MySQL #01 - Surgimento dos Bancos de DadosCurso MySQL #01 - Surgimento dos Bancos de Dados
Curso MySQL #01 - Surgimento dos Bancos de Dados
 
Apresentação da EMP Consultoria e Treinamentos para Empresas de Segurança
Apresentação da EMP Consultoria e Treinamentos para Empresas de SegurançaApresentação da EMP Consultoria e Treinamentos para Empresas de Segurança
Apresentação da EMP Consultoria e Treinamentos para Empresas de Segurança
 
Banco de Dados Orientado a Objeto
Banco de Dados Orientado a ObjetoBanco de Dados Orientado a Objeto
Banco de Dados Orientado a Objeto
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Stored Procedures and Triggers
Stored Procedures and TriggersStored Procedures and Triggers
Stored Procedures and Triggers
 
Design principles - SOLID
Design principles - SOLIDDesign principles - SOLID
Design principles - SOLID
 
Cozinheira das cozinheiras
Cozinheira das cozinheirasCozinheira das cozinheiras
Cozinheira das cozinheiras
 
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
Introdução à programação para web com Java -  Módulo 03: Conceitos básicos de...Introdução à programação para web com Java -  Módulo 03: Conceitos básicos de...
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
 
Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágil
 
Angular 4 - Introdução
Angular 4 - IntroduçãoAngular 4 - Introdução
Angular 4 - Introdução
 

Destacado

✔ VBA Excel Specialist® - Index 2016 + de 700 Artigos - Atualização de VBA Ex...
✔ VBA Excel Specialist® - Index 2016 + de 700 Artigos - Atualização de VBA Ex...✔ VBA Excel Specialist® - Index 2016 + de 700 Artigos - Atualização de VBA Ex...
✔ VBA Excel Specialist® - Index 2016 + de 700 Artigos - Atualização de VBA Ex...André Luiz Bernardes
 
Curso completo de excel
Curso completo de excelCurso completo de excel
Curso completo de excelCDIM Daniel
 
Manual de produtos quimicos
Manual de produtos quimicosManual de produtos quimicos
Manual de produtos quimicosSoraya Santos
 
Apostila curso emergencias_quim
Apostila curso  emergencias_quimApostila curso  emergencias_quim
Apostila curso emergencias_quimwaltermoreira
 
Vagrant uma ferramenta realmente útil e versátil
Vagrant   uma ferramenta realmente útil e versátilVagrant   uma ferramenta realmente útil e versátil
Vagrant uma ferramenta realmente útil e versátilWanderlei Silva do Carmo
 
Apresentação programação de computadores
Apresentação   programação de computadoresApresentação   programação de computadores
Apresentação programação de computadoresWanderlei Silva do Carmo
 
Web Designer - O Arquiteto da Informação
Web Designer - O Arquiteto da InformaçãoWeb Designer - O Arquiteto da Informação
Web Designer - O Arquiteto da InformaçãoGustavo Zimmermann
 

Destacado (20)

Excel VBA: Aula 12
Excel VBA: Aula 12Excel VBA: Aula 12
Excel VBA: Aula 12
 
✔ VBA Excel Specialist® - Index 2016 + de 700 Artigos - Atualização de VBA Ex...
✔ VBA Excel Specialist® - Index 2016 + de 700 Artigos - Atualização de VBA Ex...✔ VBA Excel Specialist® - Index 2016 + de 700 Artigos - Atualização de VBA Ex...
✔ VBA Excel Specialist® - Index 2016 + de 700 Artigos - Atualização de VBA Ex...
 
Excel VBA: Aula 11
Excel VBA: Aula 11Excel VBA: Aula 11
Excel VBA: Aula 11
 
Excel comandos avançados
Excel comandos avançadosExcel comandos avançados
Excel comandos avançados
 
Curso completo de excel
Curso completo de excelCurso completo de excel
Curso completo de excel
 
Manual de produtos quimicos
Manual de produtos quimicosManual de produtos quimicos
Manual de produtos quimicos
 
Apostila curso emergencias_quim
Apostila curso  emergencias_quimApostila curso  emergencias_quim
Apostila curso emergencias_quim
 
Banco de dados i
Banco de dados iBanco de dados i
Banco de dados i
 
Mini aula de teste de software
Mini aula de teste de softwareMini aula de teste de software
Mini aula de teste de software
 
Mini aula-java
Mini aula-javaMini aula-java
Mini aula-java
 
Desenvolvimento para Windows Mobile
Desenvolvimento para Windows MobileDesenvolvimento para Windows Mobile
Desenvolvimento para Windows Mobile
 
Vagrant uma ferramenta realmente útil e versátil
Vagrant   uma ferramenta realmente útil e versátilVagrant   uma ferramenta realmente útil e versátil
Vagrant uma ferramenta realmente útil e versátil
 
Mini aula-java
Mini aula-javaMini aula-java
Mini aula-java
 
Programação de computadores
Programação de computadoresProgramação de computadores
Programação de computadores
 
Apresentação programação de computadores
Apresentação   programação de computadoresApresentação   programação de computadores
Apresentação programação de computadores
 
Mini aula-java
Mini aula-javaMini aula-java
Mini aula-java
 
Web Designer - O Arquiteto da Informação
Web Designer - O Arquiteto da InformaçãoWeb Designer - O Arquiteto da Informação
Web Designer - O Arquiteto da Informação
 
Twitter Chat
Twitter ChatTwitter Chat
Twitter Chat
 
Web (design+developer)
Web (design+developer)Web (design+developer)
Web (design+developer)
 
Mini aula análise de requisitos
Mini aula análise de requisitosMini aula análise de requisitos
Mini aula análise de requisitos
 

Similar a Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba

Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Ryan Padilha
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a pooSedu
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosRamon Mayor Martins
 
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdfAPOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdfpedrina4
 
Curso : Introdução Orientação a Objetos
Curso : Introdução Orientação a ObjetosCurso : Introdução Orientação a Objetos
Curso : Introdução Orientação a Objetosdanielrpgj30
 
Introdução à programação por objectos final
Introdução à programação por objectos finalIntrodução à programação por objectos final
Introdução à programação por objectos finalemcp11
 
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.0César Augusto Pessôa
 

Similar a Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba (20)

Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Programação Orientado a Objetos
Programação Orientado a ObjetosProgramação Orientado a Objetos
Programação Orientado a Objetos
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
 
Aula orientação a objetos
Aula orientação a objetosAula orientação a objetos
Aula orientação a objetos
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
 
03 poo
03 poo03 poo
03 poo
 
Java7
Java7Java7
Java7
 
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdfAPOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
 
Curso : Introdução Orientação a Objetos
Curso : Introdução Orientação a ObjetosCurso : Introdução Orientação a Objetos
Curso : Introdução Orientação a Objetos
 
Orientação a Objetos
Orientação a ObjetosOrientação a Objetos
Orientação a Objetos
 
Introdução à programação por objectos final
Introdução à programação por objectos finalIntrodução à programação por objectos final
Introdução à programação por objectos final
 
Python Orientação a Objeto
Python Orientação a ObjetoPython Orientação a Objeto
Python Orientação a Objeto
 
Sld 4
Sld 4Sld 4
Sld 4
 
Java 00 Poo
Java 00 PooJava 00 Poo
Java 00 Poo
 
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
 
Java aula 2
Java aula 2Java aula 2
Java aula 2
 
Aula 3 -_fundamentos_sobre_aoo
Aula 3 -_fundamentos_sobre_aooAula 3 -_fundamentos_sobre_aoo
Aula 3 -_fundamentos_sobre_aoo
 
Conceito POO
Conceito POOConceito POO
Conceito POO
 

Más de Wanderlei Silva do Carmo (7)

HTML Básico - Programador web
HTML Básico - Programador webHTML Básico - Programador web
HTML Básico - Programador web
 
Desenvolvimento IOS - Mobile
Desenvolvimento IOS - MobileDesenvolvimento IOS - Mobile
Desenvolvimento IOS - Mobile
 
Segurança de código
Segurança de códigoSegurança de código
Segurança de código
 
HTML Básico
HTML BásicoHTML Básico
HTML Básico
 
Curso gratuitoshellscript nivel-2
Curso gratuitoshellscript nivel-2Curso gratuitoshellscript nivel-2
Curso gratuitoshellscript nivel-2
 
Curso Gratuito de Shell Script
Curso Gratuito de Shell ScriptCurso Gratuito de Shell Script
Curso Gratuito de Shell Script
 
Operadores lógicos
Operadores lógicosOperadores lógicos
Operadores lógicos
 

Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba

  • 1. Classes em VBA/EXCEL Wanderlei Silva do Carmo <wander.silva@gmail.com>
  • 2. Objetivos Apreender conceitos básicos de programação orientada a objetos : Abstração Encapsulamento Herança Polimorfismo Modificadores de acesso Private Protected Friend Static
  • 3. Classe Uma classe é um arquivo texto escrito utilizando uma linguagem de programação contendo instruções e comandos que definem atributos, propriedades e métodos que darão origem a objetos. Dizemos que objetos são instancia de uma classe. Um objeto portanto é criado a partir de uma instanciação de uma classe em memória. Uma mesma classe pode gerar vários objetos para vários propósitos e funcionalidades. Classes são códigos armazenados.. Objetos são variáveis que fazem referencias a endereços de memória. Em outras palavras: Uma classe descreve propriedades e comportamentos dos objetos que serão criados por ela.
  • 4. Abstração O uso da abstração na computação pode ser exemplificada da seguinte forma: Imagine que um determinado processamento é realizado em vários pontos de um sistema, da mesma forma ou de forma idêntica. Ao invés de repetirmos o trecho de código responsável por este processamento, o abstraímos na forma de um procedimento ou função, e apenas fazemos uma chamada à tal procedimento, onde quer que necessitemos e por quantas vezes se fizer necessário. (Fonte: http://pt.wikipedia.org/wiki/Abstração) Em outras palavras para melhor entendimento: Abstrair é isolar toda complexidade de uma ação ou objeto e pegar apenas o que nos interessa em um dado momento. Um exemplo: Quando fazemos uso de um forno Micro-ondas não precisamos saber detalhes técnicos de seu funcionamento nem tampouco como foi construído e ainda não precisamos saber de que forma ele fará com que os alimentos sejam cozidos, assados, etc... Sabemos apenas que temos que “apertar” a tecla correspondente a ação que queremos. Da mesma forma em um software não precisamos saber como o programa executará as ações internamente, basta apenas que sabemos que ao clicar na opção desejada ele fará e pronto!
  • 5. Encapsulamento Encapsulamento vem de encapsular, que em programação orientada a objetos significa separar o programa em partes, o mais isoladas possível. A idéia é tornar o software mais flexível, fácil de modificar e de criar novas implementações. (http:// pt.wikipedia.org/wiki/Encapsulamento) Em outras palavras: Vamos pensar na ideia de uma cápsula onde vamos colocar algo que não queremos que ninguém veja ou saiba o que está guardado ali. Algumas informações poderemos permitir que outros acessem, porém de forma controlada, tomando todo o cuidado de tratar toda informação oriunda ou resultante de forma que tudo seja protegido de ações indesejadas por parte de quem as usar. Um exemplo: Conteúdo protegido Acesso controlado ao conteúdo protegido Objeto
  • 6. Herança Herança é um princípio de orientação a objetos, que permite que classes compartilhem atributos e métodos, através de "heranças". Ela é usada na intenção de reaproveitar código ou comportamento generalizado ou especializar operações ou atributos. O conceito de herança de várias classes é conhecido como herança múltipla. Como exemplo pode-se observar as classes 'aluno' e 'professor', onde ambas possuem atributos como nome, endereço e telefone. Nesse caso pode-se criar uma nova classe chamada por exemplo, 'pessoa', que contenha as semelhanças entre as duas classes, fazendo com que aluno e professor herdem as características de pessoa, desta maneira pode-se dizer que aluno e professor são subclasses de pessoa. (http://pt.wikipedia.org/wiki/Herança_(programação) ) Um Exemplo: Funcionário Gerente Vendedor Motorista Atributos comuns: codigo,nome,cpf,endereço,telefone,etc...
  • 7. Polimorfismo Na programação orientada a objetos, o polimorfismo permite que referências de tipos de classes mais abstratas representem o comportamento das classes concretas que referenciam. Assim, é possível tratar vários tipos de maneira homogênea (através da interface do tipo mais abstrato). O termo polimorfismo é originário do grego e significa "muitas formas" (poli = muitas, morphos = formas). O polimorfismo é caracterizado quando duas ou mais classes distintas tem métodos de mesmo nome, de forma que uma função possa utilizar um objeto de qualquer uma das classes polimórficas, sem necessidade de tratar de forma diferenciada conforme a classe do objeto.1 Uma das formas de implementar o polimorfismo é através de uma classe abstrata, cujos métodos são declarados mas não são definidos, e através de classes queherdam os métodos desta classe abstrata. (wikipedia). Em outras palavras: Podemos criar classes e métodos abstratos, ou seja em que nenhuma implementação de seus métodos serão feitos nela mas na classe que a herdar . Dessa forma poderemos implementar tais métodos de acordo com a necessidade para o qual foi construída a subclasse. Exempo: Animal cachorro gato Emitir_som Emitir_som latido miado
  • 8. Em programação orientada a objetos, modificador de acesso, também chamado de visão de método ou ainda visão de atributo, é a palavra-chave que define um atributo, método ou classe como público (ou public, qualquer classe pode ter acesso), privado (ou private, apenas os métodos da própria classe pode manipular o atributo) ou protegido (ou protected, pode ser acessado apenas pela própria classe ou pelas suas subclasses). Geralmente, utiliza-se modificadores de acesso para privar os atributos do acesso direto (tornando-os privados) e implementa-se métodos públicos que acessam e alteram os atributos. Tal prática pode ser chamada de encapsulamento. Em outras palavras: Métodos privados geralmente são usados apenas por outros métodos que são públicos (e que podem ser chamados a partir de outro objeto) da mesma classe a fim de não repetir código em mais de um método. (wikipedia) Modificadores de Acesso Lembram-se do encapsulamento? Os atributos que não queremos expor ficam protegidos de forma que somente o objeto saiba deles. Para expor de forma controlada o acesso à eles, usamos métodos públicos. É comum usarmos os chamados métodos get e set para respectivamente obter e alterar um determinado atributo. Em VB usamos suas propriedades para essa finalidade.
  • 9. Na Prática Criando uma classe em VBA 1 - No Project Explorer, clique com o botão direito em cima do nome de seu projeto. Escolha inserir, módulo de classe. 2- Agora vamos alterar o nome da classe na janela de propriedades. Na figura o nome foi alterado para “Contato”
  • 10. Na Prática Criando uma classe em VBA - Continuando
  • 11. Antes de começarmos a codificar devemos fazer um “esboço” da classe que iremos criar. Definir seus atributos e seus métodos. Lembrando do encapsulamento, os atributos privados somente podem ser vistos pelo próprio objeto. Para expor estes atributos para o mundo externo deve-se então usar métodos públicos. Antes de começarmos a codificar devemos fazer um “esboço” da classe que iremos criar. Definir seus atributos e seus métodos. Lembrando do encapsulamento, os atributos privados somente podem ser vistos pelo próprio objeto. Para expor estes atributos para o mundo externo deve-se então usar métodos públicos. Os atributos privados são precedidos do sinal “-” e os atributos públicos com o sinal “+” . Os atributos privados são precedidos do sinal “-” e os atributos públicos com o sinal “+” .
  • 12. As propriedades são a forma de se ter acesso de forma protegida aos atributos privados do objeto. As propriedades são a forma de se ter acesso de forma protegida aos atributos privados do objeto. Declaração de atributos privadosDeclaração de atributos privados Get e Let – Estas instruções são utilizadas para obter ou alterar o valor de um determinado atributo. Pode-se por exemplo, testar e validar valores antes de alterá-los ou mesmo incluir algum tipo de formatação de saída. Get e Let – Estas instruções são utilizadas para obter ou alterar o valor de um determinado atributo. Pode-se por exemplo, testar e validar valores antes de alterá-los ou mesmo incluir algum tipo de formatação de saída.
  • 13. Para instanciar uma classe, podemos usar o seguinte código em um módulo ou em rotinas de formulários. Para instanciar uma classe, podemos usar o seguinte código em um módulo ou em rotinas de formulários. Métodos públicos são visíveis ao mundo externo. Métodos públicos são visíveis ao mundo externo.
  • 14. Um exemplo mais completo do uso de classes em VBAUm exemplo mais completo do uso de classes em VBA Agora os botões chamarão métodos do objeto MeuContato. Agora os botões chamarão métodos do objeto MeuContato. Método Salvar do objetoMétodo Salvar do objeto
  • 15. Usando orientação a objetos: Benefícios: Reaproveitamento de código Código mais enxuto Acoplamento baixo entre os módulos Segurança.. entre outros. FIMFIM