
#18 – Пакеты, перегрузки, модификатор static
Видеоурок
Пакеты и Джава
Вы не задумывались каким образом Java понимает что мы создали новый класс и находит этот класс? Все дело в пакетах, которые объединяют все классы в одном месте.
Пакетная область - это небольшая строчка кода вверху программы, что говорит компилятору в какой области храниться данный файл. Все файлы из одной области можно спокойно использовать без явного импорта.
Пример пакетной области:
package some_name;
Название для пакета может быть любым. Также может быть множество пакетов и каждый из них можно импортировать при необходимости.
Мы с вами уже работали со множеством классов, что были импортированы из других пакетных областей. Чтобы выполнить импорт необходимо прописать ключевое слово import
и далее указать откуда и что мы импортируем.
Пример:
import java.util.*;
В примере мы импортируем из пакетной области java.util полностью все классы. После импорта можно использовать все классы что созданы в этом пакете.
Область видимости
Область видимости - это область, в которой будет видна переменная. Если переменная создана внутри класса, то она видна повсюду в пределах классах. Если переменную создать внутри метода, то она видно исключительно внутри метода, где она была создана.
Что такое перегрузка методов?
С перегрузкой методов мы уже ни раз сталкивались, хотя ни разу их не создавали вручную. Пришло время это исправить.
За счёт перегрузки методов мы можем создать множество методов, что будут принимать разное количество параметров или разный тип данных и при этом будут иметь одно и то же имя.
Отличным примером является метод «print» или «println». В данный метод мы можем передавать различные типы данных, но при этом вывод информации происходит без каких-либо ошибок. Так происходит из-за того, что в классе System есть множество перегрузок методов «print» и «println».
Как создать перегрузку?
Чтобы создать перегрузку необходимо прописать метод с тем же именем, но при этом указать либо другое количество принимаемых параметров, либо другие типы данных для принимаемых параметров.
Пример:
public static String getInfo(String some) {
return some + "!";
}
public static int getInfo(int a, int b) {
return a + b;
}
Теперь при вызове метода компилятор будет понимать какие параметры были переданы и в зависимости от этого будут вызываться разные методы.
Модификатор static
В Java есть несколько модификаторов доступа. Про модификаторы public
, protected
и private
мы уже говорили. Теперь настал черед final и static.
Благодаря static мы можем создать переменную или метод, что будет принадлежать к классу в целом. Это означает, что можно обратиться к статическому методу или статическому полю напрямую через класс без создания объекта.
Это удобно и подобная схема реализована во многих встроенных классах Java.
Для примера возьмем класс Math (класс связан с математическими формулами). Через класс можно обратить к методам и к значениям без создания объекта на основе класса:
int i = -10;
int iAbs = Math.abs(i); // Будет 10
Для создания поля или метода с модификатором static необходимо дописать ключевое слово static перед типом данных:
public static String some = "Просто текст";
Модификатор final
Модификатор final
- предназначен для создания констант. Если прописать final перед типом данных для поля, то такое поле нельзя будет изменить в ходе выполнения программы:
final int a = 2;
a = 5; // Такого делать нельзя и будет ошибка
Если final прописать перед названием класса, то класс не сможет иметь классов-наследников.
Материалы для курса
Чтобы скачивать материалы к видеокурсам необходимо оформить подписку на сайт
Задание к уроку
Создайте класс, который не может иметь никаких классов наследников.
Решение задачи:
final class Boss {
// Этот класс не будет иметь наследников
}
Что такое пакетная область? Зачем она нужна и как её создать?
Пакетная область это область программы, в которой находятся все классы для конкретного проекта. При помощи пакетной области компилятор и среда разработки понимает какие классы существуют в программе и правильно обрабатывает работу с ними. Создается такая область в самом начале при создании проекта.
Получить остальные домашние задания можно после подписки на проект
Большое задание по курсу
Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца
Также стоит посмотреть