Java для новичков: пакеты, перегрузка методов, static и final

Пакеты в Java

Пакеты в Java подобны папкам, хранящим файлы. Классы в одном пакете обращаются друг к другу напрямую. Например, в классе Main доступен класс Corr, если они находятся в одном пакете.

В крупных проектах рекомендуется создавать пакеты для организации файлов. При большом количестве файлов (20 и более) в одной папке легко запутаться. Группировка классов по тематике в разные пакеты улучшает читаемость и структуру проекта.

Создадим пакет, например, com.itprager.db для классов, работающих с базами данных. В нём создадим Java-класс Db.

Полное имя класса: com.itprager.db.Db. Для использования этого класса необходимо импортировать его: import com.itprager.db.Db;. Импорт указывает полное имя пакета и выбирает нужный класс. Если пакеты совпадают, импорт не нужен.

Перегрузка методов

Перегрузка методов – наличие в классе нескольких методов с одинаковым именем, но разным количеством или типом параметров. Это аналогично перегрузке конструкторов.

Пример: в классе Main создадим несколько методов с именем info:

  • public static void info() без параметров, выводящий «Hello».
  • public static void info(String word) с параметром типа String, выводящий переданный параметр и «!».

Java различает методы по количеству и типу параметров. Это позволяет использовать одно имя метода для разных операций с разными параметрами. Аналогично работает метод print() для чисел, строк и булевых значений. Это удобно, так как не нужно запоминать множество имён.

Перегрузку методов осуществляют, изменяя тип данных параметров или их количество. Главное – методы должны отличаться по сигнатуре (имя и список параметров).

Модификатор static

Модификатор static указывает, что метод или поле принадлежит классу, а не объекту.

Создадим класс Person со статическим полем count:

public class Person {
    public static int count;
}

К статическому полю обращаются через имя класса: Person.count = 5;.

Статические поля и методы удобны для хранения информации, общей для всех объектов класса. Значение статического поля сохраняется для всех объектов. При создании нескольких объектов класса Person, значение count будет общим.

Создадим конструктор, увеличивающий count при создании объекта, и метод getCount(), выводящий значение count. При создании нескольких объектов значение count будет увеличиваться, демонстрируя общность.

В статических методах можно работать только со статическими полями. Обращение к нестатическим полям из статического метода приведёт к ошибке компиляции. Метод main() является статическим, так как принадлежит классу, а не объекту.

Модификатор final

Модификатор final создаёт константы. Он применяется к полям, методам и классам.

  • final для поля: final int CONSTANT = 10; Значение поля нельзя изменить после присваивания.
  • final для метода: Метод, помеченный final, не может быть переопределён в классах-наследниках.
  • final для класса: Класс, помеченный final, не может иметь наследников. final и abstract модификаторы несовместимы.

Рассмотрены пакеты, перегрузка методов и модификаторы static и final. Эти концепции важны для организации и эффективного использования кода в Java.

Что будем искать? Например,программа