Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Aula sobre el Métodos Getter y Setter] ¿Por qué los métodos de mi clase no aparecen disponibles al crear un Objeto?

Cuando intento usar los métodos getter, setter o asignar valores a mis objetos, mi IDE (Intelli J) no me lanza opciones; es decir, no me muestra los métodos que tengo escritos. Es como si no tuviera escrito ningún método.

Acabo de terminar los temas de Get y Set, ya había hecho unas clases que llamé "CuentaPrueba2" y "ClientePrueba2", las instancié en mi clase/método "MainPrueba2" y todo funcionó perfecto.

Como ejercicio, empecé todo de nuevo (volví a transcribir/rehacer cada línea de código de la clase Cuenta y lo llamé "CuentaPrueba3", pero al momento de instanciar un objeto en "MainPrueba2" no me aparecen sus métodos. Lo curioso es que el código sí compila si escribo todo el método a mano, pero mientras lo voy escribiendo, el código se visualiza como si fuera un error y no me reconoce el método que quiero usar.!

¿Cómo puedo solucionarlo o a qué se debe el error?

public class CuentaPrueba2 {

    private double saldo; 
    private int agencia;
    private int numero;
    ClientePrueba2 titular = new ClientePrueba2();

    public void depositar(double monto){
        this.saldo += monto;
    }
    public boolean retirar(double monto){
        if(this.saldo >= monto){
            saldo -= monto;
            return true;
        }
        return false;
    }
    public boolean transferir(double monto, CuentaPrueba2 cuenta){
        if(this.saldo >= monto){
            this.retirar(monto);
            cuenta.depositar(monto);
            return true;
        }
        return false;
    }

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

    public void setAgencia(int agencia){
        if(agencia > 0) {
            this.agencia = agencia;
        }
    }
    public int getAgencia(){
        return this.agencia;
    }

    public void setNumero(int numero){
        if(numero > 0) {
            this.numero = numero;
        }
    }
    public int getNumero(){
        return this.numero;
    }

}
public class ClientePrueba2 {

    private String nombre;
    private String documento;
    private String telefono;

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
    public String getNombre(){
        return this.nombre;
    }

    public void setDocumento(String documento){
        this.documento = documento;
    }
    public String getDocumento(){
        return this.documento;
    }

    public void setTelefono(String telefono){
        this.telefono = telefono;
    }
    public String getTelefono(){
        return this.telefono;
    }
}
public class MainPrueba2 {
    public static void main(String[] args) {

        CuentaPrueba2 cuentaA = new CuentaPrueba2();
        cuentaA.titular.setNombre("Jose");
        cuentaA.depositar(1200);
        cuentaA.setAgencia(27);
        cuentaA.setNumero(78);

        System.out.println(cuentaA.obtenerSaldo());
        System.out.println(cuentaA.getAgencia());

        CuentaPrueba2 cuentaB = new CuentaPrueba2();
        cuentaB.depositar(4500);
        cuentaB.titular.setNombre("Michelle");
        System.out.println(cuentaB.titular.getNombre());
        
        CuentaPrueba2 cuentaC = new CuentaPrueba2();
        cuentaC.setAgencia(12);
        System.out.println(cuentaC.getAgencia());

        CuentaPrueba3 cuentaD = new CuentaPrueba3();
        cuentaD.setAgencia(12);
        System.out.println(cuentaD.getAgencia());

    }
}
public class CuentaPrueba3 {

    private double saldo;
    private int agencia;
    private int numero;
    ClientePrueba2 titular = new ClientePrueba2();

    public void depositar(double monto){ this.saldo += monto;}
    
    public boolean retirar(double monto){
        if(this.saldo >= monto){
            saldo -= monto;
            return true;
        }
        return false;
    }
    public boolean transferir(double monto, CuentaPrueba3 cuenta){
        if(this.saldo >= monto){
            this.retirar(monto);
            cuenta.depositar(monto);
            return true;
        }
        return false;
    }

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

    public void setAgencia(int agencia){
        if(agencia > 0) {
            this.agencia = agencia;
        }
    }
    public int getAgencia(){return this.agencia;}

    public void setNumero(int numero){
        if(numero > 0) {
            this.numero = numero;
        }
    }
    public int getNumero(){return this.numero;}
}

Imagen del código Imagen del códigoImagen del código

1 respuesta

Hola, tienes dos clases Cuenta() y una clase Cliente(), te sugiero nombres mas descritpivos para que sea mas fácil seguir la lógica. ej, CuentaVista, CuentaAhorro.

Al momento de crear una Cuenta, debes crear también un Cliente y con un método set, asignarlo a la cuenta, tal como lo hicimos en el ejemplo del curso, en estos usamos creamos el método setTitular() en la clase Cuenta.

    public void setTitular(Cliente titular){
        this.titular = titular;
    }

Espero te sirva de ayuda.