Precisa de um freelancer, códigos-fonte e exemplos completos?
Bem-vindo(a) ao meu site. Além de realizar alguns serviços como freelancer eu tenho alguns códigos-fonte e exemplos completos de Java, Delphi, PHP, Python, C/C++, Hibernate, JPA, Spring, JSP, Servlets, Ruby, Ruby On Rails e muitas outras linguagens e frameworks. Veja como falar comigo clicando aqui.
 
Arquivo de Códigos - Página Inicial
Códigos-fonte
» Códigos-fonte e exemplos completos
Linguagens
» ActionScript
» Adobe AIR
» Adobe Flex
» AJAX
» C
» C#
» C++
» CSS
» Delphi
» DHTML - Dynamic HTML
» HTML/XHTML
» Java
» JavaFX
» JavaScript
» Java Servlets
» JSP - Java Server Pages
» Perl
» PHP
» PHP-GTK
» Python
» Ruby
» Tcl/Tk
» VB.NET
Bancos de Dados
» IBM DB2
» MySQL
Frameworks
» CodeIgniter
» jQuery
» JSF - Java Server Faces
» Qt
» Ruby On Rails
» Struts
» Struts 2
» wxWidgets
» Zend Framework
Container/Servidor
» Apache Tomcat
» Apache Web Server
Ferramentas
» Apache Ant
» iTextSharp (iText#)
Referências
» CSS1 e CSS2
» JavaScript
Serviços On-Line
» Qual é meu IP?
» Tabela Cores HTML I
» Tabela Cores HTML II
» Lista de Mime Types
» Códigos Teclas Virtuais
Usuários On-Line
Visitantes: 59
PHP
O que há de novo no PHP 5?
40 dicas e truques sobre como trabalhar com datas e horas em PHP
60 dicas e truques sobre como trabalhar com strings e caracteres em PHP
PHP e a Orientação a Objetos - POO (Curso Completo)

DHTML
Curso completo de DHTML para iniciantes

CSS
Como definir uma imagem de fundo fixa na página
Definindo uma imagem de fundo para botões HTML
Você está aqui: Inicio -> Tutoriais -> PHP - Controlando a visibilidade de propriedades e métodos de uma classe
Controlando a visibilidade de propriedades e métodos de uma classe
O PHP 5 introduziu o conceito de visibilidade das propriedades e métodos de uma classe. Este é o conceito do encapsulamento de dados, ou seja, você tem classes robustas e bem testadas que fornecem acesso às suas funcionalidades somente através de alguns métodos públicos.

Imagine uma classe Impressora capaz de imprimir todos os tipos de documentos possíveis. É claro que esta classe terá uma certa quantidade de propriedades e métodos. Porém, o usuário da classe poderia ter acesso a apenas alguns métodos públicos, tais como imprimir(), definirTipo(), etc. As propriedades e métodos que interessam somente ao funcionamento interno da classe podem ser ocultos do mundo externo.



Veja a seguinte definição de classe:

class Pessoa{
  public $nome;

  public function andar(){
    echo "Executando o método andar()";
  }
}


Aqui tanto as propriedades e métodos são de acesso public e podem ser acessados e manipulados por qualquer trecho de código que esteja usando um objeto da classe. Experimente agora usar o modificador private. Este modificador marca um recurso para que este seja acessível somente à classe a qual ele pertence. Veja:

// definição da classe Pessoa
class Pessoa{
  private $nome;

  public function andar(){
    echo "Executando o método andar()";
  }
}


Veja o que acontece quando tentamos executar o trecho de código abaixo:

// cria uma instância chamada $cliente
$cliente = new Pessoa();

// altera a propriedade nome do objeto
$cliente->nome = "Geraldo Gomes da Silva";


O resultado exibido pelo browser será:

Fatal error: Cannot access private property Pessoa::$nome in c:\estudos\teste.php on line 10

Isso nos mostra que, de fato, recursos marcados como private são acessíveis somente à classe. Desta forma, tais recursos podem ser acessados usando métodos public. Veja:

<?
// definição da classe Pessoa
class Pessoa{
  private $nome;

  public function getNome(){
    return $this->nome;
  }

  public function setNome($nome){
    $this->nome = $nome;
  }
}

// cria uma instância chamada $cliente
$cliente = new Pessoa();

// altera a propriedade nome do objeto
$cliente->setNome("Geraldo Gomes da Silva");

// exibe o nome do cliente
echo $cliente->getNome();
?>


Veja que agora o nome do cliente é definido a partir do método public setNome:

public function setNome($nome){
  $this->nome = $nome;
}


O identificador $this é usado para acessar recursos locais da classe. Os prefixos "set" e "get" são muito usados para definir métodos que acessam ou alteram dados privados de uma classe. Veja o método que obtém o nome:

public function getNome(){
  return $this->nome;
}


Veja como usamos $this novamente para acessar a propriedade nome e devolvê-la na saída do método.

O modificador protected é um pouco mais elaborado. Este modificador permite o acesso a propriedades e métodos somente à classe a qual eles pertencem e a outras classes filhas desta (através do recurso de herança). Adie o estudo deste modificador até o momento em que estiver confiante em relação à herança.

Por padrão, ou seja, quando omitimos os modificadores, a visibilidade de propriedades
e métodos são public. No entanto, é necessário inserir a palavra-chave var antes
das propriedades da classe. Assim:

var $nome;
var $idade;


Para funções isso não é necessário.

1 - PHP e a programação orientada a objetos
2 - Entendendo classes e objetos
3 - Criando sua primeira classe em PHP
4 - Controlando a visibilidade de propriedades e métodos de uma classe
5 - Usando construtores e destrutores
6 - Fornecendo parâmetros de inicialização às suas classes
7 - Usando propriedades estáticas
8 - Usando métodos estáticos
9 - Como usar constantes como membros de classes
10 - Atribuição de objetos de uma mesma classe
11 - Aprenda a clonar objetos de uma mesma classe
12 - Herança
13 - Herança, construtores e a palavra-chave parent
 
 
Arquivo de Códigos - Página Inicial
Veja dicas, truques e anotações de JSF - Java Server Faces
Como usar a tag <f:validateLength> para definir a quantidade mínima e máxima de caracteres permitidos em um campo
Aprenda a formatar e converter datas e horas em JSF usando a tag <f:convertDateTime>
Criando uma caixa de seleção usando a tag <h:selectBooleanCheckbox>
Aprenda a formatar e converter datas e horas em JSF usando a tag <f:convertDateTime>
Como criar formulários em aplicações JSF usando a tag <h.form>
O que é o arquivo faces-config.xml e qual sua utilidade?
Aprenda a validar campos obrigatórios usando o atributo required e a tag message
Como definir o fuso horário para a tag <f:convertDateTime>
Criando caixas de texto de linha única usando a tag <h:inputText>
Como definir a quantidade mínima e máxima de caracteres para um determinado campo usando a tag <f:validateLength>
Veja dicas, truques e anotações de outras linguagens
C# (CSharp) - Saiba mais sobre o funcionamento de um DataReader
Java - Exibindo ou ocultando um JButton
C# (CSharp) - Usando goto em C#
Java - Como tratar a exceção StringIndexOutOfBoundsException
Java - Uso do método getPath para obter o caminho absoluto de um arquivo
Java - Entendendo o laço while da linguagem Java
Java - Como extender a classe KeyAdapter usando uma classe anônima
Java - Como construir uma data
PHP - Como copiar arquivos usando PHP
Ruby On Rails - Como obter a versão do Rails que você tem instalada em seu sistema

       

http://www.arquivodecodigos.net
:: Arquivo de Códigos - Softwares e Consultoria em Programação ::
Todo o conteúdo deste site, quando não devidamente observado, pertence a seus idealizadores e não
poderá ser usado para outras finalidades senão estudo e aprimoramento de técnicas de programação.
Certifique-se de ler as notas legais antes de proceder com o acesso e leitura do
conteúdo disponibilizado nestas páginas.

Fale Conosco: (62) 3261-7018 / (62) 8185-0734

Desenvolvedor Responsável: Osmar J. Silva

Página Inicial Contatos Pesquisar Mapa do Site