JavaRush /Курсы /Java Syntax /Пакеты (packages)

Пакеты (packages)

Java Syntax
5 уровень , 2 лекция
Открыта

— Привет, Амиго! Сегодня я расскажу тебе про пакеты.

— Файлы в компьютере группируются по папкам. Классы в Java (а каждый класс лежит в отдельном файле) группируются по пакетам, которые являются папками на диске. Ничего принципиально нового. Но есть два замечания

Первое. «Полным уникальным именем класса» является «имя пакета» + «имя класса». Примеры:

Полное уникальное имя Имя пакета Имя класса
java.io.FileInputStream java.io FileInputStream
java.lang.String java.lang String
java.util.ArrayList java.util ArrayList
org.apache.tomcat.Servlet org.apache.tomcat Servlet
Cat отсутствует Cat

— Полное имя класса всегда уникально!

— Каждый раз писать длинное имя, например java.util.ArrayList, очень неудобно. Поэтому в Java добавили возможность «импортировать классы». В своем коде ты можешь пользоваться коротким именем других классов, но ты должен в начале своего класса явно указать, какой именно класс будет использоваться.

— А как это сделать?

— Делается это конструкцией вида «import java.util.ArrayList;»

— В начале класса, сразу после объявления package, ты можешь указать какой именно класс скрывается за ArrayList, который ты используешь у себя в коде.

— Зачем такая сложность? Что могут быть классы с одинаковыми именами?

— Да, в разных пакетах могут лежать классы с одинаковыми именами. Но мы не можем импортировать в наш класс два класса с одинаковыми именами, поэтому к одному из них придётся обращаться по полному имени.

— Вот еще одна аналогия. У тебя в коллективе есть Серега и никаких проблем с общением – все знают кто это. Но если бы их было трое, то чтобы их различать пришлось бы использовать полные уникальные имена.

Второе. Лучше всегда класть классы в пакеты, а не в корень папки src. Когда классов мало, это ещё не представляет проблему, но когда классов много – очень легко запутаться. Поэтому всегда создавай классы только в пакетах.

В Java принято давать классам и пакетам осмысленные имена. Многие компании выпускают свои библиотеки (набор классов) и, чтобы не было путаницы, называют пакеты этих классов по имени компании/сайта:

Имя пакета Имя компании/проекта
org.apache.common
org.apache.tomcat
org.apache.util
Проект «Апач»
com.oracle.jdbc Компания «Oracle»
java.io
javax.servlet
Компания Sun, проект Java
com.ibm.websphere Компания «IBM», проект WebSphere
com.jboss Проект «Jboss»
Комментарии (545)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
23 июня 2024
что то я не понимаю разницы((( на первый взгляд описанный метод хранения классов полностью соответствует системе хранения файлов на диске: есть файл с именем, он храниться в папках (с неким уровнем вложений) есть класс который храниться в пакетах с некоторым уровнем вложений. вопрос в сопоставлении : возможно ли что класс находящийся в пакете вложенном в пакет окажется в одной папке с классом находящимся в пакете уровнем выше? т.е . пакет это виртуальная папка ? или все таки реальная?
Кирилл Уровень 30
11 октября 2024
из лекции, уникальное имя класса: java.util.ArrayList Это значит, что класс ArrayList лежит в пакете util который лежит в пакете java, а для операционной системы, той же windows, это значит что файл с названием ArrayList с расширением java(ArrayList.java) лежит в папке с названием util которая лежит в папке java. Т.е. java называет пакетом то, что в операционной системе называется папка и создавая пакет в java мы создаём папку на диске.
15 ноября 2021
41. Грызу потихоньку. Но даётся пока с трудом. Особенно классы и объекты. Нет понимания. Суть не ухвачу.
Demetria Уровень 22
11 января 2022
Главное, не сдавайтесь! Дальше будет легче
11 января 2022
Благодарю! Порой посещают такие мысли. Но пока ползу понемногу.
RazdolbayZateynik Уровень 28 Expert
8 февраля 2024
ну я бы не сказал что дальше будет легче, там ооп, исключения, многопоточка...
Віктор Шпильовий Уровень 3 Expert
8 ноября 2021
40! Хто старший?)))
Elena Уровень 2
21 июля 2022
52🙈
Сергей Жирков Уровень 1
2 октября 2021
Интересный вопрос про именование пакетов в java: Имена пакетов в Java в единственном или множественном числе?
иван Уровень 6
15 июня 2022
45))
Jonnius Уровень 7
24 апреля 2021
что за папка упомянута в "Лучше всегда класть классы в пакеты, а не в корень папки src" ? Вероятнее всего папка в проекте в Идее, но это надо кмк озвучить явно. А как быть если пакет вообще лежит в отдельном месте на диске ПК? копируем каждый раз в src ?
Mo-Guan Shan Уровень 5
22 июля 2021
Вряд ли вам нужен хаос в ресурсах, поэтому да, собираем все в одну папочку src, внутри которой будут папки с файлами (где лежат классы).
Andrei Уровень 7
13 октября 2021
Папка src (от англ. source) предназначена для хранения файлов с исходным кодом. Вернее сказать, для хранения других папок(пакетов) где находится файлы с исходным кодом. Папка src создается автоматически IDEA, при создании нового проекта. Файлы можно создавать прямо в папке src, но это считается плохим тоном. Пакеты
Ultron Уровень 4 Expert
29 декабря 2023
Когда создаешь проект там автоматический будет папка src. И внутри src > пакеж > класс.java я не на 100% уверен если что)) если есть ошибка буду рад знать
Александр Уровень 21
14 апреля 2021
Мне 45, работаю программистом уже 25 лет практически. Со школы в компьютерах (представляете какие они тогда были). На Яве под Андройд есть несколько проектов в работе. Сюда пришел ради качественной подачи материала + сын хочет тоже научиться, вот на себе испытываю, мне нравится. Задачки отвлекают немного от основной работы. Новичкам скажу - работы непочатый край, главное проникнитесь, поймите тему с объектами. Найдете себя, это очень интересно.
Антон Уровень 8
25 февраля 2021
мне тоже 32 но я уверен что все зависит исключительно от человека.Кто хочет тот добьется!!!
Aleksandr Gorohov Уровень 28
24 марта 2021
Мне 31, фора есть)))))
Ильнур Уровень 5
6 апреля 2021
Мне 33. Даже "пенсионеры" осваивают Java и мы прорвемся.
7 апреля 2021
Мне 29, будет 30 через 4 дня)) Согласен.
Виталий Уровень 11
11 апреля 2021
мне 37, молодежь! а вы же в садике еще должны быть! кто вас выпустил????
Eugeny Antonov Уровень 8
19 мая 2021
Я привык работать в молодёжных коллективах. Мне 47.
Bill Уровень 17
14 июля 2021
Держимся господа! Начал в начале ноября 20г, в марте расслабился и бросил, сейчас наверстываю, скажу так - не бросайте, а учитесь, пусть по чуть-чуть, сейчас ой, как тяжело наверстывать! А ведь мне - 45), но главное это мозг, он либо есть, либо нет! А возраст....кому какое дело сколько тебе лет!
Татьяна Гукова Уровень 19
27 января 2021
Учиться и меняться никогда не поздно...все об этом знают... Но, внутри нас всегда есть заложенный страх, что не получиться. Я слишком... молодой, старый, нет опыта, слишком много опыта, долго переучивать... и еще много всего, что нас самих ограничивает. Мы сами для себя самые строгие судьи... Мы лучше других знаем все свои "слабые места", а значит и наша критика в собственный адрес попадает точно в цель, мы знаем куда бить. В начале этого года я прочитала интересную фразу. Не нужно брать себя в руки, иногда нужно взять себя на ручки. Я это интерпретировала, как то, что в себя нужно поверить. Только по настоящему. Что ты сможешь... Выучить джаву, устроиться разработчиком, получать от жизни удовольствие.... и многое другое. Позволь себе быть тем кем ты хочешь, в не зависимости от возраста Таня 37, из ТыжАналитиков и ТыжОдинесников :)
hidden #2508088 Уровень 10
19 января 2021
а я думал я старый!!! мне 33.
Ильнур Уровень 5
6 апреля 2021
анлогично
Romanya Уровень 33
22 декабря 2020
Вы чего друг друга тут хвалите и подбадриваете!?!? Думаете вакансий Java Junior много на рынке труда? Ну конечно. Мы тут с вами все потенциальные конкуренты, будем бороться за кусок хлеба на этом поприще. Отдельно обращение к возрастной категории: мотивация это конечно хорошо, но вы конкурируете с ребятами кто программирует со школы занимается этим в универе и готов работать за идею ибо не имеет кредитов детей и жен. Мотивируйся хоть за мотивируйся, а против законов рынка сложно будет переть.
Service Plus Уровень 5
10 января 2021
Слишком слабо что бы остановить нас😄
Алексей Уровень 6
21 января 2021
Хм. Но есть один момент. Нередки случаи, когда компания выбирает из двух кандидатов человека из "возрастной категории" (как вы выразились), нежели молодого выпускника вуза. При прочих равных. На это есть причины. Жизненный опыт, который позволяет лучше выстраивать отношения с людьми, а это диктует атмосферу в команде. Второе - в любой работе мало знать саму работу, необходимо уметь работать. Это не одно и то же. И это приходит со временем. Третье - наличие кредитов-детей-жен зачастую является плюсом для работодателя, потому что такому работнику некогда херней заниматься, ему надо пахать за троих. Такие более стабильны и надежны. Есть и четвертое и пятое и т.д. Так что, если уж вы и имеете целью демотивировать "возрастных", то используйте другие аргументы кроме возраста.
Romanya Уровень 33
21 января 2021
Цели демотивировать не имею. Лишь рекомендую снять розовые очки они разбиваются стеклом во внутрь. 1) Про выстраивание отношений. Разработчик это одна из немногих профессий где вообще не интересуются коммуникативными навыками. 2) Возможно вы правы. 3) Очень спорно работодатели разные бывают. Алексей вот вы пишете чуть ниже что вам 42 года. Но на вашем аватаре в JavaRush. Явно молодой парнишка не старше 25. Вы же молодой совсем, что ж вы тут "возрастных" баламутите.
Алексей Уровень 6
22 января 2021
Ну не буду превращать все в спор по пунктам, уточню лишь, что хотел сказать в общем и целом то, что вы написали в 3-ем пункте. И то что зачастую не возраст имеет решающее значение. Я сам как работодатель и человек с опытом в бизнесе полтора десятка лет, знаю о чем говорю. А вот за последний абзац отдельное спасибо!😂 На фото мне 39 лет. А в апреле этого года исполнится 43. Кстати, в апреле же должен родится 2-й внук😀. Я буду уже дважды дедушка, так что имею право "баламутить возрастных".🧐 А так да, когда мне было 35, мне все давали не больше 25-и. Генетика.
Алексей Уровень 6
22 января 2021
Хочу обратить внимание на один факт. Есть проект, на котором обучают java- разработке. По принципу менторства. Название писать не буду, захотите сами найдете в интернете. Так вот их особенность в том, что обучают они в течение 7-ми месяцев совершенно бесплатно! А после трудоустройства вы потом отчисляете им проценты от зарплаты пару лет. Я сейчас не рекламирую, сам учусь здесь, а не там. Суть в том, что люди очень четко понимают, что ничего не заработают, если не трудоустроят человека на максимально большую зарплату. Так вот у них верхняя возрастная планка на момент поступления, внимание, 54 ГОДА! Делайте выводы.
Justinian Уровень 41 Master
9 февраля 2021

Разработчик это одна из немногих профессий где вообще не интересуются коммуникативными навыками.
😂 до слез. Хотя, наверное так и было. Лет 50 назад, когда один программист мог создавать что-то. Но последние 20-30 лет, все "немножко" по другому. Насчет возраста, я вообще не видел разницы честно говоря. Джуны в возрасте и джуны-студенты в одинаковых условиях. Первые дисциплинированы, ответственны, заточены на результат, имеют навыки и качества которые могут помогать как в учебе и работе, так и в поиске работе. Джуны студенты безусловно более энергичны, но если работодатель брал бы по критерию "энергичность", то в программисты набирали в детском саду, вот где неумная энергия. Работодателю нужны навыки. Поэтому что те кому 20, что те кому 40 учатся бок-о-бок на тех же ресурсах, по тем же методикам, и для работодателя они равноценны. Судить будут по технавыкам.
Justinian Уровень 41 Master
9 февраля 2021

Суть в том, что люди очень четко понимают, что ничего не заработают, если не трудоустроят человека на максимально большую зарплату.
таких проектов очень много, я с полдесятка знаю. Еще не встречал неразводняка, идея гениальная, варить деньги на неуверенных людях. Они как правило не берут с нуля, поскольку они не хотят тратить время и ресурсы на обучение других. Они ищут тех, кто сам бы уже и так смог найти работу, но по ряду причин не уверен в себе, робко попробовал и не получилось, а то и вовсе даже не пробовал. Они таких находят, садят на жесткие обязательства несмотря ни на что выплатить им приличный процент от зп, который может достигать суммарно тысячи долларов. И...и все. Периодически пинают "иди на работу", может копипасты выдают, может какие-то воркшопы или лекцию от скуки прочитают. Бизнес-идея гениальная, но моральная сторона конечно хромает на три ноги, найди слабого, безвольного и сдери с него три шкуры. Такой себе, налог на неуверенность, санитары леса прям. Но..как говорится, наивные люди не переведутся, а значит любители легкого заработка всегда останутся при деле.
Anonymous #2379257 Уровень 14
14 марта 2021
Возможно из-за вашего молодого возраста - вы мыслите узко — учить программирование чтобы стать джуном или сеньором это не есть цель для многих здесь в возрасте. Ну если даже так - почему вы уверены что то чему вы обучились в школе или универе будет актуально на момент приема на работу? Возможно эти знания уже устареют. И много как раз таки зависит от опыта предыдущей работы, и от самого коллектива, если в команде всем за 30 — захотят ли они брать 20 летнего джуна?
Anonymous #2379257 Уровень 14
11 июля 2021
Я знаю за какой проект вы говорите, но там фишка в массовости, из 10 человек - хотя бы один трудоустроится а значит: они получат неплохой профит.
Ян Уровень 24
1 октября 2021
В принципе частично согласен, хотя и не в целом. Про молодняк добавлю, что в какой-то степени это стереотип, про "работать за идею/печеньку". Это лишь в начале они милые и скромные. Если смотреть на шаг вперёд (что наверняка делает работодатель), то всё уже не так мило, молодняк набираясь опыта, но имея кучи лет в запасе, может стать опасно-беспечным. И немало видел молодняка которые в плане запросов по з.п нынче наглее возрастных, многие нынче на понтах, им только окрылиться надо. Молодняк легко может соскочить на другую работу, вся жизнь впереди, они легко скачут. И мало нынче фриков которые будут за копейки за идее постоянно сидеть. Это они такие пока без опыта, или пока с ВУЗ совмещают, это же очевидно. А через годика 2 его можно уже не узнать будет (а до тех пор он скромный, но и гипер пользы не несёт из-за отсутствия опыта, так что тоже не особо выгода видна). Да и знал я пару таких, шли из-за модности, им и учиться было не охото. Не все там кто учиться какие-то юные дарования (стереотип - молодой, за еду готовый, сильный и очень умный). А на деле на форуме "Киберфорум" таких толпы которые задают тупые вопросы чтоб за них код написали ибо им что-то там сдать надо, а он ни бум-бум. А вообще в конечном счёте, я считаю всё сводится лишь к тому интересно это или нет. И искренний ли это интерес или натянутый (самообман) из-за розовых очков (вот тут согласен, это относится ко всем возрастам, молодняк тут точно также можно рога себе обломать).