Модификаторы доступа в Java (Зачем нужен public в данном случае)

Если метод задать так:

public void eat(){
    System.out.println("Animal is eating");
}

или так

void eat(){
    System.out.println("Animal is eating");
}

В чём разница между этими двумя методами? Какую роль здесь играет модификатор доступа public? Что будет, если его не написать? Метод вызывается в обоих случаях.


Ответы (1 шт):

Автор решения: Roman C

Метод класса можно вызывать как внутри самого класса, так и за пределами его. Все, что нужно для вызова метода - это ссылка на объект этого класса. Модификаторы доступа ограничивают видимость тех или иных методов за пределами класса, а также за пределами пакета в котором этот класс определен. Делается это с целью инкапсуляции, делая часть методов недоступными извне.

Модификатор public даёт доступ всем объектам возможность вызывать метод. В то время как без этого модификатора доступ имеют только классы находящиеся в том же пакете, что и данный класс. Соответственно он называется package private по умолчанию.

Для полного понимания следует читать Java Tutorial.

→ Ссылка