NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!
UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI
FILTRO DE TUTORIAIS:
Objetivos:
Este parte do tutorial discute o .NET Framework e o Common Language Runtime. Também fornece introdução a sintaxe de classes, estruturas e declarações de métodos.
Pré-requisitos:
Ter estudado a parte 2 deste tutorial.
Classes são modelos de objetos. Elas descrevem o tipo e a quantidade de dados que um objeto possui mas não representam uma instância em particular de um objeto. Um exemplo real de uma classe pode ser um “Carro” - A idéia abstrata de um carro. Você sabe que um carro tem um motor, marchas, cor, média de consumo e mais uma dúzia de outras propriedades. Embora a classe “Carro” possa descrever todas estas propriedades de um carro e mais as ações que ele pode realizar ela não representa um carro específico. Um carro que você vê na rua, em contrapartida, é um objeto. Ele tem um cor específica, um motor específico, um consumo específico e marchas específicas. Carros diferentes podem ter diferentes valores para cada uma destas propriedades mas todos são conhecidos por serem uma instância de uma classe “Carro”.
Membros
Classes descrevem propriedades e comportamentos de objetos que são representados por membros desta classe. Membros são métodos, campos, propriedades e eventos de uma classe em particular. Campos e propriedades representam dados sobre o objeto – a cor do carro, o consumo e o tipo de transmissão por exemplo. Métodos representam alguma coisa que o objeto possa fazer como acender os faróis. Eventos representam algo que possa ocorrer com o objeto como um acidente ou uma ultrapassagem.
Nota
Este tutorial discute campos e métodos mas a frente discutiremos sobre propriedades e eventos.
Criando classes
Você pode criar uma nova classe utilizando as palavras chaves Class (Visual Basic .NET) ou class (C#). Por exemplo:
Visual Basic .NET
Public Class Widget
‘ A implementação da classe ocorre aqui
End Class
C#
public class Widget
{
// A implementação da classe ocorre aqui
}
Neste exemplo você utiliza a palavra chave Class (class) para criar uma classe definida pelo usuário. O nome da classe é Widget. A palavra chave Public (public) especifica o nível de acesso da classe. Níveis de acesso serão estudados mais a frente.
Criando estruturas
Criar estruturas é muito similar a criar classes. Você usa a palavra chave Structure (Visual Basic .NET) ou struct (C#). Por exemplo:
Visual Basic .NET
Public Structure Vector
‘ A implementação da estrutura ocorre aqui
End Structure
C#
public struct Vector
{
// A implementação da estrutura ocorre aqui
}
Adicionando membros
No Visual Basic .NET a classe compreend tudo aquilo que esta entre as palavras chaves Class e End Class. No C# a classe compreende tudo aquilo que está entre colchetes ({}) logo após o nome da classe. Estruturas são similares. Tanto nas classes como nas estruturas você pode adicionar membros. O texto abaixo exemplifica isto:
Visual Basic .NET
Public Class Widget
Public Spin As Integer
End Class
C#
public class Widget
{
Public int Spin;
}
A nossa classe Widget contém um membro chamado Spin. Esta variável tem nível de acesso público e pode conter um valor inteiro. Mas a frente neste tutorial iremos discutir como adicionar métodos como membros de sua classe.
Classes aninhadas
Tipos podem conter outros tipos. Tipos que estão contidos dentro de outros tipos são chamados de tipos aninhados. Utilizando o exemplo de classes uma classe aninhada é uma classe que a classe pai necessita criar e manipular e que ela não é necessária fora da classe pai. Um exemplo disso pode ser a classe “roda”. A classe “roda” poderá criar e manipular a classe “raio” mas externamente talvez nunca seja preciso ter a classe “raio”. Um exemplo mais real pode ser a classe Gerente de Contas que pode controlar toda e qualquer iteração com o objetos Conta. Você pode querer não permitir que uma classe Conta seja criada independetemente de uma classe Gerente de Contas. Então a classe Conta é aninhada dentro da classe Gerente de Conta. Isto não significa que uma classe aninhada jamais será instânciada por um objeto que não derive de sua clase pai. Isto vai depender do nível de acesso dado a classe aninhada. A seguir temos exemplos de classes aninhadas.
Visual Basic .NET
Public Class Widget
‘ O código da classe Widget começa aqui
Private Class Widgurt
‘ O código da classe Widgurt começa aqui
End Class
End Class
C#
public class Widget
{
\\ O código da classe Widget começa aqui
public class Widgurt
{
\\ O código da classe Widgurt começa aqui
}
}
Instanciando tipos definidos pelo usuário
Você declara e instância um tipo definido pelo usuário da mesma forma como você declara e instância um tipo da .NET Framework Base Class Library. Para os dois tipos: Por referência (classes) e por valores (estruturas) você declara a variável com o tipo que deseja e depois instância o objeto utilizando a palavra chave New (new). Veja o exemplo a seguir:
Visual Basic .NET
Public Class Demo
Public Structure ValueDemo
Public X As Integer
End Structure
Public Class RefDemo
Public Y As Integer
End Class
Public Sub InstantiateTypes()
' This line declares a ValueDemo variable
Dim DemoStructure As ValueDemo
' This line creates an instance of ValueDemo on the stack
DemoStructure = New ValueDemo()
' The variable is ready to receive data.
DemoStructure.X = 15
' This line declares a RefDemo variable, but doesn't
' create an instance of the class
Dim DemoClass As RefDemo
' This line actually creates the object
DemoClass = New RefDemo()
' And you can now assign value to its members
DemoClass.Y = 15
End Sub
End Class
C#
public class Demo
{
public struct ValueDemo
{
public int X;
}
public class RefDemo
{
public int Y;
}
public void InstantiateTypes()
{
// This line declares a ValueDemo variable
ValueDemo DemoStructure;
// This line creates an instance of ValueDemo on the stack
DemoStructure = new ValueDemo();
// The variable is ready to receive data
DemoStructure.X = 15;
// This line declares a RefDemo variable, but doesn't create
// an instance of the class
RefDemo DemoClass;
DemoClass = new RefDemo();
// And you can now assign value to its members
DemoClass.Y = 15;
}
}
Classes versus estruturas
Superficialmente classes e estruturas parecem similar. Ambas contém membros como campos, e métodos, necessitam de um construtor para criar uma instância delas e como todos os tipos da .NET Framework Base Class Library ambas instanciam objetos. A chave da diferença entre as duas é que classes são tipos por referência e estruturas são tipos por valor. Vendo isto em um nível mais baixo podemos afirmar que os dados da classe são armazenados na área de memória chamada heap enquanto os dados de uma estrutura são armazenados em uma área de memória chamada stack. Armazenar dados na stack permite um acesso mais rápido e leve porém uma grande quantidade de dados na stack impacta na performance das aplicações.
Em termos práticos é melhor usar estruturas para objetos pequenos e leves que não duram por muito tempo. Classes devem ser usadas para objetos com grande volume de dados e que ficaram na memória por um longo período.
Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434
Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208
Todos os direitos reservados, Júlio Battisti 2001-2025 ®
LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO
DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI