Mostrando postagens com marcador POO. Mostrar todas as postagens
Mostrando postagens com marcador POO. Mostrar todas as postagens

Orientação a Objetos em PHP - Parte 03

Salve amigos(as) do blog,

Continuando o assunto do post anterior...


Abstract class

Classes abstratas são classes de padronização e que não podem ser instanciadas. Você pode tocar um carro, mas não pode tocar um veículo.

Observe o mecanismo de abstração de conceitos no PHP:

Lembrando que somente classes abstratas podem conter métodos abstratos. Elas podem, também, conter aributos e métodos não abstratos.

Interfaces

Ligada a abstração a Interface é um recurso similar a classe abstrata, mas uma das diferenças é que uma classe pode implementar mais de uma interface. A implementação é feita através da keyword implements, idêntico ao Java.

Diferente de classes abstratas, não é possível incluir atributos e nem implementar métodos em interfaces. Não é necessário e nem deve ser usado o operador abstract na assinatura dos métodos da interface, pois, já é implícito que os métodos de uma interface são abstratos.

Polimorfismo

O que o Cachorro, o Homem e o Zumbi tem em comum? Parece estranho, mas não é. Todos se movimentam. Observe um exemplo em PHP:


Chegamos ao fim desse Tutorial Arroz & Feijão. Como foi dito no primeiro post, o objetivo era mostrar um pouco de como funciona a Orientação a Objetos na linguagem PHP.

Até o próximo assunto.

Orientação a Objetos em PHP - Parte 02

Bem-vindo(a),
Continuando o post anterior...

 


Herança

Recurso muito interessante da orientação a objetos é o de herança, com ela temos um enorme reaproveimento de códigos. Como na maioria das linguagens, qualquer classe herda direta ou indiretamente de Object, no PHP não é diferente. Além disso, obviamente só é possivel herdar membros não privados.

Veja um exemplo de herança:


Vamos, agora, invocar pessoa e funcionário:


Imagine ter que repetir na classe Funcionario, além de seu próprio código, todo o código de Pessoa... é, por isso existe a linda herança.

Sobrescrita de métodos

Métodos herdados podem ser sobrescritos e substituem para a classe em questão os métodos da superclasse.


Para impedir a sobrescrita basta utilizar o operador final na assinatura do método, assim as subclasses irão herdar o método, porém não poderão sobrescrevê-lo.

Elementos estáticos


Em PHP não existe classe estática, diferente de C#, se você quiser que a classe não seja instanciada, basta utilizar um construtor privado. Quando se diz classe estática, na verdade os seus membros são estáticos, e não a classe em si.

Exemplo:


Interessante, não é?
No próximo post falaremos de Abstração, Polimorfismo e Interfaces... ah, tudo em PHP.

Orientação a Objetos em PHP - Parte 01

Hello World!

Hoje falarei de um assunto que sou apaixonado, todavia será abordado em PHP, uma linguagem que comecei a estudar recentemente.



Orientação a Objetos é um paradigma que resolve os problemas recorrentes da programação procedural. Destaca-se por:

  • Centralização de códigos;
  • Encapsular a lógica de negócio;
  • Melhorar a organização dos projetos;
  • Concentrar responsabilidades nos locais certos.


Esse post não é para falar o que é, ou ensinar a POO (Programação Orientada a Objetos), e sim, mostrar como esse paradigma fascinante funciona na Linguagem PHP.

Observe como é uma classe em PHP:


Métodos

As principais diferenças que se pode notar de PHP para Java, por exemplo, é que os métodos não tem tipos de retorno, tais como: void, Integer, Double, pois o PHP não é uma linguagem fortemente tipada.

Ela segue um estilo de tipagem dinâmica, onde uma variável pode assumir diferentes tipos no decorrer da execução do script, muito parecida com o Javascript.

Destaque, também, para o construtor que segue uma formatação diferente de Java ou C#.

Operador de acesso

Outro aspecto notável é a maneira como acessamos os membros de um objeto em PHP, veja:


Geralmente é usado o operador . (ponto) para acessar os membros de objetos em outras linguagens, mas aqui, usa-se a -> (seta) para obter esse resultado.



Até o próximo post, onde serão abordados conceitos de herança, elementos estáticos, abstração, polimorfismo e interfaces, tudo em PHP.