Зачем модификатор public если его можно не использовать?
Потому что так понятнее какая видимость у переменной. В одних языках по умолчанию все переменные, объявленные без модификатора будут private, в других public, а так всё явно задано и путаница исключена.
Не исключена вероятность, что при смене версии языка вдруг это поведение изменится и весь код без явного объявления превратится в тыкву.
почитай про ООП и тогда поймёшь