Criar Web, manuais e recursos para desenvolvimento web
Manuais
Programas
FAQS
Diretório
Comunidade
  Inicio > Manuais > Manual de PHP 5
SEÇÕES
Manuais relacionados
+Manual de PHP 5
Categorias
+PHP

Índice do Manual Manual de PHP 5
+ Introdução a PHP 5
+ Instalação de PHP5 com WAMP5
+ Modelo de orientação a objetos de PHP 3 e 4
+ Modelo de orientação a objetos em PHP 5
+ Classes em PHP 5
+ Construtores em PHP 5
+ Destrutores em PHP 5
+ Modificadores de acesso a métodos e propriedades em PHP
+ A herança em PHP5
+ A herança em PHP 5 – Segunda Parte

Descrição dos capítulos

Parceiros
- CSS para Web Design
- S.O.S Designers
- Slackware-Brasil
- Crie seu Web site
- Oficina da Net


Modificadores de acesso a métodos e propriedades em PHP

São os Public, Protected e Private, que se podem conhecer porque já se utilizam e outras linguagens orientados a objetos.


Veremos neste capítulo os novos modificadores de acesso aos métodos e atributos dos objetos que foram incorporados em PHP 5. Estes modificadores de acesso são os conhecidos public, protected e private, que já dispõem de outras linguagens como Java.

Um dos princípios da programação orientada a objetos é o encapsulamento, que é um processo no qual se ocultam as características internas de um objeto àqueles elementos que não têm porque conhece-las. Os modificadores de acesso servem para indicar as permissões que terão outros objetos para acessar a seus métodos e propriedades.

Modificador public

É o nível de acesso mais permissivo. Serve para indicar que o método ou atributo da classe é público. Neste caso pode-se acessar a este atributo, para visualizá-lo ou edita-lo, por qualquer outro elemento de nosso programa. É o modificador que se aplica se não se indica outra coisa.

Vejamos um exemplo de classe onde declaramos como public seus elementos, um método e uma propriedade. Trata-se da classe "dado", que tem um atributo com sua pontuação e um método para tirar o dado o obter uma nova pontuação aleatória.

class dado{
    public $pontos;

    function __construct(){
       srand((double)microtime()*1000000);
    }

    public function tirar(){
       $this->pontos=$randval = rand(1,6);
    }
}

$meu_dado = new dado();

for ($i=0;$i<30;$i++){
    $meu_dado->tirar();
    "<br>Saiu " . $meu_dado->pontos . " pontos";
}


Vemos a declaração da classe dado, e logo umas linhas de código para ilustrar seu funcionamento. No exemplo se realiza um loop 30 vezes, nas quais se tira o dado e se mostra a pontuação que se obteve.

Como o atributo $pontos e o método tirar() são públicos, podemos acessá-los de fora do objeto, ou que é o mesmo, de fora do código da classe.

Modificador private

É o nível de acesso mais restritivo. Serve para indicar que essa variável somente vai poder ser acessada pelo próprio objeto, nunca de fora. Se tentarmos acessar um método ou atributo declarado private de fora do próprio objeto, obteremos uma mensagem de erro indicando que não é possível a este elemento.

Se no exemplo anterior tivéssemos declarado private o método e a propriedade da classe dado, teríamos recebido uma mensagem de erro.

Aqui temos outra possível implementação da classe dado, declarando como private o atributo pontos e o método tirar().

class dado{
    private $pontos;

    function __construct(){
       srand((double)microtime()*1000000);
    }

    private function tirar(){
       $this->pontos=$randval = rand(1,6);
    }

    public function dar_nova_pontuacao(){
       $this->tirar();
       return $this->pontos;
    }
}

$meu_dado = new dado();

for ($i=0;$i<30;$i++){
    "<br>Han salido " . $meu_dado->dar_nova_pontuacao() . " pontos";
}


Tivemos que criar um novo método público para operar com o dado, porque se é tudo privado não há forma de fazer uso dele. O mencionado método é dar_nova_pontuacao(), que realiza a ação de tirar o dado e devolver o valor que saiu.

Modificador protected

Este indica nível de acesso médio e um pouco mais especial que os anteriores. Serve para que o método ou o atributo seja público dentro do código da própria classe e de qualquer classe que herde daquela onde está o método ou propriedade protected. É privado e não acessível de qualquer outra parte. Ou seja, um elemento protected é público dentro da própria classe e em suas heranças.

Mais adiante explicaremos a herança e poderemos oferecer exemplos com o modificador protected.

Conclusão

Muitas vezes o próprio desenvolvedor é o que fixa seu critério na hora de aplicar os distintos modificadores de acesso a atributos e métodos. Pouca proteção implica que os objetos percam seu encapsulamento e com isso, uma das vantagens da POO. Uma proteção maior pode tornar mais trabalhoso gerar o código do programa, mas em geral, é aconselhável.

Autoria e outras referências sobre este artigo

Manuais relacionados com este artigo
Dentro de Manual de PHP 5

Categorias relacionadas
Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo:
+ Entrar em PHP


Comentário sem rever
Entre os comentários não revistos podem ter alguns interessantes que tenham sido enviado recentemente.
 Foi encontrado um comentário sem rever

VerVer os comentários não revistos



Sobre nós | Copyright | Anuncie | Entrar em contato <criarweb>

Hospedado por Hostnet Hospedagem de Sites