Home Tutoriais Desenvolvimento Programação orientada a objetos em PHP


A programação orientada a objetos é uma metodologia de programação avançada e bastante estendida, na que os sistemas se modelam criando classes, que são um conjunto de dados e funcionalidades. As classes são definições, a partir das que se criam objetos. Os objetos são exemplares de uma classe determinada e como tal, dispõem dos dados e funcionalidades definidos na classe.

A programação orientada a objetos permite conceber os programas de uma maneira bastante intuitiva e próxima a realidade. A tendência é que um maior número de linguagens de programação adotem a programação orientada a objetos como paradigma para modelar os sistemas. Prova disso é a nova versão de PHP (5), que possui a programação de objetos como metodologia de desenvolvimento. Também a Microsoft deu um giro em direção a programação orientada a objetos pois .NET dispõem de várias linguagens para programar e todas orientadas a objetos.

De este modo, a programação orientada a objetos é uma área de grande interesse, pois é muito utilizada e cada vez torna-se mais essencial para poder desenvolver em quase qualquer linguagem moderna. Neste artigo vamos ver alguma notações sobre a programação orientada a objetos em PHP. Ainda que sendo uma área bastante amplia e novidade para muitos e num principio difícil de assimilar, vamos tentar explicar a sintaxe básica de PHP para utilizar objetos, sem entrar em muita teoria de programação orientada a objetos em geral.

As classes: class 

Uma classe é um conjunto de variáveis, chamados atributos, e funções, chamadas métodos, que trabalham sobre essas variáveis. As classes são uma definição: uma especificação de propriedades e funcionalidades de elementos que vão participar nos nossos programas.

Por exemplo, a classe “Caixa” teria como atributos características como as dimensões, cor, conteúdo e coisas semelhantes. As funções ou métodos que poderíamos incorporar a classe “Caixa” são as funcionalidades que queremos que realize a caixa, por exemplo introduz(), mostra_conteudo(), comprova_se_cabe(), vaziar()…

As classes em PHP definem-se da seguinte maneira:

<?
class Caixa{
var $altura;
var $grossura;
var $largura;
var $conteudo;
var $cor;

function introduz($coisa){
$this->conteudo = $coisa;
}

function mostra_conteudo(){
echo $this->conteudo;
}
}
?>

Neste exemplo criou-se uma classe Caixa, indicando como atributos a altura, a grossura, a largura e também a cor e o conteúdo. Para começar criaram-se um par de métodos, um para introduzir um elemento na caixa e outro para mostrar o conteúdo.

Se repararmos, os atributos definem-se declarando umas variáveis ao principio da classe. Os métodos definem-se declarando funções dentro de uma classe. A variável $this, utilizada dentro dos métodos será explicada um pouca mais em baixo.

Utilizar a classe 

As classes são definições. Se queremos utilizar uma classe temos de criar um exemplar dessa classe, o que normalmente se chama instanciar um objectos de uma classe.

$minhacaixa = new Caixa;

Com isto criámos ou melhor dito, instanciámos, um objecto da classe Caixa chamado $minhacaixa

$minhacaixa->introduz(“algo”);
$minhacaixaa->mostra_conteudo();

Com estas duas sentenças estamos a introduzir “algo” na caixa e depois estamos a mostrar esse conteúdo no texto da página. Repara que os métodos de um objecto chamam-se utilizando o código “->”.

nome_do_objecto->nome_do_metodo()

Para aceder aos atributos de uma classe também se acede com o código “->”. Desta forma:

nome_do_objeto->nome_do_atributo

A variável $this 

Dentro de um método, a variável $this faz referência ao objecto sobre o que invocamos o método. Na invocação $minhacaixa->introduz(“algo”) está-se a chamar ao método introduz sobre o objecto $minhacaixa. Quando se está a executar esse método, passa-se o valor que recebe por parâmetro ao atributo conteúdo. Neste caso $this->conteúdo faz referência ao atributo contido no objecto $minhacaixa, que é sobre o que se invocava o método.

Fonte: http://www.criarweb.com/artigos/114.php

   

Leave a Reply

This blog is kept spam free by WP-SpamFree.