Pplware

Programação Web – #7: Extensão de classes

Depois de abordar as classes, objectos, propriedades e métodos no tutorial anterior, vamos hoje dar continuidade à OOP, com a extensão de classes, visibilidade e encadeamento.

Como anteriormente, gostaríamos de recordar que não é possível formar um programador numa questão de vários tutoriais. Estes servem para boa orientação e início de uma busca por parte do leitor. Servirão de base a quem se quer iniciar, não esquecendo que esta rubrica tem como objectivo a introdução da framework Laravel.

Extensão de Classes

Uma classe pode definir uma estrutura e ser estendida, de forma a servir de base a uma nova estrutura. Nesta, poderemos utilizar as propriedades e métodos da estrutura de base, ou sobrepô-las (override). Usaremos para isto a keywords extends.

Aproveitando o exemplo das Viaturas, em que fizemos objectos $ligeiro e $jeep, ambos os objectos do tipo Viatura, podemos nesta altura aprofundar. Assim, iremos estender a classe de Viatura, e fazer duas novas classes, respectivamente, para um Ligeiro e para um Jipe.

 

Classes Abstractas

São classes que não podem ser instanciadas. São decisões ao nível do projecto. Coloca-se o caso, no nosso exemplo, de não querer no projecto que se declarem viaturas sem que estejam perfeitamente definidas. Assim, a classe Viatura seria abstracta, podendo apenas ser estendida e não instanciada.

No bloco de código abaixo, exemplificamos os pontos anteriores.

todoTerreno //  false

echo $hummer->todoTerreno;  // true

?>

 

Visibilidade OOP

As propriedades e métodos de uma classe têm parâmetros de visibilidade. Como vimos no screencast anterior, declarámos sempre a keyword public.

Na verdade, poderemos utilizar:

  No screencast, vamos validar estes pontos.

 

Métodos encadeados

Existe uma possibilidade de facilitar o trabalho com um objecto em que este se preveja ser manipulado consecutivamente. Iremos ver hoje como atingir algo semelhante ao bloco de código abaixo.

seguirEmFrente(100)
        ->virarDireita(40)
        ->virarEsquerda(10)
        ->parar();
?>

 

Tópicos para hoje:

 

Roadmap para os próximos vídeos (dinâmico a cada tutorial):

 

Ficheiros de Suporte

Aqui ficam os ficheiros do projeto ao artigo de hoje, convenientemente preparados para serem explorados por vós.

Ficheiros de suporte #7

 

Screencast

Se não conseguir ver o vídeo, clique aqui.

 

Por João Patrício para Pplware.com
Exit mobile version