Ir para conteúdo
Fórum Script Brasil
  • 0

Método construtor no PHP.


Hugão

Pergunta

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; 
        } 
         
    } 
?>

Editado por Hugão
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 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.

Editado por kakashi_cafe
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...