PHP 5 e Orientação a Objetos - Parte 1

O modelo de programação orientada a objetos tornou-se fortemente marcado na versão 5 do php, que ate então, não oferecia recursos fundamentais para tal modelo. Abordaremos em uma serie de artigos, fundamentos, conceitos e programação orientada a objetos.

Por | @oficinadanet Programação
Conceitos

A programação orientada a objetos consiste em um desenvolvimento estratégico onde os sistemas são constituídos de partes reutilizaveis chamadas de classes que se interagem entre si através de objetos ( instancia de uma classe ).

"A análise orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um sistema de software. O funcionamento deste sistema se dá através do relacionamento e troca de mensagens entre estes objetos." (wikipedia.org)

"Na programação orientada a objetos, implementa-se um conjunto de classes que definem os objetos presentes no sistema de software. Cada classe determina o comportamento (definidos nos métodos) e estados possíveis (atributos) de seus objetos, assim como o relacionamento com outros objetos." (wikipedia.org)

Classes
     Uma classe nada mais é do que uma abstração de um objeto, um modelo pelo qual os objetos são criados. Uma classe possui basicamente atributos ( variaveis ) e métodos ( funções ) onde, a partir de objetos ( instancia de uma classe ) são acessadas e/ou retornam valores.

Ex:

Class funcionario{
protected $nome;
protected $cargo;

public function set_nome($nome){
$this->nome = $nome;
}

public function set_cargo($cargo){
$this->cargo = $cargo;
}

public function get_funcionario(){
return  "Funcionário: {$this->nome}
Cargo: {$this->cargo}";
}

}

Objetos
    Como dito antes, objetos são instancias de uma classe, ou seja uma entidade generalizada. Um exemplo é o funcionário Edivan carneiro , da classe Funcionários e como você pode ver, o funcionário Edivam carneiro sabe coisas ( possui Atributos ) e faz coisas (  possui Métodos ).

Ex:

$func = new funcionario;
$func->set_nome('Edivam carneiro');
$func->set_cargo('Analista de Sistemas');
echo $func->get_funcionario();

Além destas definições recomendo ler o artigo:

target="_blank">ORIENTACAO A OBJETOS



PHP 5 e Orientação a Objetos

Até a versão 4 do php, objetos eram tratados de maneira simples, opcões de visibilidade de métodos e atributos, construtores de destruidores de classes, entre outros não eram até então possivel nesta versão,ja a versão 5 do php traz melhor a aderencia a orientação a objetos implementandos todos os recursos de que uma linguagem orientada a objetos deve possuir como as ja citadas anteriormente.

1 -Visibilidade de atributos e métodos

    A visibilidade de um atributo ou método define a prioridade de acesso ( visibilidade ) do mesmo pelo objeto que o instanciou. Pode ser:

Public:
   Um atributo ou método definido como public pode ser acessado pela classe, objeto que o instanciou e pelas subclasses que o herdaram.

Protected:
   Um atributo ou método definido como protected só pode ser acessado pela classe e subclasses que o herdaram

Private: Um atributo ou método definido como private só pode ser acessado pela classe que o criou

2 - Referencias
    Maneiras de se acessar um atributo ou método de uma classe

$this->
   Para se referir a um atributo ou método que se encontra na mesma classe que o criou utiliza-se a variavel especial  $this-> seguida do nome do atributo ou método que se deseja acessar.

ex:

class teste{
public $var;
public $var2;

public function get_var(){
$this->var  = 'TESTE';
return $this->var;
}

}

parent::

A palavra reservada parent:: é utilizada para referenciar a um metodo ou atributo de uma superclasse ( classe que foi herdada ).

ex:

Class funcionario{
protected $nome;
protected $cargo;
protected $funcionario;

public function set_nome($nome){
$this->nome = $nome;
}

public function set_cargo($cargo){
$this->cargo = $cargo;
}

public function get_funcionario(){
$this->funcionario =  "Funcionário: {$this->nome}
Cargo: {$this->cargo}";
return $this->funcionario;
}
}
Class salario extends funcionario{
public $salario;

public function set_salario($sal){
$this->salario = $sal;
}

public function get_salario(){
return $this->salario;
}
public function get_funcionario(){  // aqui irá sobrescrever o metodo da classe superior
parent::funcionario .= "
Salario: {$this->salario}";
parent::get_funcionario();
}

}



Duvidas ou sugestões
edivam@oficinadanet.com.br


Mais sobre:
Share Tweet
DESTAQUESRecomendadoMais compartilhados
Comentários
  • ASSINE NOSSA NEWSLETTER

    As melhores publicações no
    seu e-mail

  • Preencha para confirmar