VB.NET
- Juntando as partes - Criando uma aplicação OOP
Este artigo encerra a seqüência que aborda os conceitos básicos sobre a implementação OOP no VB .NET. Abaixo os links de cada artigo para você acompanhar:
Neste artigo vou procurar mostrar uma aplicação prática dos conceitos OOP de forma que você possa ter uma visão geral e de como por em prática toda esta teoria.
A mentalidade da programação orientada a objetos está em modelar os objetos definindo suas propriedades, determinando os dados necessários e eventos e métodos que o objeto vai utilizar. No VB .NET controles tais como o TextBox ou LIstBox são por definição classes. Assim um TextBox chamado txtNome quando incluído em um formulário inicializa o código Friend WithEvents txtNome As System.Windows.Forms.TextBox que será incluído na seção Windows Form Designer generate Code para criar uma instância da classe TextBox. Após a classe ser instanciada o objeto pode ser usado no seu projeto a vontade. Vamos então ao trabalho...
Vamos supor que numa empresa hipotética , a JcmSoft Inc. , existam três tipos de empregados : o funcionário da empresa , o contrato eventual e o funcionário de cargo gerencial. Cada um tem suas particularidades o pagamento para cada funcionário é feito da seguinte forma:
Nossa aplicação VB .NET terá por objetivo gerenciar o pagamento para os funcionários da empresa. Para isto vamos criar uma super classe (Classe Pai) chamada Funcionario e duas classes filhas (Classes base) FuncionarioContratado e FuncionarioNormal derivadas da super classe.
A classe pai terá :
ErrorEvent(ByVal objName As String)
Inicie um novo projeto Vb.NET no Visual Studio .NET selecionando na seqüência : File | New | Project| VB Projects e a seguir Windows Application. Devemos definir a classe que será usada , para isto , inclua um novo módulo de classe e chame-o Funcionario.vb(veja figura) . Lembre-se que todo o arquivo de módulo tem a terminação .vb. (O tipo de arquivo é determinado pelo seu conteúdo não pela sua extensão).

A seguir temos o código da classe Funcionário:
|
Option Explicit On 'Obriga a declarar as variáveisOption Strict On 'Obriga a seguir os tipos definidos para as variáveis
Public Class Funcionario
'Definição do Evento para ErrorEvent Public Event ErrorEvent(ByVal objName As String)
Private mstrCodigo As String Private mstrSobrenome As StringPrivate mstrNome As String Private mstrEndereco As String Private mintStatus As Integer Private mstrIdade As Integer Public Property Codigo() As String GetReturn mstrCodigo End Get Set(ByVal Value As String) If Value.Length < 11 Then RaiseEvent ErrorEvent("Codigo") Else mstrCodigo = Value End If End Set End Property Public Property Sobrenome() As String Get Return mstrSobrenome End Get Set(ByVal Value As String) mstrSobrenome = Value End Set End PropertyPublic Property Nome() As String Get Return mstrNome End Get Set(ByVal Value As String) mstrNome = Value End Set End PropertyPublic Property Endereco() As String Get Return mstrEndereco End Get Set(ByVal Value As String) mstrEndereco = Value End Set End PropertyPublic Property Idade() As Integer Get Return mstrIdade End Get Set(ByVal Value As Integer) mstrIdade = Value End Set End PropertyPublic Property Status() As Integer Get Return mintStatus End Get Set(ByVal Value As Integer) If Value > 5 Or Value < 1 Then RaiseEvent ErrorEvent("Status") Else mintStatus = Value End If End Set End Property
Public Overridable Function CalculaSalario() As Long 'esta função será sobreescrita 'no código da classe filha (subclasse) que herda desta classe End Function End Class |
Nota: A forma de declarar uma propriedade é diferente das versões anteriores do VB. Embora usamos os comandos Get e Set , eles estão englobados pela declaração Property/End Property.
Na definição da classe Funcionario começamos declarando o evento ErrorEvent. Este evento terá um escopo público e será disparado pelo código da classe se um valor inválido for fornecido para a propriedade Codigo e Status.
As variáveis: mstrCodigo , mstrSobrenome , mstrNome , mstrEndereco , mintStatus , mstrIdade são declaradas como private serão usadas somente pelo módulo da classe. Como elas são declaradas antes de qualquer propriedade ou método estão disponíveis para todo o código no módulo da classe.
A seguir definimos as seis propriedades como Public de forma a serem visíveis fora da classe e assim podermos acessar essas propriedades.
As propriedades Codigo e Status verificam se o valor informado é valido e caso contrário o evento de erro será disparado.
O método CalculaSalario() não possui nenhuma linha de código e apenas foi declarado , fizemos isto pois as classes filhas irão herdar este método e terão cada um sua própria implementação do mesmo. Por isto usamos a palavra chave Overridable na declaração do método ; ela é obrigatória de modo a permitir que a classe que herda a classe possa implementar o seu próprio método.
Vai continuar...![]()
José Carlos Macoratti