Which of the following is a valid constructor declaration in Java?
new ClassName() {}
ClassName() {}
public ClassName() {}
void ClassName() {}