Robson Alves O que torna um sonho irrealizável é a inércia de quem sonha

25jan/100

Estrutura de Classes Instanciadas e Staticas

Neste tópico vamos falar sobre algumas particularidades da programação orientada a objetos.

Todo programa possuirá suas classes e neste ambiente existirá a super-classe e a partir dela as sub-classes. Este conceito tem como foco quando falarmos de heranças entre classes.

Dentro de cada classe existirá não obrigatoriamente, métodos (onde retornam ou não valores), Enum, structs entre outros.

O intuito da utilização das classes vem da maior facilidade de reutilização de códigos, pois podemos criar classes de conexão com um banco de dados, por exemplo, e em todo acesso ao banco utilizar o mesmo código para este processo. Não só isso, este mesmo código pode ser passado para outros projetos que necessitarem das mesmas funções.

A descentralização do código permite maior organização e legibilidade do código.

Para que isto fique mais claro, vamos exemplificar o que é escrito com a prática, com o intuito de simplificar (ou não).

//Estrutura de uma classe.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Drawing;
using MySql.Data.MySqlClient;

///

/// Summary description for Funcoes
///

public static class Funcoes
{
static Funcoes()
{
//Não é um construtor porém serve como.
}

public static void CarregaListaGastos(ref DropDownList drp)
{
drp.DataSource = ConexaoMYSQL.ExecutarSelect("SELECT TipoGasto From tipoGastos where desab = 0");
drp.DataTextField = "TipoGasto";
drp.DataValueField = "TipoGasto";
drp.DataBind();
drp.Items.Insert(0, "SELECIONE");

}
}

Acima uma classe static (Assunto para outro Post), com um método void que obrigatóriamente tem que ser static também.

A primeira função static no código, entenda-se como um construtor, porém esta não pode ser declarada como pública e nem mesmo possuir uma sobre-carga, entretanto o primeiro acesso a classe é feito por ele, então entenda-se que seja um construtor.

Sem novidades até aqui, dentro desta classes então poderemos ter também:

enum MeuEnum
{

}

struct MeuStruct
{

}

public static int MinhaPropriedade { get; set; }

obs: Repare que o Enum (Enumerador) e Struct não possuem o Static, lembrando que a regra de uma classe estática é que todos os seus membros serão “Estáticos”.

Apesar de ter fugido um pouco do post, você foi capaz então de entender o que envolve uma estrutura de uma classe e ainda por cima criar uma classe “Static”, claro que devo mostrar como se declarar uma variável static de uma classe instaciada.

Classe Instanciada:
C#
ClassInstanciada apelidodaClasse = new ClassInstanciada();

Classe Static:
C#
ClasseStatic.Metodos();

Ou seja fica claro que a classe não statica deve obrigatóriamente ser instanciada, ou seja o objeto desta classe deve existir agora no seu programa principal, ou no seu page_load, já a static ele não necessita ser instanciada para o seu uso, sendo assim existirá apenas uma referência deste em memória.

Para não extender muito técnicamente isto fico por aqui, para que entendam vou exemplificar uma forma de classe instanciavel abaixo:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;

public class MenuTopo
{
public MenuTopo()
{
//
// TODO: Add constructor logic here
//
}

public MultiView menuAba(MenuEventArgs e, ref MultiView MultView)
{
switch (e.Item.Target)
{

case "ViewGastos":
MultView.ActiveViewIndex = 0;
return MultView;

case "ViewAuxiliar":
MultView.ActiveViewIndex = 1;
return MultView;

case "ViewRelacao":
MultView.ActiveViewIndex = 2;
return MultView;

default:
return MultView;

}
}
}

È isto ae pessoal, comentem.