Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

Recomendación del contador total

pude observar que al momento de crear una instancia se llamaba al constructor Cuenta() el cual te pedia un numero de agencia para inicializar la variable, la cuestion es que la variable total se le sumana 1 al inicializar una nueva variable pero esta mal escrito el codigo ya que que la linea de ( total++ ) se encuentra fuera de la condicional else , que es la parte del codigo que confirma que si se puede crear una una instancia agregandole el valor a la agencia ( this.agencia ) estando ese total++ afuera del condicional pues la variable acumulativa subira de 1 en 1 a pesar de que no cumpla con la condición ya que esta fuera de esta, solo esta siendo ejecutada por que esta dentro del metodo constructor que esta siendo ejecutado en el momento! eso fue lo que observe espero sea de ayuda!

2 respuestas

Hola compañero, lo que es que para que el codigo compile, si o si hay que pasarle un parametro, en este caso el de la agencia, asi que este va en entrar ya sea en el if o en else, lo que va a sumar una nueva cuenta... Si el "total++" estuviera solo en el else, solo sumaria una cuenta si el valor de agencia es mayor a 0... Recuerda que el codigo es:

private static int total = 0;
public Cuenta(int agencia){
            if(agencia <= 0) {
                System.out.println("Agencia inexistente, se asignara la agencia #1");
                this.agencia = 1;
            }else {
                this.agencia = agencia;
            }
            total++;
            System.out.println("El total de cuentas es de: " + total );
            
        }

Hola Antony! Te paso un ejemplo similar al que hizo el profe:

public class Cuenta {
    private static int total = 0; // Variable estática para mantener el conteo de cuentas
    private int numeroCuenta;
    private String titular;

    public Cuenta(String titular) {
        this.titular = titular;
        this.numeroCuenta = generarNumeroCuenta();
        total++; // Incrementa el contador de cuentas cada vez que se crea una nueva cuenta
    }

    private static int generarNumeroCuenta() {
        // Lógica para generar un número de cuenta único
        return total + 1;
    }

    public static int getTotalCuentas() {
        return total; // Método estático para obtener el valor de "total"
    }

    public static void main(String[] args) {
        Cuenta cuenta1 = new Cuenta("Pepe");
        Cuenta cuenta2 = new Cuenta("Moni");
    
        // Acceso al método estático "getTotalCuentas" desde la clase Cuenta
        System.out.println("Número de cuentas: " + Cuenta.getTotalCuentas());       
        // No se requiere una instancia específica para llamar al método estático getTotalCuentas()
    }
}

En este ejemplo, la clase "Cuenta" tiene una variable estática llamada "total" que se utiliza para mantener el conteo de la cantidad total de cuentas creadas. Esta variable es compartida por todas las instancias de la clase y se accede a nivel de clase utilizando el nombre de la clase seguido del nombre de la variable (Cuenta.total).

Cuando se crea una nueva cuenta mediante el constructor de la clase, se incrementa el contador de cuentas total. El método estático generarNumeroCuenta utiliza el valor de total para generar un número de cuenta único.

El método estático getTotalCuentas permite obtener el valor actual de total y se puede llamar directamente desde la clase Cuenta, sin necesidad de crear una instancia específica.

En el método main, se crean dos instancias de la clase Cuenta y luego se muestra el número total de cuentas utilizando el método estático getTotalCuentas.

En resumen, este ejemplo demuestra cómo los miembros estáticos, tanto variables como métodos, pertenecen a la clase en sí y no a instancias individuales. Se utilizan para mantener información común y se acceden a nivel de clase, lo que permite compartir datos entre todas las instancias de la clase sin depender de una instancia en particular.