+5

Introdução ao PHP

criado por João Prado Maia em 25/01/2001 6:32pm
<p class=\"negrito\">12. Classes e Objetos</p>
<p align=\"JUSTIFY\">&nbsp;</p>
<p align=\"JUSTIFY\">Classe</p>
<p align=\"JUSTIFY\">Uma classe &eacute; um conjunto de vari&aacute;veis
e fun&ccedil;&otilde;es relacionadas a essas vari&aacute;veis. Uma
vantagem da utiliza&ccedil;&atilde;o de programa&ccedil;&atilde;o
orientada a objetos &eacute; poder usufruir do recurso de encapsulamento
de informa&ccedil;&atilde;o. Com o encapsulamento o usu&aacute;rio
de uma classe n&atilde;o precisa saber como ela &eacute; implementada,
bastando para a utiliza&ccedil;&atilde;o conhecer a interface, ou
seja, as fun&ccedil;&otilde;es dispon&iacute;veis. Uma classe &eacute;
um tipo, e portanto n&atilde;o pode ser atribu&iacute;da a uma vari&aacute;vel.
Para definir uma classe, deve-se utilizar a seguinte sintaxe:</p>
<p align=\"JUSTIFY\"><span class=\"mysql\">&lt;?php<br>
class Nome_da_classe {<br>
&nbsp;&nbsp;var $variavel1;<br>
&nbsp;&nbsp;var $variavel2;</span></p>
<p align=\"JUSTIFY\"> <span class=\"mysql\">&nbsp;&nbsp;function funcao1
($parametro) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;/* === corpo da fun&ccedil;&atilde;o ===
*/<br>
&nbsp;&nbsp;}<br>
}<br>
?&gt; </span></p>
<p align=\"JUSTIFY\"><span class=\"mysql\"></span>Objeto</p>
<p align=\"JUSTIFY\">Como foi dito anteriormente, classes s&atilde;o
tipos, e n&atilde;o podem ser atribu&iacute;das a vari&aacute;veis.
Vari&aacute;veis do tipo de uma classe s&atilde;o chamadas de objetos,
e devem ser criadas utilizando o operador <span class=\"mysql\">new</span>,
seguindo o exemplo abaixo:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\" class=\"mysql\">$variavel = new $nome_da_classe;</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Para utilizar as fun&ccedil;&otilde;es definidas
na classe, deve ser utilizado o operador <span class=\"mysql\">&quot;-&gt;&quot;</span>,
como no exemplo:</p>
<p align=\"JUSTIFY\" class=\"mysql\">$variavel-&gt;funcao1();</p>
<p align=\"JUSTIFY\">&nbsp;</p>
<p align=\"JUSTIFY\">A vari&aacute;vel $this</p>
<p align=\"JUSTIFY\">Na defini&ccedil;&atilde;o de uma classe, pode-se
utilizar a vari&aacute;vel <span class=\"mysql\">$this</span>, que
&eacute; o pr&oacute;prio objeto. Assim, quando uma classe &eacute;
instanciada em um objeto, e uma fun&ccedil;&atilde;o desse objeto
na defini&ccedil;&atilde;o da classe utiliza a vari&aacute;vel <span class=\"mysql\">$this</span>,
essa vari&aacute;vel significa o objeto que estamos utilizando.</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Como exemplo da utiliza&ccedil;&atilde;o de classes
e objetos, podemos utilizar a classe conta, que define uma conta
banc&aacute;ria bastante simples, com fun&ccedil;&otilde;es para
ver saldo e fazer um cr&eacute;dito.</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">&lt;?php<br>
class conta {<br>
&nbsp;&nbsp;var $saldo;</span></p>
<p align=\"JUSTIFY\"> <span class=\"mysql\">&nbsp;&nbsp;function saldo()
{<br>
&nbsp;&nbsp;&nbsp;&nbsp;return $this-&gt;saldo;<br>
&nbsp;&nbsp;}</span></p>
<p align=\"JUSTIFY\"> <span class=\"mysql\">&nbsp;&nbsp;function credito($valor)
{<br>
&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;saldo += $valor;<br>
&nbsp;&nbsp;}<br>
}</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">$minhaconta = new conta;<br>
</span><span class=\"mysql\">$minhaconta-&gt;saldo();&#9;// a variavel
interna n&atilde;o foi</span><span class=\"mysql\"> inicializada,
<br>
</span><span class=\"mysql\">// e n&atilde;o cont&eacute;m</span><span class=\"mysql\">
valor algum</span></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">$minhaconta-&gt;credito(50);<br>
</span><span class=\"mysql\">$minhaconta-&gt;saldo(); // retorna 50<br>
?&gt; </span></p>
<p align=\"JUSTIFY\">&nbsp;</p>
<p align=\"JUSTIFY\">SubClasses</p>
<p align=\"JUSTIFY\">Uma classe pode ser uma extens&atilde;o de outra.
Isso significa que ela herdar&aacute; todas as vari&aacute;veis
e fun&ccedil;&otilde;es da outra classe, e ainda ter&aacute; as
que forem adicionadas pelo programador. Em PHP n&atilde;o &eacute;
permitido utilizar heran&ccedil;a m&uacute;ltipla, ou seja, uma
classe pode ser extens&atilde;o de apenas uma outra.Para criar uma
classe extendida, ou derivada de outra, deve ser utilizada a palavra
reservada <span class=\"mysql\">extends</span>, como pode ser visto
no exemplo seguinte:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">&lt;?php<br>
class novaconta extends conta {<br>
&nbsp;&nbsp;var $num;</span></p>
<p align=\"JUSTIFY\"> <span class=\"mysql\">&nbsp;&nbsp;function numero()
{<br>
&nbsp;&nbsp;&nbsp;&nbsp;return $this-&gt;num;<br>
&nbsp;&nbsp;}<br>
}<br>
?&gt;</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A classe acima &eacute; derivada da classe conta,
tendo as mesmas fun&ccedil;&otilde;es e vari&aacute;veis, com a
adi&ccedil;&atilde;o da vari&aacute;vel <span class=\"mysql\">$numero</span>
e a fun&ccedil;&atilde;o <span class=\"mysql\">numero()</span>.</p>
<p align=\"JUSTIFY\"><font face=\"Arial\"><a name=\"_Toc485214830\">Construtores</a></font></p>
<p align=\"JUSTIFY\">Um construtor &eacute; uma fun&ccedil;&atilde;o
definida na classe que &eacute; automaticamente chamada no momento
em que a classe &eacute; instanciada (atrav&eacute;s do operador
<span class=\"mysql\">new</span>). O construtor deve ter o mesmo nome
que a classe a que pertence. Veja o exemplo:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">&lt;?php<br>
class conta {<br>
&nbsp;&nbsp;var $saldo;</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"> <span class=\"mysql\">&nbsp;&nbsp;function conta
() {<br>
&nbsp;&nbsp;&nbsp;&nbsp;$this.saldo = 0;<br>
&nbsp;&nbsp;}</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"> <span class=\"mysql\">&nbsp;&nbsp;function saldo()
{<br>
&nbsp;&nbsp;&nbsp;&nbsp;return $this-&gt;saldo;<br>
&nbsp;&nbsp;}</span></p>
<p align=\"JUSTIFY\"> <span class=\"mysql\">&nbsp;&nbsp;function credito($valor)
{<br>
&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;saldo += $valor;<br>
&nbsp;&nbsp;}<br>
}<br>
?&gt; </span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Podemos perceber que a classe conta agora possui
um construtor, que inicializa a vari&aacute;vel <span class=\"mysql\">$saldo</span>
com o valor 0.</p>
<p align=\"JUSTIFY\">Um construtor pode conter argumentos, que s&atilde;o
opcionais, o que torna esta ferramenta mais poderosa. No exemplo
acima, o construtor da classe conta pode receber como argumento
um valor, que seria o valor inicial da conta.</p>
<p align=\"JUSTIFY\">Vale observar que para classes derivadas, o construtor
da classe pai n&atilde;o &eacute; automaticamente herdado quando
o construtor da classe derivada &eacute; chamado.</p>

Comentários:

Mostrando 1 - 10 de 19 comentários
Alguem descobriu onde baixar esse tutorial???
02/09/2008 8:57am (~12 anos atrás)

Como baixar o tutorial ?
24/05/2008 2:56pm (~12 anos atrás)

João Santos disse:
como baixo o tutorial?

obrigado
30/03/2008 8:16am (~12 anos atrás)

Estou procurando a dias esse arquivos PDF com as imagens, pois não estou encontrando o arquivo completo, quero imprimir isso.

Obriado.
28/06/2007 5:30am (~13 anos atrás)

Cyrus disse:
01/06/2006 5:22am (~14 anos atrás)


tentei no passado aprender por apostila,
mais livros ajudar muito ,em especial aquele que envolver o leitor num projeto.
esse tipo de trabalho ou livro são excelente ajuda : mais legal pela iniciativa
25/11/2005 10:32am (~15 anos atrás)

Legal colega - me ajudou muito !
28/09/2005 6:29pm (~15 anos atrás)

As imagens não estão aparecendo e tentei acessar o site do autor, mas também não funciona.
Alguém tem disponível para download?
24/06/2005 7:06pm (~15 anos atrás)

dizem q a primeira impreção é a q fica,
axei bastante intuitivo.
:)
24/04/2005 11:56pm (~15 anos atrás)

Galera, quem estiver afim de baixar o tutorial é só acessar o seguinte link
http://www.helo.tato.nom.br/arquivos/apostilaphp_mv.pdf

Té +
11/03/2005 7:31pm (~15 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)