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

Canal: PHP  |  Autor:  |  Publicado em: 08/07/2006  |  Views: 8.369
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} <br> 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:

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} <br> 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 .= "<br>Salario: {$this->salario}";
parent::get_funcionario();
}

}



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


Creative Commons Esta obra está licenciada sob uma Licença Creative Commons. Você pode copiar, distribuir, exibir, executar, desde que seja dado crédito ao autor original (Citando nome do autor, data, local e link de onde tirou o texto). Você não pode fazer uso comercial desta obra. Você não pode criar obras derivadas.
Vote no artigo:
NR. DE VOTO(S): [1]
[x] Fechar Preencha os campos abaixo para indicar esta página:
Seu nome:
Seu e-mail:
Nome do indicado:
E-mail do indicado:
Deixe uma mensagem:
Anti-spam:

(nova imagem)
Preencha o que vê:
Twitter diHITT Facebook delicious envie por e-mail comentar

comentarComentários:

Preencha o formulário para comentar:

[x] Fechar
Nome:*
E-mail:* (não será exibido)
Site: (http://)
Comentário:*
Anti-spam:

(nova imagem)
Preencha o que vê:

Deseja receber as respostas dos comentários

Publicado em:
11/09/2009 - 08:13
Warlem
no inicio de onde veio o nome edivan carneiro e o cargo de funcionario? e se as variaveis fossem do tipo array? como mostrar um dado determinado? oO