При вызове метода из ArrayList переменная возвращает null
Есть задание создать массив, заполнить его кандидатами и к каждому применить метод hello() с помощью цикла for. При реализации значение name возвращается, как null. Прошу наставить на путь истинный, где моя ошибка.
import java.util.ArrayList;
import java.util.List;
public class MethodNull {
public static void main(String[] args) {
List<Candidate> candidates = new ArrayList<>();
candidates.add(new Candidate("John"));
candidates.add(new Candidate("Bob"));
for (Candidate candidate: candidates) {
candidate.hello();
}
System.out.println(candidates); // тест на заполненность массива
}
}
class Candidate {
String name;
public Candidate(String n) {
name = this.name;
}
public void hello() {
System.out.println("Hi, my name is " + name);
}
}
Этот код возвращает следующий текст:
Hi, my name is null
Hi, my name is null
[Candidate@1b6d3586, Candidate@4554617c]