Primeiramente gostaria de agradecer esta oportunidade dada pela equipe do iMasters. É sempre bom e prazeroso compartilharmos conhecimentos e pontos de vistas diferentes. Agradeço de coração esse espaço para que eu possa contribuir com o que tenho de bom com todos vocês.
A moda hoje em dia é programar orientada a objetos (POO). Isso é fato. Para aqueles que ainda desenvolvem códigos estruturados, estão perdendo o grande glamour e as facilidades que os códigos POO tem a oferecer ao desenvolvedor. Várias tecnologias Web já aderiram, ou estão em fase de mudança, para que possam suportar esse novo paradigma. A tecnologia Java dispensa comentários. Grande parte da sua estrutura é orientada a objetos. Outras como PHP 5 e ASP.NET também podem ser programadas utilizando este conceito.
Mas para que uma tecnologia possa mesmo ser considerada orientada a objetos, algumas características importantes devem ser observadas, tais como: abstração,encapsulamento, herança, polimorfismo, interfaces entre outros. É obvio que falar de OO vai muito além disso. Mas o que fazer com tecnologias, como o ASP, que não oferecem todos esses recursos para uma POO? De fato as classes feitas em ASP não permitem herança, polimorfismo e tampouco interfaces. Entretanto podemos utilizar o que a tecnologia tem disponível em prol do desenvolvedor. Neste texto será apresentado um exemplo de array de objetos em ASP. Não é nenhum ArrayList do Java mas poderá ajudar muitos desenvolvedores que buscam algo parecido em ASP.
Considerem uma classe chamada clientes como exemplo genérico. São propriedades de um cliente possuir um nome, rg, cpf, telefone e data de nascimento. Então vamos a classe:
'Classe responsável em criar objetos do tipo cliente
'e seus respectivos métodos get e set
Class Cliente
'Declara as propriedades da classe Cliente
private nome
private cpf
private rg
private telefone
private dataNascimento
'NOME
Public sub setNome(vNome)
nome = vNome
End sub
Public Property get getNome()
getNome = nome
End property
'CPF
Public sub setCpf(vCpf)
cpf = vCpf
End sub
Public Property get getCpf()
getCpf = cpf
End property
'RG
Public sub setRg(vRg)
rg = vRg
End sub
Public Property get getRg()
getRg = rg
End property
'TELEFONE
Public sub setTelefone(vTelefone)
telefone = vTelefone
End sub
Public Property get getTelefone()
getTelefone = telefone
End property
'DATA NASCIMENTO
Public sub setDataNascimento(vDataNascimento)
dataNascimento = vDataNascimento
End sub
Public Property get getDataNascimento()
getDataNascimento = dataNascimento
End property
End Class
A classe cliente não possui nenhum mistério. Suas propriedades estão encapsuladas com seus respectivos métodos set e get para alteração e retorno dos seus valores. Agora vamos criar um array de objetos utilizando esta classe. Primeiramente criaremos um array comum chamado: arrayObjCliente.
'Cria um array com três índices
Dim arrayObjCliente(3)
Em seguida criaremos uma instância para cada índice desse array.
'Cria uma instância para cada índice desse array
Set arrayObjCliente(0) = new Cliente
Set arrayObjCliente(1) = new Cliente
Set arrayObjCliente(2) = new Cliente
Dessa forma cada índice desse array será um objeto Cliente com suas propriedades e métodos. O próximo passo será setar os valores para cada objeto desse array.
'O primeiro índice será o objeto do cliente Marcos com suas propriedades(nome,reg cpf, telefone e data de nascimento)
arrayObjCliente(0).setNome("Marcos")
arrayObjCliente(0).setCpf(123456786)
arrayObjCliente(0).setRg(245687)
arrayObjCliente(0).setTelefone(33456778)
arrayobjCliente(0).setDataNascimento("14/12/1985")
'O segundo índice será o objeto da cliente Fernanda com suas propriedades(nome,reg cpf, telefone e data de nascimento)
arrayObjCliente(1).setNome("Fernanda")
arrayObjCliente(1).setCpf(6546549879)
arrayObjCliente(1).setRg(5646458)
arrayObjCliente(1).setTelefone(23144656)
arrayobjCliente(1).setDataNascimento("25/01/1979")
'O terceiro índice será o objeto do cliente Paulo com suas propriedades(nome,reg cpf, telefone e data de nascimento)
arrayObjCliente(2).setNome("Paulo")
arrayObjCliente(2).setCpf(8979875465)
arrayObjCliente(2).setRg(131654)
arrayObjCliente(2).setTelefone(5564897)
arrayobjCliente(2).setDataNascimento("12/05/1982")
Pronto! Está criado o array de objetos Cliente. Agora basta percorrer cada índice desse array para recuperar os valores de cada objeto utilizando o método get.
Abaixo é mostrada uma estrutura de repetição na qual irá percorrer cada índice do array de objetos
Dim i
'Laço de repetição que imprime na tela do usuário
'os valores dos objetos de cada índice utilizando o método get.
for i = 0 to (Ubound(arrayObjCliente)-1)
Response.Write("Nome:"&arrayObjCliente(i).getNome&"<br/>")
Response.Write("RG:"&arrayObjCliente(i).getRg&"<br/>")
Response.Write("CPF:"&arrayObjCliente(i).getCpf&"<br/>")
Response.Write("Telefone:"&arrayObjCliente(i).getTelefone&"<br/>")
Response.Write("Data de Nascimento:"&arrayObjCliente(i).getDataNascimento&"<br/><hr /><br />")
Set arrayObjCliente(i) = Nothing 'Destroí o objeto criado em memória
Next
No final irá retornar para o usuário algo parecido como:
Conclusão
Mesmo não sendo uma tecnologia orientada a objetos, o ASP ainda pode oferecer alguns recursos interessantes que só podemos encontrar nessas plataformas OO. Para aqueles que acham que esse exemplo não vai ajudar em muita coisa, na próxima coluna mostrarei um exemplo prático utilizando classes e conexão com banco de dados envolvendo este conceito.
Veja o código na integra aqui.