Hugão Posted April 2, 2012 Report Share Posted April 2, 2012 (edited) 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 April 2, 2012 by Hugão Quote Link to comment Share on other sites More sharing options...
0 kakashi_cafe Posted April 2, 2012 Report Share Posted April 2, 2012 (edited) 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 April 2, 2012 by kakashi_cafe Quote Link to comment Share on other sites More sharing options...
0 Willian Gustavo Veiga Posted April 3, 2012 Report Share Posted April 3, 2012 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. Quote Link to comment Share on other sites More sharing options...
0 kakashi_cafe Posted April 3, 2012 Report Share Posted April 3, 2012 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 ". Quote Link to comment Share on other sites More sharing options...
Question
Hugão
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:
Edited by HugãoLink to comment
Share on other sites
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.