Você está na página 1de 2

O que é programação orientada a objetos (OOP)?

A programação orientada a objetos (OOP) é um paradigma de programação com


objetos e classes. Objetos geralmente são instâncias de classes que possuem
métodos (funções definidas dentro de uma classe) e propriedades (variáveis definidas
na classe como descrições dessa classe).

PHP sempre foi uma linguagem de programação orientada a objetos. O PHP 5


introduziu um modelo de objeto completo. À medida que novas versões surgiram ao
longo do tempo, o PHP chegou ao ponto de ser quase uma linguagem totalmente
orientada a objetos. Muitos ainda consideram os recursos orientados a objetos PHP
como não totalmente orientados a objetos, mas também é uma questão de perspectiva
e estilo de codificação.

Muitos desenvolvedores não acham o conceito do paradigma orientado a objetos útil,


porque parece assustador, ou porque ainda não entendem os benefícios práticos dele,
mas para scripts mais avançados, OOP é parte essencial do desenvolvimento PHP.

Conceitos orientados a objetos


Antes de entrarmos em detalhes, vamos definir alguns termos importantes de POO.

Classe (Class): Este é um tipo de dados definido pelo programador, que inclui
funções locais e dados locais. Você pode pensar em uma classe como um modelo
para fazer muitas instâncias do mesmo tipo (ou classe) de objeto.
Objeto (Object): Uma instância individual da estrutura de dados definida por uma
classe. Você define uma classe uma vez e então cria muitos objetos que pertencem a
ela. Objetos também são conhecidos como instâncias.
Variável membro (Member variable): Estas são as variáveis definidas dentro de uma
classe. Esses dados serão invisíveis para fora da classe e podem ser acessados por
meio de funções-membro. Essas variáveis são chamadas de atributos do objeto uma
vez que ele é criado.
Função membro (Member function): Estas são as funções definidas dentro de uma
classe e são usadas para acessar os dados do objeto.
Herança (Inheritance): Quando uma classe é definida pela herança de uma função
existente de uma classe pai, ela é chamada de herança. Aqui, uma classe filha herda
algumas ou todas as funções-membro e variáveis de sua classe pai.
Classe pai (Parent class): uma classe que é herdada por outra classe, também
chamada de classe base ou superclasse.
Classe filha (Child class): Uma classe herda de outra classe (a classe pai), também
chamada de subclasse ou classe derivada.
Polimorfismo (Polymorphism): Este é um conceito orientado a objetos onde a
mesma função pode ser usada para diferentes propósitos. Por exemplo, o nome de
uma função permanece o mesmo, mas recebe um número diferente de argumentos e
executa uma tarefa diferente.
Sobrecarga (Overloading): Um tipo de polimorfismo em que alguns ou todos os
operadores têm implementações diferentes dependendo dos tipos de seus
argumentos. Da mesma forma, as funções também podem ser sobrecarregadas com
diferentes implementações.
Abstração de dados (Data abstraction): Qualquer representação de dados na qual
os detalhes da implementação estejam ocultos (abstraídos).
Encapsulamento (Encapsulation): Refere-se a um conceito pelo qual os dados são
encapsulados junto com funções-membro para formar um objeto.
Construtor (Constructor): Refere-se a um tipo especial de função a ser chamada
automaticamente sempre que um objeto é formado a partir de uma classe.
Destruidor (Destructor): Refere-se a um tipo especial de função a ser chamada
automaticamente sempre que um objeto é excluído ou sai do escopo.

Você também pode gostar