Publicidade   
 você está aqui: phpbrasil.com    artigos    artigo  
 
:: novos artigos ::

:: recomendado ::

Faça um Site: PHP 4 com Base de Dados MySQL: Orientado por Projetos

Compre esse livro no Submarino.com.br

:: publicidade ::


:: novos scripts ::

:: elenco phpbrasil ::

Ronaldo Menezes
Pontos: 3150

Visite a página de perfil de John MarquesClasses e Objetos (PHP5) - Visibilidade, Construtores e Destrutores
por John Marques
Lista de Categorias  |  Contribua um Novo Artigo  |  Entre em Contato Conosco

Neste artigo ensino o que é e como funciona a visibilidade, os construtores e destrutores dentro de promação orientada à objetos no PHP5.
Vote aqui!
Média de Votos Atual: 7.38
Total de Votos: 8
Nota:   

Então tá agora que sabemos dos conceitos vamos para o código.


<?php
class operacoes
{
    
// Membros
    // aqui declaramos os tipos dos membros
    
public $v1;
    
public $v2;
    
protected $res;
    
    
/*
    Construtor:
    Nele setamos os valores dos membros de $v1 e $v2 
    */
    
function __construct()
    {
        
$this->setV1(10);
        
$this->setV2(3);
    }
    
    
//Destrutor
    
function __destruct()
    {
        echo 
"eu sou um destrutor";
    }
    
    
//Um método
    
public function soma()
    {
        return 
$this->res $this->v1 $this->v2;
    }
    
    
/*
    Observe que na função subtração eu não uso a palavra-chave 
    public, pois o PHP5 entende que qualquer método que não 
    seja setado sua visibilidade terá como visão total ou seja 
    será "public", então tanto faz colocarmos public ou não 
    colocar nada na frente de um método que vai dar na mesma, 
    ja no caso do protected e private é necessário que seja setado.
    */
    
function subtracao()
    {
        return 
$this->res $this->v1 $this->v2;
    }
    
    
protected function multiplicacao()
    {
        return 
$this->res $this->v1 $this->v2;
    }
    
    
protected function divisao()
    {
        return 
$this->res $this->v1 $this->v2;
    }
    
    
// Privamos o método para o uso somente da classe operacoes.
    
private function modulo()
    {
        return 
$this->res $this->v1 $this->v2;
    }
    
    
public function ret_modulo()
    {
        return 
$this->modulo();
    }
    
    
public function setV1($valor)
    {
        
$this->v1 $valor;
    }
    
    
public function setV2($valor)
    {
        
$this->v2 $valor;
    }
    
    
public function getV1()
    {
        return 
$this->v1;
    }
    
    
public function getV2()
    {
        return 
$this->v2;
    }
}
?>


Crie duas classes para explicar a visibilidade dos métodos pois se fosse somente explicado a visiblidade dos membros, era necessário somente a classe operacoes.


<?php
class exec_op extends operacoes
{
    
//determino o membro como privado
    
private $r;
    
    function 
__construct()
    {
        
//o comando abaixo determina que o construtor da classe
        //pai deve ser usado
        
parent::__construct();
    }
    
    function 
__destruct()
    {
        
//Da mesma forma que no construtor desta classe..
        //o destrutor do pai deve ser usado
        
parent::__destruct();
    }
    
    
public function print_soma($v1 ""$v2 "")
    {
        if (
$v1 != "") {
            
$this->setV1($v1);
        }
        
        if (
$v2 != "") {
            
$this->setV2($v2);
        }
        
        
$this->$this->soma();
        
$this->imp();
    }
    
    
public function print_modulo($v1 ""$v2 "")
    {
        if (
$v1 != "") {
            
$this->setV1($v1);
        }
        
        if (
$v2 != "") {
            
$this->setV2($v2);
        }
        
        
$this->$this->ret_modulo();
        
$this->imp();
    }
    
    
public function imp()
    {
        echo 
$this->r."<br>";
    }
}

$exec = new exec_op();

// Retornará 13
$exec->print_soma();

//Retornará 1
$exec->print_modulo();

// Gera um erro "Fatal error: Call to private method 
// operacoes::modulo() from context '' in operacoes.php on line xx"
echo $exec->modulo();

// Gera um erro "Fatal error: Call to protected method
// operacoes::divisao() from context '' in operacoes.class.php on line xx"
echo $exec->divisao();

// Retornará 7
echo $exec->subtracao();

// Gera um erro "Fatal error: Call to protected method 
// operacoes::multiplicacao() from context '' in operacoes.class.php on line 122
echo $exec->multiplicacao();
?>


Galera muito obrigado. Tomara que eu tenha ajudado, eu acredito que este artigo serve para ajudar aqueles que estão iniciando em OOP no PHP5.

Abraço a todos,
John Marques




<< Anterior 1 2 3 Próxima >>

 
Imprimir  |  Enviar para um Amigo


Comentários de Usuários

Legal
publicado por Hunter - 2007-08-19 19:29:42

Método de explicar bem simples e fácil de aprender. Valeu.

Re: Legal
publicado por John Marques - 2007-08-23 06:47:32

Q bom q gostou Hunter..
estou preparando o próximo artigo.. para dar continuidade.. nas Classes e Objetos..

valeu

Show
publicado por Fernando Lopes - 2007-09-04 09:38:26

Rapaiz, como eu gosto de OO devo te dar os parabéns pelo artigo, didático e bom.

Muito bom...
publicado por Iuri Neumann - 2007-09-20 19:14:17

Legal seu artigo... to esperando continuaçoes... :)
to me adaptando para trabalhar com classes agora, e to aprendendo ainda, quanto a manipulaçoes e tal... muito bons esses artigos exemplificando... vlw

Publique os seus Comentários

Nome:
Email:
Título:
Comentário:

NOTA: Cadastre-se no site para poder publicar comentários.

 
webmaster: João Prado Maia   © 2000 - 2005 phpbrasil.com
Gerado em 1.353 segundos