NOME DURAÇÃO
Curso PHP
Abertura do Curso de PHP
Visão Geral do PHP
Ambiente de Desenvolvimento PHP
Servidor Web PHP
Como instalar o WAMP no Windows - Curso de PHP
Instalando PHPStorm no Windows
URL e Apache com PHP
Hello World em PHP
Executando Scripts PHP
TAG PHP
Montagem do HTML com PHP
Montagem do HTML com PHP II
Comentários em PHP
Definições da Linguagem PHP
Variáveis em PHP
Variáveis em PHP II
Nomenclatura de Variáveis em PHP
Operadores Aritméticos em PHP
Tipos de Dados do PHP
Módulo da Divisão em PHP
Tomada de Decisão em PHP
Tomada de Decisão - Estrutura else
Ambiente para Estudo PHP
Números Pares e Ímpares em PHP
A instrução elseif
Operadores Relacionais em PHP
Operadores Relacionais Parte II
Operadores Lógicos em PHP
Tela de Login e Senha com PHP
Introdução às Estruturas de Repetição em PHP
Instrução While em PHP
Introdução do-while em PHP
do-while - caso de uso com PHP
Script em Looping em PHP
Atribuição vs Comparação vs Identico em PHP
Operadores de Atribuição Compostos em PHP
Operadores de Incremento e Decremento em PHP
Estrutura de Repetição for do PHP
Estrutura de Repetição for do PHP (parte II)
Tabuada em PHP
Instrução break em PHP
Instrução continue em PHP
Operação Ternária em PHP
Operação Ternária em PHP (parte II)
Estrutura de Seleção Múltipla switch em PHP
Estrutura de Seleção Múltipla switch em PHP (parte II)
Precedência e Associatividade de Operadores em PHP
Constantes em PHP
Variáveis Variáveis em PHP
Introdução aos Arrays em PHP
Arrays Indexados em PHP
Definindo, Incluindo, Alterando e Excluindo elementos em PHP
Função range() em PHP
Iterando Arrays em PHP
Estrutura foreach em PHP
O foreach em PHP - Como usar?
Estrutura foreach - alterando valores internos
Arrays Associativos em PHP
Arrays Multidimensionais em PHP
Manipulação de Arrays em PHP
Introdução às Funções em PHP
Definindo parâmetros em PHP
Parâmetros default com PHP
Lista de Parâmetros em PHP
Lista de Parâmetros em PHP II
Funções variádicas em PHP
Retorno de Valores pela função em PHP
Funções e Escopo de Variáveis em PHP
Parâmetros por Referência em PHP
Parâmetros por Referência em PHP II
Parâmetros Tipados em PHP
Valores de retornos de funções tipados em PHP
Null Coalescing Operator em PHP
Operador SpaceShift em PHP
Importação: include() e require() do PHP
Introdução às Funções Anônimas em PHP
Escopo de nomes das funções anônimas em PHP
Funções Anônimas na Prática com PHP
Funções Anônimas e Arrays com PHP
Introdução às Strings em PHP
Aspas Duplas vs Aspas Simples em PHP
String Aspas Duplas em PHP
String heredoc e nowdoc em PHP
Funções para Manipulação de Strings em PHP
Introdução às Requisições Web em PHP
Método GET em PHP
Formulários HTML e PHP
Método POST com PHP
Variáveis superglobais do PHP
A Orientação a Objetos em PHP
Primeira Classe em PHP
Membros de Classe em PHP
Criação de Objetos em PHP
Acessando Membros de Classe em PHP
Implementando Comportamentos de Classe com PHP
Pseudo-variável $this em PHP
Gerenciando Atributos de Classe em PHP
Construtores em PHP
Construtores Personalizados em PHP
Destrutores em PHP
Encapsulamento em PHP
Encapsulamento em PHP (parte II)
Herança em PHP
Herança com PHP II
Modificadores de Acesso em PHP
Visibilidade das Funções em PHP
Funções Modificadoras em PHP
Sobrescrita de Funções em PHP

Nesta aula estudaremos a definição e uso dos modificadores de acesso aos membros de classe. Em seguida, estudaremos a aplicação dos modificadores ao realizarmos um exemplo prático demonstrando assim, os conceitos teóricos dos modificadores de acesso junto a um exemplo prático.

INTRODUÇÃO AOS MODIFICADORES DE ACESSO

Os membros de classe podem ter o seu nível de acesso alterado, ou seja, podemos definir que um membro de classe seja público, enquanto outro, tenha seu uso restrito a classe em que este foi declarado. Também é possível definir que um determinado membro esteja disponível somente dentro das classes derivadas.

É comum nós falarmos que os modificadores de acesso alteram a visibilidade dos membros de classe, até porque, cada modificador define o nível de visibilidade e assim, temos membros visíveis em diferentes partes de um código.

Cada membro de classe, implicitamente, possuirá um nível de acessibilidade que determinará onde o este poderá ser acessado.

O conceito de restringir o acesso aos membros de classe está diretamente relacionado ao conceito de encapsulamento e abstração de dados, até porque, é dessa forma que restringiremos a visibilidade dos membros de uso interno da classe e também, será assim que disponibilizaremos uma interface de acesso.

O CONCEITO DE INTERFACE PÚBLICA

Uma interface pública, nada tem a ver com a parte gráfica de uma aplicação. Este conceito está relacionado com a orientação a objetos e significa o conjunto de funções e atributos que estão definidos como sendo de utilização público, ou seja, estes podem ser utilizados por qualquer instância ou então, pelas subclasses.

Todo objeto irá possuir uma interface pública para que possamos interagir com o mesmo. Para a definição da interface pública, é recomendado o uso restritivo, isto é, sempre atribuir o maior grau de restrição possível a cada membro de classe. Isso faz com que tenhamos menos trabalho para testarmos cada estrutura, diminui a incompatibilidade entre futuras versões, garante coesão, abstração e encapsulamento da informação.

A linguagem PHP, disponibiliza 3 modificadores de acesso:

public (omissão) - o modificador que garante a visibilidade em qualquer lugar do nosso código protected - restringe o acesso às classes derivadas private. - restring o acesso a classe em que esta contido

OS CONCEITOS DE VISIBILIDADE DE MEMBROS

A utilização dos modificadores de acesso é bastante simples, porém, há várias situações onde podemos nos confundir, e é por essa razão, que qualquer prova de orientação a objetos, tenha no mínimo uma questão sobre modificadores de acesso e por vezes, a questão é uma pegadinha.

A maneira mais fácil, e na minha concepção, a mais lógica, é pensar da seguinte maneira:

O que é público é de todos, então, uma membro público poderá ser acessado de qualquer lugar do nosso código, seja através de uma instância de classe, ou então, dentro de uma classe derivada.

O que é privado, por outro lado, é de uso exclusivo e por isso, ninguém deve ter acesso. Por isso, temos que membros privados só poderão ser acessados dentro da classe onde estes foram declarados.

Por fim temos o nível de acesso protegido. O que é protegido pode ser acessado, porém, com algumas ressalvas e devemos seguir algumas regras. Então, um membro protegido pode ser acessado, mas com uma condição: dentro das classes derivadas.

Então, quando um programador define um membro como protegido, o que ele está dizendo, é que as subclasses, isto é, todas as classes herdeiras, podem acessar o membro diretamente. Porém, as instâncias terão o acesso restringido. Dai vem o nome protegido, ou seja, somente quem pode acessar é o pai e seus filhos, no caso, o membro protegido está restrito a família em que este foi definido.

EXEMPLO FEITO EM AULA

# MODIFICADORES DE ACESSO I - public e private

class SuperClasse{
    public $publico = 0;
    private $privada = 0;
    protected $protegido = 0;
    public function super(){
        echo $this->publico;
        echo $this->privada;
        echo $this->protegido;
    }
}

class SubClasse extends SuperClasse{
    public $publico;
    private $privada;
    protected $protegido;
    public function sub(int $x){
        $this->publico = $x;
        $this->privada = $x;
        $this->protegido = $x;
    }
}

$sub = new SubClasse();
$sub->sub(1);
$sub->super();


Tags curso, php, programação orientada a objetos, poo, modificadores, modificador de acesso, classe, objeto, instância

Comentários

comments powered by Disqus