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

Erro no getSaldo

class Conta {
    int numero; 
    Pessoa titular;
    private double saldo;
    int agencia; 

    public void deposita(double valorASerDepositado) {
        this.saldo += valorASerDepositado;
    }
    public void saca(double valorASerSacado) {
        if(valorASerSacado > this.saldo ){
        System.out.println("Saque invaldio.");
        }else {
            System.out.println("Saque Efetuado.");
            this.saldo = this.saldo - valorASerSacado;
        }
    }
    public void transfere(double valor, Conta destino) {
        if (valor > this.saldo) {
            System.out.println("Operacao Invalida. \nSaldo insuficiente.");
        }else {
        this.saldo -= valor;
        destino.saldo += valor;
        System.out.println("Operacao realizada.");
        }
    }
    public double getSaldo() {
        return this.saldo;
    }
}
class Pessoa {
    String nome;
    String cpf;
    String dataNascimento;
}
class programa {
    public static void main(String[] args) {
        Conta mauricio = new Conta();
        mauricio.numero = 123;
        mauricio.getsaldo(1800.00);
        mauricio.titular = new Pessoa();
        mauricio.titular.nome = "Mauricio Neves \n";
        mauricio.titular.cpf = "123456789\n";
        mauricio.titular.dataNascimento = "07/11/1996";
        mauricio.agencia = 4556;
        mauricio.deposita(100);
        mauricio.saca(150);

        Conta guilherme = new  Conta();
        guilherme.numero = 456;
        guilherme.getSaldo(1200.00); 
        guilherme.titular = new Pessoa(); 
        guilherme.titular.nome = "Guilherme Inacio";
        guilherme.agencia = 4556;
        //guilherme. deposita(500);
        //guilherme.saca(100);

        //mauricio.transfere(100.0, guilherme);

        //System.out.println(mauricio.getSaldo());
        //System.out.println(guilherme.getSaldo());
        System.out.println("Saldo Atual:" + mauricio.getSaldo() + "\n" + mauricio.titular.nome + "CPF:" + mauricio.titular.cpf + "Data de nascimeto:" + mauricio.titular.dataNascimento);
    }
}

Apresenta os seguintes erros:

C:\Users\tr589895\Desktop\Projetos\Java>javac conta.java
conta.java:42: error: cannot find symbol
                mauricio.getsaldo(1800.00);
                        ^
  symbol:   method getsaldo(double)
  location: variable mauricio of type Conta
conta.java:53: error: method getSaldo in class Conta cannot be applied to given
types;
                guilherme.getSaldo(1200.00);
                         ^
  required: no arguments
  found: double
  reason: actual and formal argument lists differ in length
2 errors

C:\Users\tr589895\Desktop\Projetos\Java>
3 respostas

Fala ai Giovanni, tudo bem ?

Cara acho que você deu uma pequena confundida entre getter e setter.

      Conta guilherme = new  Conta();
        guilherme.numero = 456;
        guilherme.getSaldo(1200.00); 
        guilherme.titular = new Pessoa(); 
        guilherme.titular.nome = "Guilherme Inacio";
        guilherme.agencia = 4556;

O problema é com o guilherme.getSaldo(1200.00);, dá uma olhadinha em como ele tá definido na sua classe conta :

class Conta {

// resto do código aqui

    public double getSaldo() {
        return this.saldo;
    }
}

Repara que tá incorreto isso ? Acredito que o que você queria fazer era apenas :

guilherme.saldo = 1200.00;

Bom dia, Matheus!

Mas se eu declarar desta forma:

guilherme.saldo = 1200.00;

não compila pois eu declarei na class conta que: class Conta { //resto do código private double saldo;

Por isso criei o método getSaldo, porem quando tendo chamar ele em outra classe não consigo.

Qual a maneira correta de declarar esse método?

solução!

Oi Giovani, tudo bom? =)

A ideia quando tornamos o saldo privado é acessar ele através de métodos publicos, que regem a forma com que a gente vai acessar esse atributo.

Por exemplo, o getSaldo() serve pra gente consultar o valor que tem dentro desse atributo. Além dele, criamos o método saca() e deposita() que manipulam esse valor. No caso da linha:

guilherme.saldo = 1200.00;

Estamos tentando atribuir 1200.00 no saldo de guilherme. Quando a gente vai no banco e queremos atribuir valores a nossa conta, a gente costuma fazer um deposito. Aqui no sistema vai ser a mesma ideia. Ao invés de acessar diretamente o atributo saldo, vamos utilizar o método deposita(). Algo como:

guilherme.deposita(1200.00);

Abraço e bons estudos.