Что бы сохранить в список строк только имя, воспользуйтесь геттером, вот пример:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
List<String> client1 = new ArrayList<>();
client1.add(new Client("Анна", "Верёвочкина", 22).getFirstName());
// Хотя возможно лучше было бы в список сохранять не имена,
// а объекты Client
List<Client> clients = new ArrayList<>();
clients.add(new Client("Анна", "Верёвочкина", 22));
clients.add(new Client("Катя", "Брусникина", 25));
// После чего, что-то делать со списком, в данном случае,
// выводим в STDOUT имена
clients.stream().forEach(c -> System.out.println(c.getFirstName()));
}
}
class Client {
private String firstName;
private String lastName;
private int age;
// конструктор
public Client(String firstName, String lastName, int age) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
// Переопределяем toString()
@Override
public String toString() {
return "Client [firstName=" + firstName + ", lastName=" + lastName + ", age=" + age + "]";
}
}
И ещё! Метод toString() ничего не должен выводить, он должен возвращать строковое представление объекта.