Prévia do material em texto
PHP e MySQL que um atributo private possa ser alterado, é necessário que seja criado um método capaz de alterá-lo. Vamos declarar os atributos da classe automóvel como private: <?php class automovel{ //atributos declarados como private private $marca, $modelo, $ligado; ... } ?> Em nosso exemplo, o método que modifica os atributos $marca e $modelo é o próprio método construtor, enquanto que o método que modifica o estado do carro (ligado ou desligado) é o método estado. Repare que não há mais como alterar esses atributos sem que uma chamada a um desses métodos seja realizada. Modificador protected Este modificador é de um “nível intermediário”. Atributos ou métodos declarados como protected tornam-se públicos dentro da classe em que foram criados e das classes que herdam a classe em que eles foram criados. Fora de sua classe e suas herdeiras (veremos isso em Herança, logo adiante), atributos e métodos definidos como protected possuem a mesma restrição obtida com o modificador private. Herança Herança é uma forma de reutilizar uma classe. Classes podem herdar características de outras classes, passando a possuir todas as suas características (atributos e métodos). Uma classe herda características de outra classe com o uso da palavra reservada extends. Ex: Vamos criar a classe carroDeCorrida, que irá herdar as características da classe automóvel: class carroDeCorrida extends automovel{ ... } Pronto, agora temos uma nova classe carroDeCorrida, com os atributos $marca, $modelo e $ligado e os métodos ligar(), desligar() e estado(), sem que fosse necessário reescrever toda a classe. Qualquer modificação na classe automovel modifica também a calsse carroDeCorrida. Dizemos então que a classe automovel é a “classe pai” e a classe carroDeCorrida é a “classe filha”, pois herda as características da classe pai. Podemos agora criar novos atributos e métodos para a classe carroDeCorrida. Vamos criar o atributo pneu e o método trocaPneu para a classe carroDeCorrida: class carroDeCorrida{ private $pneu; function trocaPneu($tipoPneu){ $this->pneu = $tipoPneu; } } 83 PHP Orientado a Objetos Modificadores de Acesso Modificador protected Herança