Мы помогаем ИТ-компаниям оптимально настроить процессы менеджмента и разработки

Найти

(067) 536-87-70

(095) 492-65-67

 

Конструкторы и модификаторы доступа

19.07.19

В прошлом уроке было показано как создать простой класс в Java. Однако, я специально не стал нагружать дополнительной информацией сосредоточившись только на основной теме. В этой статье я покажу верное написание класса с модификаторами доступа.

Модификаторы доступа - это ключевые слова, которые используются для классов, полей и методов:

  • public - обеспечивает видимость в этом и других пакетах
  • protected - обеспечивает видимость в этом пакете и классе наследнике (подробнее в следующих статьях)
  • default - обеспечивает видимость в текущем пакете. Примечание: в прошлой статье использовался именно он (никакого ключевого слова перед классом, полем или методом)
  • private - к полю, методу или классу с таким ключевым словом можно получить доступ только из класса, в котором произошло объявление.

желтая корелла

 

 

Пример:

    public class YellowCorella {
        private int age;
        private String name;
        String secret = “Secret”; //модификатор доступа default

        //Конструктор (специальный метод). Имеет модификаторы доступа и,
        //обязательно, должен иметь тоже имя, что и класс
        //Вызывается при создании класса
        //В данном случае можно проинициализировать поля при создании
        public YellowCorella (int age, String name) {
               System.out.println(“Corella was created”); //появится при создании
               this.age = age;
               this.name = name;
        }

        //Разрешаем public доступ к private полю через метод getName
        public String getName() {
               return name;
        }

        //public метод который можно вызвать в другом классе
        public void sing() {
               System.out.println(“Pik puk pik puk”);
        }
    }

    //Создадим класс main в другом пакете и попробуем вызвать наши методы
public class Main{
public static void main(String[] args) {

               //Создаем птичку кореллу
               //Используем конструктор, чтобы дать возраст и имя
               YellowCorella corella = new YellowCorella (5, “Pinki”);
               System.out.println(corella.getName()); //Pinki
               corella.sing(); //Pik puk pik puk
}
}

class MainЕсли вы попробуете вызвать поле secret каким-либо образом, то у вас ничего не выйдет. Так как класс Main находится в другом пакете и модификатор доступа у поля secret – default. Так что никто из другого пакета не узнает секрет желтой кореллы!