Jump to content
Fórum Script Brasil
  • 0

Método construtor no PHP.


Hugão

Question

Fala galera beleza?

Estou estudando PHP OO, alguém pode me ajudar com a dúvida abaixo?

Criei uma classe Conta.class.php, ela tem os métodos: construtor, destrutor, Retirar, Depositar e ObterSaldo.

Agora, por que no método construtor o exemplo fez chamada somente aos métodos Depositar e ao atributo $Cancelada?

Segue o código:

<?PHP  
    class Conta{ 
        var $Agencia; 
        var $Codigo; 
        var $DataCriacao; 
        var $Titular; 
        var $Senha; 
        var $Saldo; 
        var $Cancelada; 
         
        //Método construtor. 
        function __construct($Agencia, $Codigo, $DataCriacao, $Titular, $Senha){ 
            $this->Agencia = $Agencia; 
            $this->Codigo = $Codigo; 
            $this->DataCriacao = $DataCriacao; 
            $this->Titular = $Titular; 
            $this->Senha = $Senha; 
                     
            //Chamada a outro método da classe Conta. 
            $this->Depositar(); 
            $this->Cancelada = FALSE; 
        } 
         
        //Método destrutor. 
        function __destruct(){ 
            echo "Objeto Conta {$Conta->Codigo = $Codigo} de {$conta_hugo->Titular->Nome} finalizada. \n"; 
        } 
         
        //Metodos Retirar dinheiro 
        //diminui saldo em $quantia. 
         
        function Retirar($quantia(){ 
            if($quantia > 0){ 
                $this->Saldo -= $quantia; 
            } 
        } 
         
        //Método obter Depositar 
        //aumenta saldo em $quantia. 
         
        function Depositar($quantia){ 
            if($quantia > 0){ 
                $this->Saldo += $quantia; 
            } 
        } 
         
        //Método ObterSaldo. 
         
        function Obtersaldo(){ 
            $this->Saldo; 
        } 
         
    } 
?>

Edited by Hugão
Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Olá ,

Bom , não sei até onde voce aprendeu de OO mais .. metodo construtor pode se dizer que vai dar os dados iniciais da sua aplicação.

ou seja vai construir o objeto a partir dos dados que voce passou quando instacia essa classe que possui o metodo construtor .. por exemplo.

//Método construtor.

function __construct($Agencia, $Codigo, $DataCriacao, $Titular, $Senha){

$this->Agencia = $Agencia;

$this->Codigo = $Codigo;

$this->DataCriacao = $DataCriacao;

$this->Titular = $Titular;

$this->Senha = $Senha;

}

teste = new Conta ("123","1000","20/02/2012","Teste","123456");

ou seja voce instancia a classe passando o valores iniciais que essa classe vai usar.

"Agora, por que no método construtor o exemplo fez chamada somente aos métodos Depositar e ao atributo $Cancelada?"

Simples .. perceba que voce esta utilizando

//Chamada a outro método da classe Conta.

$this->Depositar();

$this->Cancelada = FALSE;

logicamente ele vai criar o objeto com apenas essas dois metodos iniciais , pois foi os metodos que voce declarou dentro do construtor.

Edited by kakashi_cafe
Link to comment
Share on other sites

  • 0

Uma boa prática é fazer com que o construtor cumpra com a sua responsabilidade: Construir um objeto pronto para o uso. Ponto final. Se quiser, leia este artigo.

O kakashi_cafe mostrou um construtor que cumpre com a sua responsabilidade (repetindo o código):

//Método construtor.
function __construct($Agencia, $Codigo, $DataCriacao, $Titular, $Senha){
    $this->Agencia = $Agencia;
    $this->Codigo = $Codigo;
    $this->DataCriacao = $DataCriacao;
    $this->Titular = $Titular;
    $this->Senha = $Senha;
}

logicamente ele vai criar o objeto com apenas essas dois metodos iniciais , pois foi os metodos que voce declarou dentro do construtor.

Não sei se entendi bem a sua colocação, mas ele não vai criar apenas esses métodos no objeto. Ele simplesmente chamou o método "Depositar" e atribuiu um valor para a propriedade do objeto "Cancelada". Desculpa se entendi errado kakashi_cafe,

Um abraço.

Link to comment
Share on other sites

  • 0
Uma boa prática é fazer com que o construtor cumpra com a sua responsabilidade: Construir um objeto pronto para o uso. Ponto final. Se quiser, leia este artigo.

O kakashi_cafe mostrou um construtor que cumpre com a sua responsabilidade (repetindo o código):

//Método construtor.
function __construct($Agencia, $Codigo, $DataCriacao, $Titular, $Senha){
    $this->Agencia = $Agencia;
    $this->Codigo = $Codigo;
    $this->DataCriacao = $DataCriacao;
    $this->Titular = $Titular;
    $this->Senha = $Senha;
}

logicamente ele vai criar o objeto com apenas essas dois metodos iniciais , pois foi os metodos que voce declarou dentro do construtor.

Não sei se entendi bem a sua colocação, mas ele não vai criar apenas esses métodos no objeto. Ele simplesmente chamou o método "Depositar" e atribuiu um valor para a propriedade do objeto "Cancelada". Desculpa se entendi errado kakashi_cafe,

Um abraço.

Realmente foi falha minha .. me expressei mal na questao "cria apenas ".

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...