Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Bom eu resolvi de outra forma utilizando o metodo void nao sei se poderia mas deixarei aqui como resolvi.

public class Produto { String nome; double preco; double descontoParaPix; double precoFinal; String metodoPagamento;

void exibirProduto(){
    System.out.println("Produto: " + nome );
    System.out.println("O valor do produto e: R$" + preco);
    System.out.println("o preco final e de: R$" + precoFinal);
}

void pegaPrecoFinal (){
    if (metodoPagamento.equals("Cartao")) {
        precoFinal = preco;
    } else {
        precoFinal = preco - descontoParaPix;
    }
}

}

public class Pagamento { public static void main(String[] args) { Produto novoProduto = new Produto();

novoProduto.nome = "fone de ouvido";
novoProduto.preco = 12.99;
novoProduto.descontoParaPix = 10.00;
novoProduto.metodoPagamento = "Pix";


novoProduto.pegaPrecoFinal();

novoProduto.exibirProduto();


}

}

1 resposta
solução!

está correto seus metodos, usar o void para retorna algum valor ou string o objeto, seja oque for, se nao tiver retorno temos que usar o void mesmo, uma outra coisa, na frente dos seus metodos, não tem o modificardor de acesso, está apenas void, assim outras classes teram como acessar os seus metodos, e não uma boa pratica, coloque public na frente que isso resolvera esse problema...

public void exibirProduto(){
    System.out.println("Produto: " + nome );
    System.out.println("O valor do produto e: R$" + preco);
    System.out.println("o preco final e de: R$" + precoFinal);
}

public void pegaPrecoFinal (){
    if (metodoPagamento.equals("Cartao")) {
        precoFinal = preco;
    } else {
        precoFinal = preco - descontoParaPix;
    }
}