Пакеты - служат для организации классов. А также, распределение классов по пакетам позволяет избежать совпадения имён классов в разных проектах. Называют пакеты по обратной DNS нотации:
com.example.head
Если запускающий класс (тот, который содержит метод main) должен использовать классы, которые находятся в других пакетах, то их нужно импортировать:
import com.example.head.class1
Уровни доступа к данным. Классы, методы и переменные могут иметь разные уровни доступа:
Final:
com.example.head
Если запускающий класс (тот, который содержит метод main) должен использовать классы, которые находятся в других пакетах, то их нужно импортировать:
import com.example.head.class1
Уровни доступа к данным. Классы, методы и переменные могут иметь разные уровни доступа:
- private - доступ только внутри заданного класса
- protected - доступ внутри класса и всех сабклассов
- public - доступ из любого места
- package - доступ по умолчанию, только внутри данного пакета
Final:
- final метод не может быть переопределён
- final класс не может содержать сабклассы, т.е. его нельзя наследовать
- final переменная - значение ей можно присвоить только один раз
- final также можно включить внутрь обработчика ошибок
Когда программа идёт в продакшн - то нужно постараться как можно больше всего сделать final. Быстродействие будет лучше.
Основные признаки, по которым можно вычислить объектно-ориентированность языка программирования:
- наследование
- инкапсуляция
- полиморфизм
Наследование позволяет не копипастить один и тот же код многократно из класса в класс.