of 16 /16
Classes em VBA/EXCEL Wanderlei Silva do Carmo <[email protected]>

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

Embed Size (px)

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

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

Classes em VBA/EXCEL

Wanderlei Silva do Carmo <[email protected]>

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

Objetivos

Apreender conceitos básicos de programação orientada a objetos :

AbstraçãoEncapsulamentoHerançaPolimorfismoModificadores de acesso

PrivateProtectedFriendStatic

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

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.

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

AbstraçãoO 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!

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

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 protegidoAcesso controlado ao conteúdo protegido

Objeto

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

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

MotoristaAtributos comuns: codigo,nome,cpf,endereço,telefone,etc...

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

PolimorfismoNa 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

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

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.

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

Na PráticaCriando 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”

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

Na PráticaCriando uma classe em VBA - Continuando

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

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 “+” .

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

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.

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

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.

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

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

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

Usando orientação a objetos:

Benefícios:

Reaproveitamento de códigoCódigo mais enxutoAcoplamento baixo entre os módulosSegurança.. entre outros.

FIMFIM