Пакеты (package) в Java

Пакеты используются в 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() {//конструктор без параметров
        //сюда можно писать код, который будет выполняться при создании объекта
    }
     
     Cat(String catsColor){//конструктор с одним параметром
         color = catsColor;
     }
     
     Cat(String catsColor, int catsWeight, String catsSex){//конструктор с тремя параметрами
         color = catsColor;
         weight = catsWeight;
         sex = catsSex;
     }
   
    void myaukat(int count){
        for (int i = 0; i < count; i++) {
            System.out.println("Meaou!");
        }
    }
   
    void walk(){
        System.out.println("Char " + s);
        System.out.println(v);
        System.out.println(g);
        System.out.println(b);

    }
   
    String methodForEveryObject(){
       
        return color + " cat is walking";
    }

}

С классом Cat все в порядке, но вот класс RunnerClass подсвечен красным крестиком:

ошибка без импорта

Это потому, что мы забыли импортировать наш класс с другого пакета. Для решения проблемы, просто наведите курсор мыши на подчеркнутое слово Cat и в появившемся окне выберите Import ‘Cat’. Вы увидите, что перед объявлением класса прописалась строка import com.cat.Cat; — это путь к нашему классу. Если Вам нужно будет много импортировать то, чтобы не наводить курсор каждый раз и выбирать отдельно для каждого объекта в среде Eclipse для этого предусмотрено сочетание клавиш Ctrl+Shift+O. Это сохранит Вам много времени в будущем.

Не пугайтесь, если ошибки не пропали. Если Вы наведете на них, то увидите, что это уже ошибка другого рода. О ней мы поговорим в статье «модификаторы», которую я обещал Вам написать в прошлый раз.

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

А на этом, думаю, можно закончить говорить о пакетах, отдохнуть, закрепить материал и приступить к модификаторам.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: