Когда я пишу класс на Java, мне нравится инициализировать атрибуты, для которых прямо установлено значение по умолчанию, и атрибуты, которые устанавливаются вызывающей стороной в конструкторе, что-то вроде этого:
public class Stack<E> {
private List<E> list;
private int size = 0;
public Stack(int initialCapacity) {
list = new ArrayList<E>(initialCapacity);
}
// remainder omitted
}
Теперь предположим, что у меня есть класс Tree:
public class Tree<E> {
private Node<E> root = null;
// no constructor needed, remainder omitted
}
Должен ли я установить для корневого атрибута значение null, чтобы отметить, что он по умолчанию имеет значение null, или опустить нулевое значение?
EDIT:
Я пришел к этой идее после прочтения источников LinkedList и ArrayList , которые оба четко устанавливают свои атрибуты (размер в LinkedList и firstIndex / lastIndex в ArrayList) равными 0.