| Introdução
Hoje em dia a programação orientada a objetos – POO é uma realidade. Apesar de muitos desenvolvedores programarem utilizando técnicas tradicionais, ninguém pode negar os benefícios que a POO pode proporcionar ao desenvolvimento de grandes aplicações principalmente quando é necessária uma manutenção ou implementação. No ColdFusion – CF é possível desenvolver aplicações orientada a objetos ? OO. Em alguns sites falam que o CF possui uma falsa POO, mas neste artigo irei mostrar como utilizar esses recursos de OO. POO no Java Classe é a representação de um tipo específico de objeto, composta pela sua descrição, que identifica os atributos e métodos. Construtores são métodos criados dentro das classes que são executados automaticamente no momento que instanciamos um objeto. Um método construtor obrigatoriamente possui o mesmo nome da classe, podendo haver vários métodos construtores, sendo que devemos utilizar o conceito de sobrecarga de métodos. Sobrecarga é quando temos dois ou mais métodos com o mesmo nome, mas com parâmetros diferentes em tipo ou em quantidade.
Comparação CFC com classes em Java Classe pessoa em Java: public class Pessoa {
// Atributos private String nome; private int idade; // Estou usando sobrecarga no construtor. // Construtor 1 public Pessoa() { } // Construtor 2 public Pessoa(String nome, int idade) { this.nome = nome; this.idade = idade; } // Métodos get e set public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public int getIdade() { return idade; } public void setIdade(int idade) { this.idade = idade; } // Método toString public String toString() { return “\nNome: “+nome+”\nIdade: “+idade; } } Programa em Java que acessa a classe pessoa: public class Programa {
public static void main(String args[]){ Pessoa p = new Pessoa(“Renan Fretta”, 18); System.out.println(p.toString()); } } Classe pessoa em CF:
<cfcomponent>
<!— Atributos —> <cfset nome = “” > <cfset idade = 0> <!— Método construtor, diferente do Java que não é executado automaticamente —> <cffunction name=”Init” access=”public”> <cfargument name=”n” required=”true” type=”string”> <cfargument name=”i” required=”true” type=”numeric”> <cfset nome = n> <cfset idade = i> </cffunction> <!— Métodos get e set —> <cffunction name=”getNome” access=”public” returntype=”string”> <cfreturn nome> </cffunction> <cffunction name=”setNome” access=”public” > <cfargument name=”n” required=”true” type=”string”> <cfset nome = n> </cffunction> <cffunction name=”getIdade” access=”public” returntype=”numeric”> <cfreturn idade> </cffunction> <cffunction name=”setIdade” access=”public” > <cfargument name=”i” required=”true” type=”numeric”> <cfset idade = i> </cffunction> <!— Métodos toString —> <cffunction name=”toString1″ access=”public” returntype=”string”> <cfreturn “<br>Nome: “&nome&”<br>Idade: “&idade> </cffunction> </cfcomponent>
Programa em CF que acessa a classe pessoa: <html>
<body> </html> Considereções finais Utilizei o método toString1 no CF, pois se eu colocar toString da erro, ele diz que o CF já tem uma função com esse nome. Olhei na referência sobre o comando this, mas não funcionou, então coloquei a inicial dos atributos como i para idade e n para nome. Agora vou explicar um pouco a teoria e a prática:
<cfobject name=” p ” component=”Pessoa”>
Pessoa p = new Pessoa(?Renan Fretta?, 18);
Pessoa p = new Pessoa();
<cfoutput>#p.Init(“Renan Fretta”, 18)#</cfoutput>
Então o nosso objeto p possui um nome e uma idade, agora é só perguntar para ele: |
muitoo interessante o site , gostei muitoo
dos codigos !
abraços !