A Orientação a Objetos (OO) é o desenvolvimento de uma estratégia em que os sistemas devem ser construídos baseados em uma coleção de componentes reusáveis conhecidos como objetos. Possuem basicamente duas características:
- Objetos possuem dados (atributos);
- Objetos manipulam dados e fazem coisas (métodos).
Classe
Uma classe é a abstração, um modelo a partir do qual os objetos podem ser criados, mostrando quais devem ser suas características (atributos) e quais devem ser suas funcionalidades (métodos)
Atributo
A coleção de atributos representa o que uma classe sabe (os dados que a classe possui). Na programação os atributos são as variáveis que definimos para a classe.
Método
Definem o que as classes sabem fazer, podem alterar os atributos e realizar funções inerentes a classe. Na programação podemos pensar em métodos como funções na classe.
Visibilidade de Atributos e Métodos
Os atributos e métodos de uma classe podem ser definidos como:
- public (público), é acessível em qualquer lugar da classe, de suas subclasses, bem como em qualquer parte dos scripts que contém a classe;
- protected (protegido), são visíveis pela classe que os criou e por suas subclasses (classes que herdam a classe principal), porém não são acessíveis fora deste contexto;
- private (privado), são visíveis apenas na classe que os criou. Subclasses ou o script que contém a classe não podem acessar estes atributos e métodos de forma direta.
Objeto
É a entidade que desejamos generalizar (torná-la uma classe) e pode ser uma pessoa, um lugar, um evento, um conceito, um relatório, uma tela, enfim qualquer coisa do mundo real. Em relação a banco de dados, podemos enxergar um objeto como um dos registros de uma tabela.
Primeiramente criamos uma classe Cliente que terá uma atributo nome com a visibilidade public, como ilustra o trecho do código:
class Cliente { //Atributos public $nome; }
Em seguida definimos dois métodos com visibilidade public. Um método chamado setNome, sua função é definir um valor para o atributo nome, e outro método chamado getNome, com a função de recuperar o valor de nome gravado no objeto.
//Métodos public function setNome($nome) { $this->nome = $nome; } public function getNome() { return $this->nome; }Para simplificar colocamos nosso código html no mesmo arquivo Cliente.php, que consiste num formulário para salvar o nome do cliente, segue o código:
<html> <head></body> </html>Classe Cliente </head> <body>
E finalmente tratamos o retorno do formulário com o script PHP a seguir:
<?php if(!empty($_GET)) { $nome = $_GET['nome']; $idade = $_GET['idade']; $cliente = new Cliente(); $cliente->setNome($nome); echo $cliente->getNome() . ", salvo com sucesso.<>"; } ?>Segue o código completo do exemplo:
<?php /** * Classe Cliente * * @author Luiz Carlos */ class Cliente { //Atributos public $nome; protected $idade; //Métodos public function setNome($nome) { $this->nome = $nome; } public function setIdade($idade) { if($idade > 130) { exit(); } else { $this->idade = $idade; } } public function getNome() { return $this->nome; } public function getIdade() { return $this->idade; } } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html" charset="UTF-8"/> <title>Classe Cliente</title> </head> <body> <?php if(!empty($_GET)) { $nome = $_GET['nome']; $idade = $_GET['idade']; $cliente = new Cliente(); $cliente->setNome($nome); $cliente->setIdade($idade); echo $cliente->getNome() . ", salvo com sucesso.<>"; echo $cliente->getIdade() . " anos de idade."; } ?> <form name="fcliente" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get"> <label for="nome">Nome</label> <input name="nome" type="text" maxlength="30" size="30"/> <label for="idade">Idade</label> <input name="idade" type="text" maxlength="3" size="3" /> <input value="Salvar" type="submit"> </form> </body> </html>Até a próxima. Bom estudo!
Fonte:
Walaca Soares
PHP 5: Conceitos, Programação e Integração com Banco de Dados
6ª ed. revisada - São Paulo, Editora Érica, 2010