Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Porque não consigo rodar o metodo

Criei um novo projeto e estou tentando rodar o metodo seguindo o que vi na aula porém não roda e não consigo achar o erro.

public class Conta1 {
    double saldo;
    double agencia;
    double conta;
    String Titular;

    public void deposita(double valor1) {
        saldo = saldo + valor1; 
    }
};

public class CriarContra {

public static void main(String[] Args) {
    Conta1 priConta1 = new Conta1();
    priConta1.saldo = 200;
    System.out.println(priConta1.saldo);

    Conta1 priConta2 = new Conta1();
    System.out.println(priConta2.saldo);

}

}

insira spublic class Metodos {

public static void deposita(String[] args) {
    Conta1 saldoDep = new Conta1();
    saldoDep.deposita(250);
    System.out.println(saldoDep.saldo);
}

}

O codigo compila mas não deposita nenhum valor no saldo final.
o que está errado?
4 respostas
solução!

Oi Guilherme, tudo bem?

Não conseguiremos compilar nosso código desta forma, pois saldo não é uma variável presente neste escopo. Queremos que saldo seja relacionado à conta que está evocando o método deposita(), para isso, precisamos fazer o uso da palavra-chave this, que aprendemos no curso, da seguinte forma:

public class Conta {
    double saldo;
    int agencia;
    int numero;
    String titular; 

    public void deposita(double valor) {
        this.saldo = this.saldo + valor; 

    }
}

Ficou claro? Espero ter ajudado, e bons estudos!

Então, mas mesmo com o uso do "this.valor" o cod não insere o valor adicional "deposita(250)" na variável/objeto/referência "priConta1"

public class Conta {
    double saldo;
    int agencia;
    int numero;
    String titular; 

    public void deposita(double valor) {
        this.saldo = this.saldo + valor; 

    }
}

Digitei exatamente como acima e não altera o saldo de 250 contido na função deposita. Eu criei um novo projeto e fiz três arquivos assim como feito em aula e não roda parece que não CONECTA com os outros no POO.

e sobre o "this" eu lembro que foi mencionado na aula mas era não obrigatório. to meio em dúvida...? Eu sinto as aulas meio que aleatórias no conteúdo me sinto meio perdido parece que ele exemplifica muito uma ideia em cada vídeo mas o conceito mesmo fica meio no ar sei lá...

O seu código está certo, mas ele precisa ser instanciado.

public class Conta {
    double saldo;
    int agencia, numero;
    String titular;


    public void depositar(double valor) {
        this.saldo += valor;

    }
}
public static void main(String[] args){

        Conta primeiraConta = new Conta();

        primeiraConta.depositar(1250);
        System.out.println(primeiraConta.saldo);
}

A declaração do deposita não está correta. Após criar a conta (seu novo objeto), você usa o " nome escolhido + . + o método do deposita criado".

Exemplo: conta1. deposita(250)

Juntamente do "this." que é uma boa prática implementar-lo em seu método pois em um código mais complexo a falta dele pode acabar trazendo problemas.