Модификаторы доступа
По умолчанию все
поля и
методы класса в Java
приватные. Это значит, что никто не может получить доступ к ним, а значит за пределами объектов этого класса никакой метод не сможет использовать поля и методы объектов этого класса.
Поля и методы можно сделать публичными с помощью
модификатора доступа public
. Существует еще модификатор
private
, который делает поле приватным. Он необязателен, так как все поля и методы приватные по умолчанию. Вот пример использования модификаторов
public
и
private
.
class Book
{
public String name;
String authorName;
private int ageRequirement;
String text;
public int pageCount;
int getTextLength()
{
return text.length();
}
public int getAverageLetterCount()
{
return getTextLength() / pageCount;
}
private int getDifficuiltyLevel()
{
return 5 * ageRequirement * text.Length();
}
}
В этой версии класса
Book
поля
name
и
pageCount
стали открытыми для чтения и модификации в других объектах. Метод
getAverageLetterCount()
также доступен для вызова из объектов других классов. Все остальные поля и методы остаются приватными и доступны только в методах этого класса. В публичном методе
getAverageLetterCount()
мы можем вызвать приватный метод
getTextLength()
, так как
getAverageLetterCount()
принадлежит самому классу. А вот из метода другого класса сделать так не выйдет.
Но зачем тогда делать поля приватными? В коде на Java вы будете встречать в основном только приватные поля. Дело в том, что если доступ к приватным полям будет осуществляться через публичные методы объекта, то при любом таком доступе к приватным полям можно будет осуществлять дополнительные действия и проверки. Подробнее про это будет в уроке про инкапсуляцию.