7
respostas

Dúvidas sobre o método "construct"

Bom dia,

Entendo que é para criar o método "construct" na classe Produto, certo? Mas, em qual arquivo eu devo inserir o código fonte abaixo? Não está claro para mim.

function __construct($nome, $preco, $descricao, Categoria $categoria, $usado) {
        $this->nome = $nome;
        $this->preco = $preco;
        $this->descricao = $descricao;
        $this->categoria = $categoria;
        $this->usado = $usado;

    }

No aguardo e obrigado.

7 respostas

Deve ser inserido no arquivo "Produto.php", logo abaixo da declaração da classe:

class Produto {

function __construct($nome, $preco, $descricao, Categoria $categoria, $usado) {
        $this->nome = $nome;
        $this->preco = $preco;
        $this->descricao = $descricao;
        $this->categoria = $categoria;
        $this->usado = $usado;

    }

}

Bom dia,

Entendi. Acontece que o arquivo "Produto.php" não consta na pasta zipada para downloading "curso-php-i-orientacao-a-objetos-com-sua-linguagem-preferida-aula5.zip". Devo criar este arquivo do zero?

No aguardo, obrigado!

Está dentro da pasta "class" e faz parte do arquivo baixado.

Boa tarde,

Qual arquivo baixado? Não tem na pasta Produto.php, certo? Att.,

Marcello

Boa tarde,

Achei o arquivo "Produto.php", na subpasta (ou subdiretório) "class". O código fonte original está assim:

<?php

class Produto {

    private $id;
    private $nome;
    private $preco;
    private $descricao;
    private $categoria;
    private $usado;

    public function getId() {
        return $this->id;
    }

    public function setId($id) {
        $this->id = $id;
    }

    public function getNome() {
        return $this->nome;
    }

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

    public function getPreco() {
        return $this->preco;
    }

    public function setPreco($preco) {
        $this->preco = $preco;
    }

    public function getDescricao() {
        return $this->descricao;
    }

    public function setDescricao($descricao) {
        $this->descricao = $descricao;
    }

    public function getCategoria() {
        return $this->categoria;
    }

    public function setCategoria($categoria) {
        $this->categoria = $categoria;
    }

    public function isUsado() {
        return $this->usado;
    }

    public function setUsado($usado) {
        $this->usado = $usado;
    }

    public function precoComDesconto($valor = 0.1) {

        if ($valor > 0 && $valor <= 0.5) {
            $this->preco -= $this->preco * $valor;
        }

        return $this->preco;
    }
}

?>

Com a inserção do método "construct", o código fonte deverá ficar assim então?

<?php

class Produto {

private $id; private $nome; private $preco; private $descricao; private $categoria; private $usado;

function __construct($nome, $preco, $descricao, Categoria $categoria, $usado) { $this->nome = $nome; $this->preco = $preco; $this->descricao = $descricao; $this->categoria = $categoria; $this->usado = $usado;

}

public function getId() { return $this->id; }

public function setId($id) { $this->id = $id; }

public function getNome() { return $this->nome; }

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

public function getPreco() { return $this->preco; }

public function setPreco($preco) { $this->preco = $preco; }

public function getDescricao() { return $this->descricao; }

public function setDescricao($descricao) { $this->descricao = $descricao; }

public function getCategoria() { return $this->categoria; }

public function setCategoria($categoria) { $this->categoria = $categoria; }

public function isUsado() { return $this->usado; }

public function setUsado($usado) { $this->usado = $usado; }

public function precoComDesconto($valor = 0.1) {

if ($valor > 0 && $valor <= 0.5) { $this->preco -= $this->preco * $valor; }

return $this->preco; } }

?>

No aguardo, grato!

SIM.

<?php

class Produto {

    private $id;
    private $nome;
    private $preco;
    private $descricao;
    private $categoria;
    private $usado;

    function __construct($nome, $preco, $descricao, Categoria $categoria, $usado) {
        $this->nome = $nome;
        $this->preco = $preco;
        $this->descricao = $descricao;
        $this->categoria = $categoria;
        $this->usado = $usado;

    }

    public function getId() {
        return $this->id;
    }

    public function setId($id) {
        $this->id = $id;
    }

    public function getNome() {
        return $this->nome;
    }

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

    public function getPreco() {
        return $this->preco;
    }

    public function setPreco($preco) {
        $this->preco = $preco;
    }

    public function getDescricao() {
        return $this->descricao;
    }

    public function setDescricao($descricao) {
        $this->descricao = $descricao;
    }

    public function getCategoria() {
        return $this->categoria;
    }

    public function setCategoria($categoria) {
        $this->categoria = $categoria;
    }

    public function isUsado() {
        return $this->usado;
    }

    public function setUsado($usado) {
        $this->usado = $usado;
    }

    public function precoComDesconto($valor = 0.1) {

        if ($valor > 0 && $valor <= 0.5) {
            $this->preco -= $this->preco * $valor;
        }

        return $this->preco;
    }
}

?>

Ok, a classe "Produto" tá blz! Porém, deu bug na linha 15 do arquivo "banco-produto.php", depois de todas as modificações propostas no presente módulo. Enviei os códigos via e-mail, pois excedeu 5000 caracteres. Grato!