Doubt variable counter in Array

1

Good afternoon, as a good newbie in Java, a doubt has arisen at the root of an exercise. I have the class "Person" that should have a variable that will increase by 1 with each instance of its class, but I do not know how to do it efficiently, (a class variable called " numero_de_personas " that will increase by 1 with each instance.)

Here my code:

Clase Persona:
class Persona{
    private String nombres;    //Atributos de la clase Persona
    private String apellidos;
        int numero_de_personas;

    public Persona(){
        //inicializamos variables
        nombres = "";
        apellidos = "";
                numero_de_personas = 1;

    }
    //Constructor con parámetros
    public Persona(String nombres, String apellidos) {
        this.nombres = nombres;
        this.apellidos = apellidos;
    }
        //Getters Y Setters
    public void setNombres(String nombres){
        this.nombres = nombres;
    }
    public void setApellidos(String apellidos){
        this.apellidos = apellidos;
    }
    public String getNombres(){
        return this.nombres;
    }
    public String getApellidos(){
        return this.apellidos;
    }

    public int getNumero_de_personas() {
        return numero_de_personas;
    }

    public void setNumero_de_personas(int numero_de_personas) {
        this.numero_de_personas = numero_de_personas;
    }

}

Class ArrayPeople with the main method:

import java.util.Scanner;
import java.util.ArrayList; //Importamos los paquetes necesarios
public class ArrayPersonas{ //Clase ArrayPersona que contiene el método principal
    public static void main(String []args){

        Scanner scanner = new Scanner(System.in);//Iniciamos la clase Scanner para pedir datos por teclado
                Scanner scannerN = new Scanner(System.in);
        ArrayList listaPersonas = new ArrayList(); //Creamos el Array listaPersonas donde guardarmeos los datos
                System.out.println("Introduzca el número de personas de las que desea guardar información : ");
                int totalPersonas = 1;
        int contadorPersona = scannerN.nextInt();//Ingresaremos en nuestro ArrayList el nº de personas introducido por teclado en la variable numero_de_personas
        for(int i = 1;i <= contadorPersona;i++){//Bucle for para insertar los atributos de la clase Persona tantas veces como la variable numero_de personas.
            Persona persona = new Persona();
            System.out.println("Inserte el nombre de la persona número "+i);
            persona.setNombres(scanner.nextLine());
            System.out.println("Inserte los apellidos de la persona número "+i);
            persona.setApellidos(scanner.nextLine());
                        persona.setNumero_de_personas(i);
            listaPersonas.add(persona);//adjuntamos a la lista la persona que acabamos de crear     
        }



        for(int j = 0; j< listaPersonas.size();j++){
                        //ahora imprimiremos las personas de nuestro ArrayList
            System.out.println("============================================================");
            System.out.println("Persona numero " +totalPersonas++ );
            Persona persona = (Persona)listaPersonas.get(j);
            System.out.println("Nombre: "+persona.getNombres());
            System.out.println("Apellidos: "+persona.getApellidos());

        }

    }
}
    
asked by Raul.Rt 10.10.2017 в 19:32
source

1 answer

0

Defines the variable numero_de_personas as static and in the constructor you define its increment:

 static int numero_de_personas = 0;

public Persona(){
    //inicializamos variables
    nombres = "";
    apellidos = "";

    numero_de_personas++;

}

In this way when instantiating the class, the value of the variable numero_de_personas will increase by 1.

    
answered by 10.10.2017 / 19:39
source