Прежде чем продолжить обучение java я решил вам объяснить, более подробно о модификаторах доступа и для чего они нужны. Так как это важно для правильного стиля написания программ. Модификаторы доступа следует указывать явно да бы избежать в будущем ошибок. Модификаторы доступа указываются перед именем класса, перед именем метода, перед именем переменной. Всего существует 4 модификатора доступа:
public-общедоступный
protected-защищеный
private-закрытый
default-пакетный
Модификатор доступа public
Модификатор доступа public нам уже известен из предыдущих занятий. Этот модификатор мы использовали перед классом Car FirstMyName, в главном методе main. Если вы вспомните прошлое Занятие 12 Классы и объекты Модификатор доступа public имеет наибольшую видимость среди других. Что это значит? К примеру если вы создали поле-переменную или метод с модификатором public он будет виден в других классах, при создании объекта, а так же будет виден внутри самого класса, другими словами он будет виден отовсюду. Пример создания поля и метода с модификатором доступа public листинг 13.1
1 2 3 4 5 6 7 8 9 10 11 12 13 |
package myfirstprogramm; public class Car { public String wheels; public float engine; public int weight; public void go(){ System.out.println("Мы едем"); } } |
листинг 13.1
Модификатор доступа protected.
Модификатор доступа protected имеет ограниченную видимость, методы и переменные использующие этот модификатор будут видны внутри пакета, то есть во всех классах расположенных в одном пакете. Если вы помните у нас пакет называется myfirstprogramm. Более наглядно мы рассмотрим такие примеры в будущем, в листинге 13.2 пример использования модификатора.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
package myfirstprogramm; public class Car { protected String wheels; protected float engine; protected int weight; protected void go(){ System.out.println("Мы едем"); } } |
листинг 13.2
Модификатор доступа private
Модификатор доступа private имеет самую закрытую область видимости среди модификаторов. Переменные и методы использующие модификатор доступа private будут видны только в своем классе где они объявлены. Этот модификатор часто используют во время объявления полей и методов, для их скрытия в других класс, для того что бы пользователь или программист к примеру не мог изменить значения в переменных или в методах, а то может получится что машина весит 1000000 тон, а человек летает, а птицы под водой плавают. Так же важно запомнить что все поля которые вы создадите в будущем, модификатор доступа к ним всегда делайте private. А доступ к самим полям выполняется через методы гетторы и сетторы, но с ними мы разберемся позже.
Модификатор доступа default
Модификатор доступа default мы уже использовали, его не надо было объявлять явно. К примеру в классе Car из занятия 12 у нас были поля без явного использования модификатора, и по умолчанию им присвоился модификатор default. Этот модификатор имеет более закрытую область видимости, чем protected,виден только внутри одного пакета. И не доступен другим классам при наследовании в других пакетах.
Домашнее задание.
- Изменить модификатор доступа в классе Car в полях на protected, посмотреть что произошло.
- Подумайте, что могло произойти, если бы мы не установили модификатор доступа protected в нашем кл