Pré-Requisitos:
- PHP Intermediário
- Básico de MySql
- Básico em UML
Ao final deste artigo, você será capaz de:
- Diferenciar POO da programação procedural
- Entender os benefícios da POO
- Definir Classe e Objetos
- Criar uma classe básica
A velha programação estruturada:
Quando se trata de programação estruturada, estamos lidando com um conceito que dominou o contexto da engenharia de software durante várias décadas.
Na programação estruturada, o blocos de código (chamaremos de procedimentos e funções) se comunicam basicamente por meio de três mecanismos básicos: Sequência, Decisão e Iteração.
Sequência: Representa os passos para executar um programa: Leia um valor, repita esse valor 10 vezes, escreva na tela: "Concluído".
Decisão: Permite o uso de expressões lógicas: SE o valor for igual a x ENTÃO execute a função Y.
Iteração: Permite a execução repetitiva de um determinado bloco de comandos.
Benefícios da programação orientada a objetos:
Reutilização de código: Com certeza uma das maiores vantagens da POO. Uma vez que você escreveu um determinado código, nunca mais será reescrito, no máximo modificado através de algumas técnicas que veremos no decorrer do curso. Característica também denominada DRY (Don't Repeat Yourself).
Eficiência: A POO é associada a melhor eficiência devido suas características inerentes.
Refactoring: Facilidade na hora de modificar a estrutura interna de um código, sem alterar o resultado final.
Manutenibilidade: Facilidade na manutenção do sistema, mesmo quando escrito por terceiros.
Pablo Dall'Oglio define o paradigma da Orientação a Objetos em seu livro, PHP Programando com Orientação a Objetos como:
"A orientação a objetos é um paradigma que representa toda uma filosofia para construção de sistemas. Em vez de construir um sistema formado por um conjunto de procedimentos e variáveis nem sempre agrupadas de acordo com o contexto, como se fazia em linguagens estruturadas (Cobol, Clipper, Pascal), na orientação a objetos utilizamos uma ótica um pouco mais próxima do mundo real. Lidamos com objetos, estruturas que já conhecemos do nosso dia-a-dia e sobre as quais possuímos maior compreensão."
Orientação a Objetos - Estudo das Classes e Objetos
O conceito de classe nada mais é do que uma estrutura que define um tipos de dados, podendo conter variáveis (chamaremos de atributos) e também funções (chamaremos de métodos). Classes manipulam definições e objetos manipulam valores.
Como exemplo, vamos criar uma classe denominada carro. Automaticamente somos levados a pensar em algumas características inerentes aos carros que conhecemos, chamaremos de propriedades:
Propriedades do carro: Ano, modelo, cor, fabricante e etc..
Agora vamos pensar no que o carro faz, chamaremos de métodos:
Métodos: Locomover, frear, buzinar e etc..
Seguindo esta linha de pensamento, vamos criar a classe que define o carro, com suas devidas propriedades e métodos, e em seguida comentaremos.
Class Carro{
public $ano;
public $modelo;
public $cor;
public $fabricante;
}
Para testar, crie um novo arquivo php, salve como Carro.class.php. Não esqueça das tags de abertura e fechamento do php (<?php e ?>).
Este é o escopo básico de uma classe. Na linha 1 temos o que define uma classe (palavra reservada Class), seguida do nome da classe, neste caso Carro.
Observação: Por convenção, o nome das classes devem iniciar com letra maiúscula.
Nas linhas de 3 a 6, temos os atributos da classe, precedidos pela palavra reservada public, usado para indicar que aquele atributo é publico (veremos isso nas próximas aulas).
Um objeto contém exatamente a mesma estrutura e as propriedades de uma classe, no entanto sua estrutura é dinâmica, seus atributos podem mudar de valor durante a execução do programa e podemos declarar diversos objetos oriundos de uma mesma classe.
Exemplo de Objetos
//incluindo a classe que criamos anteriormente
include("Carro.class.php")
//Instanciando (opa, palavrinha nova) um novo objeto
$carro = new Carro();
//Atribuindo valores aos atributos que criamos
$carro->ano = 2012;
$carro->modelo = "C4 VTR";
$carro->cor = "Preto";
$carro->fabricante = "Citroen";
O que fizemos foi criar o objeto carro, e em seguida preenchemos seus atributos.
É importante analizar e entender a metodologia utilizada, fique atento aos comentários.
Continuaremos na próxima aula.
Realmente é uma ótima iniciativa esta sequência de matérias sobre POO. Assim que surgir uma oportunidade, gostaria de ver aqui no site, alguma coisa sobre Frameworks. É um assunto que acredito, interessaria muito públicos mais experientes.
ResponderExcluirO post ficou execelente! Bom trabalho.
Este comentário foi removido pelo autor.
ResponderExcluirAmigo, parabéns pelo iniciativa, muito didático e profissional.
ResponderExcluirForte abraço.
William Castro
webdascosias.com
@WilliamPub