Пакеты используются в Java для предотвращения конфликтов имен, контроля доступа, облегчения поиска / определения местонахождения и использования классов, интерфейсов, перечислений, аннотаций и т. д.
Если увидели незнакомое выражение или термин — ну пугайтесь: мы это выучим. Я помню, что в статье об классах и методах обещал Вам рассказать про модификаторы, но нам будет сложно разобраться в этой теме без знания о пакетах. Поэтому, прежде чем мы начнем углубляться в модификаторы, давайте разберем, что такое пакет (package).
По сути дела, пакет это просто папка в нашем проекте чтобы не писать все классы в одной директории. Серьезные проекты насчитывают десятки тысяч классов. Представьте, если это все будет в одной папке. Поэтому и ввели разделение классов по разным папками (пакетам). Создать пакет просто: нажимаете на папке src вашего проекта правой клавишей мыши -> new -> package даете вашему пакету имя и готово.
После того, как Вы разместили свой класс в пакете и хотите получить его в другом классе (да, так тоже можно), нужно использовать ключевое слово import и полное название пакета. Рассмотрим пример. Создадим пакет com.cat и в нем класс Cat — обычный класс который отображает объект кошка. Мы его создавали в прошлой статье. Только не добавляйте метод main. Далее создадим пакет com.main в котором будет новый класс. Назовем его RunnerClass и в него добавим метод main. Теперь попробуем создать наших кошек и вызвать их методы в классе RunnerClass.
Получилась вот такая структура файлов в проекте:
-
package com.cat; //заметьте, появилась новая строка объявления пакета
-
-
public class Cat {
-
-
String color;
-
int weight;
-
String sex;
-
char s;
-
double v;
-
float g;
-
boolean b;
-
-
Cat() {//конструктор без параметров
-
//сюда можно писать код, который будет выполняться при создании объекта
-
}
-
-
color = catsColor;
-
}
-
-
color = catsColor;
-
weight = catsWeight;
-
sex = catsSex;
-
}
-
-
void myaukat(int count){
-
for (int i = 0; i < count; i++) {
-
}
-
}
-
-
void walk(){
-
-
}
-
-
-
return color + " cat is walking";
-
}
-
-
}
С классом Cat все в порядке, но вот класс RunnerClass подсвечен красным крестиком:
Это потому, что мы забыли импортировать наш класс с другого пакета. Для решения проблемы, просто наведите курсор мыши на подчеркнутое слово Cat и в появившемся окне выберите Import ‘Cat’. Вы увидите, что перед объявлением класса прописалась строка import com.cat.Cat; — это путь к нашему классу. Если Вам нужно будет много импортировать то, чтобы не наводить курсор каждый раз и выбирать отдельно для каждого объекта в среде Eclipse для этого предусмотрено сочетание клавиш Ctrl+Shift+O. Это сохранит Вам много времени в будущем.
Не пугайтесь, если ошибки не пропали. Если Вы наведете на них, то увидите, что это уже ошибка другого рода. О ней мы поговорим в статье «модификаторы», которую я обещал Вам написать в прошлый раз.
Как видите, пакеты — очень удобный механизм разделения файлов на логические структуры и понятные структуры. Использовать пакеты намного удобнее, чем размещать классы в одной папке. Об этом Вы сможете убедиться, когда начнете писать действительно сложные и большие приложения.
А на этом, думаю, можно закончить говорить о пакетах, отдохнуть, закрепить материал и приступить к модификаторам.