GainTime
POO

Programação Orientada a Objetos

Isto é um exemplo de página web desenvolvida com GainTime

Oxe, lá ele. O que é isso?

Programação Orientada a Objetos ou, abreviadamente, POO, é um paradigma de programação de computadores onde se usam classes e objetos, criados a partir de modelos, para representar e processar dados usando programas de computadores.

A POO é baseada em 4 pilares fundamentais: Abstração, Encapsulamento, Herança e Polimorfismo.

Êta diaxo... falou grego!

Óh, modelos são representações simplificadas de objetos, pessoas, items, tarefas, processos, conceitos, ideias, etc. São utilizados comumente por pessoas, independente da programação de computadores.

Um exemplo de modelo poderia ser um daqueles papeizinhos onde o garçom anota seu pedido.

E essa tal de Classe aí?

Meu filho...

Bom, podemos entender Classe como a representação dos modelos que criamos no nosso dia-a-dia.

Ela é uma estrutura que abstrai um conjunto de objetos com características similares. Uma classe define o comportamento de seus objetos através de métodos, e os estados possíveis destes objetos através de atributos.

Para entender o que é atributo e o que é método, imagine que você quisesse abstrair um carro. Todo carro tem cor, modelo, marca, tipo de combustível, tipo ou tamanho das rodas, potência, velocidade máxima, velocidade atual, enfim... esses são os nossos atributos para uma classe carro. Os métodos são as funções que podemos atribuir a cada carro. Sei lá, podemos acelerar um carro, freiar, alterar a cor, alterar as rodas, etc.

SIM, e objeto... ??

Vey, os objetos são cada "carro" que você criar baseado no modelo que a classe "carro" representa. O objeto ou instância é a materialização da classe. Ex: Carro azul, 2006, Ford, a gasolina, rodas aro 22, 533cv, 600 km/h, a 150 km/h.

Agora vem cá, por quê utilizar POO?

Aaah, êis a questão!

Basicamente, você vai querer utilizar POO em aplicações onde seja necessário representar conjuntos de dados dependentes ou interligados entre si (ex: datas, registros de alunos, contas bancárias, etc). Similarmente, qualquer aplicação onde seja necessário empregar um conjunto de rotinas específicas a um conjunto de dados.

Algumas vantagens de programar com orientação a objetos:

  • Facilidade em modularizar e reutilizar o código (menos tempo de desenvolvimento, menos linhas de código);
  • Aproximação do sistema criado ao que é observado no mundo real;
  • Facilidade em realizar leitura e manutenção de código;

Bom... Até aqui, temos os conceitos relacionados ao primeiro pilar (Abstração)!

Quero escrever em PHP... E aí?

Então... Os conceitos fundamentais já foram apresentados, e a sintaxe mais básica, extraída de um aquivo user.php, segue abaixo:

<?php ....class User { ........//Propriedades ........public $name; ........public $email; ........public $password; . ........//Método Construtor ........function __construct() { ............$this->password = '123456'; ........} . ........//Método do objeto ........public function setName($name) { ............$this->name = $name; ........} . ........//Método da classe ........public static function sayHello($name) { ............echo 'Olá, '.$name; ........} ....} ?>

E aí, a introdução a POO é isso aí.

Você pode ver a documentação completa do PHP aqui.

Este é todo o css extra que escrevemos:

#home { min-height: 100vh; } img { max-width: 100%; max-height: 300px; }