Null или не null?

Пишем класс и конструктор.


public class Cat {


private String name;

private String color;

private int age;


public Cat (String name, String color, int age) {


this.name = name;

this.color = color;

this.age = age;

}

}


Внимание вопрос!

Все, как один, говорят, что переменным класса нужно обязательно присваивать стартовые значения.

Т.е. нужно объявлять переменные класса как


private String name = null;


а не просто


private String name;


Но ведь при использовании последней записи переменной автоматически присваивается null. Тогда в чем разница?

10
Автор поста оценил этот комментарий

Это актуально только для C/C++, в нормальных остальных языках перед выделением памяти она и так зануляется, так что переменным автоматически присваевается null.

К локальным переменным методов это не относится, но, опять же, в нормальных остальных языках компилятор тебя наругает, если ты попробуешь использовать неинициализированные значения.


И вообще, если те, кто "как один, говорят" сами не могут нормально ответить на этот вопрос, то больше их не слушай - они идиоты.

раскрыть ветку
1
Автор поста оценил этот комментарий
Разницы никакой. С таким же успехом можно все классы наследовать от java.lang.Object. Результат одинаковых, писанины больше, возможностей ошибиться больше.
раскрыть ветку
1
Автор поста оценил этот комментарий

Буратино дали три яблока. Два он съел. Сколько яблок осталось у Буратино? Думаете одно? Ничего подобного. Никто не знает сколько у него уже было яблок до этого. Мораль — всегда обнуляйте переменные!

раскрыть ветку
Автор поста оценил этот комментарий
автор, скажем так, это стало одним из правил хорошего тона. Пришло из с и плюсов, т.к. там это необходимо. Но время идет и на джаве оно забывается.
Автор поста оценил этот комментарий

В компиляторах и языка программирования. Не догоняю, то Java или C#

раскрыть ветку