В данном уроке мы рассмотрим модификаторы доступа и поговорим о том, когда следует применять их. Для чего нужны модификаторы видимости? Они нужны для того, чтобы разграничивать методы и поля на те, которые может использовать программист в определенных ситуациях и на которые не может. Существуют четыре модификатора:
private
Самый жесткий модификатор доступа — private. Он разрешает доступ к членам класса только из этого класса:
Как вы могли заметить я создал две функции get и set, которые свободно могут обращаться к полю age. Теперь через них можно получить и задать значение переменной. Такой подход достаточно популярен при разработке программ, так как вы в этих функциях можете контролировать диапазон присваиваемых значений и корректно вернуть значение, в случае, если оно у вас явно не хранится или если оно не правильно проинициализированно:
В данном примере, я проверяю возраст пользователя перед тем как присвоить или перед тем как вернуть значение. С таким же успехом сюда можно было добавить какую — нить проверку на null.
Если бы мы не обрабатывали значение поля age в get и set, то мы получили отрицательный возраст, который мог бы привести к неправильной работе программы. Так как age имеет модификатор видимости private, то мы не можем явно установить значение перемение или получить ее значение. protected
Данный модификатор доступа разрешает использовать переменные в классах наследниках.
И мы хотим, чтобы класс Student, который является наследником класса User, умел возвращать номер группы на основе возраста:
Очевидно, что модификатор доступа protected является более слабым, чем private, поэтому все возможности private присутствуют и у него. internal (default)
С помощью него можно осуществлять доступ внутри одного пакета. Пакет — это некоторый аналог папки в Java. По умолчанию все классы, которые вы создаете находятся в пакете по умолчанию, поэтому вы имеете доступ к переменным типа internal без проблем. Более подробно о пакетах мы поговорим в следующих уроках. public
Самый приятный модификатор доступа. Он позволяет иметь доступ откуда угодно. Поэтому методы get и set и прочие функции, которые должен вызывать пользователь объекта делают public. Функции, которые должны быть использованы только как вспомогательные для класса и все поля делают private, кроме некоторых случаев, когда их делают protected. | |||||||||||||
| |||||||||||||
Просмотров: 478 | |
Всего комментариев: 0 | |