Ett tips är att namnge variabler och metoder så att man förstår innebörden av dem. Undvik förkortningar och liknande.
Det var lite andra buggar i programmet där du använder static felaktigt som gör att du får oväntade buggar. Static på ett fält gör att fältet blir samma för alla olika instanser av det objektet. När jag körde ditt program efter några fixar så skrevs enbart sista personens uppgifter ut.
Jag har skrivit om programmet lite så, jag visste inte exakt vad du var ute efter i programmet så det har inte exakt samma funktioner.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Peoples peoples = createInitialPeoples();
System.out.println("Welcome");
while (true) {
System.out.println("\n1) Add person \n2) Print list\n0) Exit\n");
int userInput = scan.nextInt();
switch(userInput) {
case 1:
peoples.add(PersonFactory.newFromUserInput());
break;
case 2:
System.out.println(peoples);
break;
case 0:
System.exit(0);
}
}
}
private static Peoples createInitialPeoples() {
Peoples peoples = new Peoples();
peoples.add(new Person("Mia", "Wallace", "1981-01-01"));
peoples.add(new Person("Marcellus", "Wallace", "1982-02-02"));
return peoples;
}
}
public class Person {
private final String firstName;
private final String lastName;
private final String dateOfBirth;
public Person(String firstName, String lastName, String dateOfBirth) {
this.firstName = firstName;
this.lastName = lastName;
this.dateOfBirth = dateOfBirth;
}
public String toString() {
return "First name: " + firstName + "\nLast name: " + lastName + "\nDateOfBirth: " + dateOfBirth;
}
}
import java.util.Scanner;
public class PersonFactory {
public static Person newFromUserInput() {
Scanner inputScanner = new Scanner(System.in);
System.out.println("Enter first name: ");
String firstName = inputScanner.next();
System.out.println("Enter last name: ");
String lastName = inputScanner.next();
System.out.println("Enter date of birth: ");
String dateOfBirth = inputScanner.next();
return new Person(firstName, lastName, dateOfBirth);
}
}
import java.util.ArrayList;
import java.util.List;
public class Peoples {
private List<Person> peoples = new ArrayList<>();
public String toString() {
String summaryOfPeoples = "Number of peoples: " + peoples.size() + "\n";
for (int i = 0; i < peoples.size(); i++) {
summaryOfPeoples += "#" + (i+1) + "\n" + peoples.get(i).toString() + "\n";
}
return summaryOfPeoples;
}
public void add(Person people) {
peoples.add(people);
}
}