Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

ERROR GETTER & SETTER

Hola! No me esta saliendo el escapsulamiento de saldo. Me tira errores, por ejemplo que debe haber una variable del lado izquierdo les dejo mi código y una foto del mismo con el error que me sale. Muchas gracias

class Cuenta {
    private double saldo;
    int agencia;
    int numero;
    Cliente titular = new Cliente();

// Modificadores de acceso

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

    public void setAgencia(int agencia) {
        if (agencia > 0) {
            this.agencia = agencia;
        } else {
            System.out.println("No puede poner valores negativos");
        }
    }

// Metodos sin retorno
    public void depositar(double valor) {
        getSaldo() =- valor;
        System.out.println("Su saldo actual es de $" + getSaldo());
    }

// Metodos que retornan valor -> Retirar
    public boolean retirar(double valorRetirar) {
        if (getSaldo() >= valorRetirar) {
            getSaldo() =- valorRetirar;
            System.out.println("Extración exitosa. Saldo acutal de $" + getSaldo());
            return true;
        } else {
            if (getSaldo() < valorRetirar)
                System.out.println("Saldo insuficiente");
        }
        return false;
    }

// Metodos que retornan valor -> Transferir
    public boolean transferir(double valorTransferir, Cuenta cuenta) {
        if (getSaldo() >= valorTransferir) {
            getSaldo() =- valorTransferir;
            cuenta.depositar(valorTransferir);
            System.out.println("Transferiencia exitosa! A " + cuenta + " se le transfirio $" + valorTransferir
                    + " Tu saldo es de $" + getSaldo());
            return true;
        } else {
            if (this.saldo < valorTransferir) {
                System.out.println("Saldo insuficiente");
            }
            return false;
        }
    }

}

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

2 respuestas

Hola, no se si ya lo has resuelto pero igual ahí va jajajaja en principio veo que llamas a getSaldo() como una variable y no es posible hacer eso, getSaldo y SetSaldo se usa precisamente para no manipular directamente la variable pero desde afuera de la clase, desde adentro puedes usar this.saldo y modificar la variable. Cambia todas las asignaciones de getSaldo() por this.saldo

un ejemplo, en la linea del error(linea 23) cambia ese getsaldo() -= valor por this.saldo -= valor

solución!

Muchísimas gracias por tu ayuda, con lo que me dijiste y con videos tutoriales creo que encontré como usar los getter y setter. Hasta ahora no me larga ningún error. Paso el código para que vean...

public class Cuenta {
    private double saldo;
    private int agencia;
    private int numero;
    Cliente titular = new Cliente();


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

    public void setAgencia(int agencia) {
        this.agencia = agencia;
    }

    public void setNumero(int numero) {
        this.numero = numero;
    }


    public void depositar (double valorDepositar) {
        setSaldo(valorDepositar);
        System.out.println("Su saldo actual es de $" + getSaldo());
    }

    public boolean retirar (double valorRetirar) {
        if (getSaldo() >= valorRetirar) {
            setSaldo(- valorRetirar);        
            System.out.println("Extracción existosa! Su saldo acutal es de $" + getSaldo());
            return true;
        } else {
            System.out.println("Saldo insuficiente");
        }
        return false;
    }

    public boolean transferir(double valorTransferir) {
        if (getSaldo() >= valorTransferir) {
            setSaldo(- valorTransferir);
            System.out.println("Transferiencia exitosa! Saldo actual es de $" + getSaldo());
            return true;
        } else {
            System.out.println("Saldo insuficiente");
        }
        return false;
    }
}

También les dejo una foto de un ejercicio donde me da todo bien. Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad