Как правило, в Java классы объединяются в пакеты. Пакеты позволяют организовать классы логически в наборы. По умолчанию java уже имеет ряд встроенных пакетов, например, java.lang , java.util , java.io и т.д. Кроме того, пакеты могут иметь вложенные пакеты.
Организация классов в виде пакетов позволяет избежать конфликта имен между классами. Ведь нередки ситуации, когда разработчики называют свои классы одинаковыми именами. Принадлежность к пакету позволяет гарантировать однозначность имен.
Чтобы указать, что класс принадлежит определенному пакету, надо использовать директиву package , после которой указывается имя пакета:
package название_пакета;
Как правило, названия пакетов соответствуют физической структуре проекта, то есть организации каталогов, в которых находятся файлы с исходным кодом. А путь к файлам внутри проекта соответствует названию пакета этих файлов. Например, если классы принадлежат пакету mypack, то эти классы помещаются в проекте в папку mypack.
Java. 02. Компиляция, запуск и создание JAR на примере простой программы
Классы необязательно определять в пакеты. Если для класса пакет не определен, то считается, что данный класс находится в пакете по умолчанию, который не имеет имени.
Например, создадим в папке для исходных файлов каталог study . В нем создадим файл Program.java со следующим кодом:
package study; public class Program < public static void main(String[] args) < Person kate = new Person(«Kate», 32); kate.displayInfo(); >> class Person < String name; int age; Person(String name, int age)< this.name = name; this.age = age; >void displayInfo() < System.out.printf(«Name: %s t Age: %d n», name, age); >>
Директива package study в начале файла указывает, что классы Program и Person, которые здесь определены, принадлежат пакету study.
Когда мы работаем в среде разработки, например, в Netbeans, то IDE берет на себя все вопросы компиляции пакетов и входящих в них файлов. Соответственно нам достаточно нажать на кнопку, и все будет готово. Однако если мы компилируем программу в командной строке, то мы можем столкнуться с некоторыми трудностями. Поэтому рассмотрим этот аспект.
Для компиляции программы вначале в командной строке/терминале с помощью команды cd перейдем к папке, где находится каталог study.
cd C:java
Например, в моем случае это каталог C:java (то есть файл с исходным кодом расположен по пути C:javastudyProgram.java).
Для компиляции выполним команду
javac studyProgram.java
После этого в папке study появятся скомпилированные файлы Program.class и Person.class. Для запуска программы выполним команду:
java study.Program
Импорт пакетов и классов
Если нам надо использовать классы из других пакетов, то нам надо подключить эти пакеты и классы. Исключение составляют классы из пакета java.lang (например, String ), которые подключаются в программу автоматически.
Как правильно разрабатывать Java приложение?
Например, знакомый по прошлым темам класс Scanner находится в пакете java.util , поэтому мы можем получить к нему доступ следующим способом:
java.util.Scanner in = new java.util.Scanner(System.in);
То есть мы указываем полный путь к файлу в пакете при создании его объекта. Однако такое нагромождение имен пакетов не всегда удобно, и в качестве альтернативы мы можем импортировать пакеты и классы в проект с помощью директивы import , которая указывается после директивы package:
package study; import java.util.Scanner; // импорт класса Scanner public class Program < public static void main(String[] args) < Scanner in = new Scanner(System.in); >>
Директива import указывается в самом начале кода, после чего идет имя подключаемого класса (в данном случае класса Scanner).
В примере выше мы подключили только один класс, однако пакет java.util содержит еще множество классов. И чтобы не подключать по отдельности каждый класс, мы можем сразу подключить весь пакет:
import java.util.*; // импорт всех классов из пакета java.util
Теперь мы можем использовать любой класс из пакета java.util.
Возможна ситуация, когда мы используем два класса с одним и тем же названием из двух разных пакетов, например, класс Date имеется и в пакете java.util , и в пакете java.sql . И если нам надо одновременно использовать два этих класса, то необходимо указывать полный путь к этим классам в пакете:
java.util.Date utilDate = new java.util.Date(); java.sql.Date sqlDate = new java.sql.Date();
Статический импорт
В java есть также особая форма импорта — статический импорт. Для этого вместе с директивой import используется модификатор static :
package study; import static java.lang.System.*; import static java.lang.Math.*; public class Program < public static void main(String[] args) < double result = sqrt(20); out.println(result); >>
Здесь происходит статический импорт классов System и Math. Эти классы имеют статические методы. Благодаря операции статического импорта мы можем использовать эти методы без названия класса. Например, писать не Math.sqrt(20) , а sqrt(20) , так как функция sqrt() , которая возвращает квадратный корень числа, является статической. (Позже мы рассмотрим статические члены класса).
То же самое в отношении класса System: в нем определен статический объект out , поэтому мы можем его использовать без указания класса.
Источник: metanit.com
Как подключить класс в Java, все тонкости импорта класса
В Джава присутствуют стандарты, которые регламентируют правила написания информации о классе или «пакете класса».
Вот стандартный шаблон оформления описания:
При этом необходимо помнить, что в описании наименования «пакета классов» обязано присутствовать сходство с описанием наименования папки классов, где расположена структура пакетов. Допустим , у нас присутствует такая строчка: «. srcdropcodernetmytasks.java», тогда она будет записана в таком формате:
Импорт классов в Java
Импорт классов в Java — это действие, при котором программист заимствует классы из разнообразных «классовых пакетов», предварительно указав используемые «пакеты и классы» в собственном рабочем документе.
У классов в Джава присутствует такое понятие , как «полноценное уникальное наименование класса». Оно состоит из двух частей: «наименовании класса» и «наименовании классовых пакетов». Как правило, «полноценное название класса» может быть достаточно удлиненным , к примеру: «java.until.MyArrayList», где:
- «java.until» — название « классового пакета » ;
- «MyArrayList» — название самого класса.
Причем это не самое длинное «полноценное название класса». Ведь , когда в документе тысячи классов, а уникальное название обязано быть исключительно в единственном экземпляре, тогда н ес ложно догадаться, какие длинные названия могут присутствовать в разрабатываемом документе. Но печалит не длина названи я используемых классов, а то , что их постоянно нужно использовать в коде — это ужасно неудобно и долго. Чтобы упростить эту задачу , был придуман импорт класса в Java.
Импорт класса в Java открывает уникальную возможность применять укороченное название класса вместо удлиненного. Но для этого компилятору необходимо указать, какому «полноценному уникальному названи ю класса» идентично укороченное название, используемое программистом в собственной разработке программного обеспечения.
Рассмотрим небольшой программный скрипт:
>
Если не применять импорт класса Java в вышеописанном программном скрипте, тогда его код будет примерно такого формата:
>
Заключение
Импорт класса в Java является доступным способом программиста применять в собственной разработке классовые инструменты из разнообразных сторонних классовых структур, а также сокращать «полноценные уникальные названия классов» до коротких и удобных названий. По сути, импорт класса в Джава — это способ писать код чище, практичнее и быстрее.
Подключение библиотек в Java
Библиотека — готовый набор классов и компонентов, который встраивают в программу, чтобы реализовать некий функционал. Например, в тысячах казуальных игр музыку можно проигрывать одним и тем же способом. Чтобы не тратить время на работу со звуком, программисту достаточно подключить подходящую библиотеку.
Подключение Джава-библиотек в Eclipse
Если вы пользуетесь средой разработки Eclipse, подключение библиотек в Java займёт у вас меньше минуты:
- Разворачиваем дерево проекта в Package Explorer и находим папку libs. Если её нет — создаем.
- Кладем нужный .jar в libs.
- В появившемся окне выбираем «копирование файлов» (copy files) и жмём OK.
- Обновляем проект: правый клик — «Refresh».
Классы подключены и готовы к вызову из нашей программы.
Подключение библиотек Java в Maven и Apache-Ant
Минус подключения библиотек через IDE в том, что для пересборки проекта на другой машине нужна та же среда. Чтобы не зависеть от среды, используют системы сборки Maven и Ant.
Чтобы «прикрутить» библиотеку к проекту Maven, нужно указать её среди зависимостей в файле pom.xml. С библиотекой может подтянуться еще несколько зависимостей, которые подключаются к этой библиотеке. В случае с jar этого не происходит.
Как будет выглядеть наш pom.xml:
xmlns_xsi=»http://www.w3.org/2001/XMLSchema-instance» xsi_schemaLocation=»http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd»> 4.0.0 ru.team.project test-app 1.0 dependency> Допустим, нам нужна Javassist для редактирования байткода. —-> org.javassist javassist 3.21.0-GA
Теперь при компиляции проекта библиотека войдет в конечный .jar-файл.
В Ant принцип схожий, но редактировать нужно файл build.xml. Путь к подключаемым библиотекам пишут с помощью тегов и . Сначала объясняем, где искать библиотеку:
«lib.dir» value=»lib»/> />
И далее передаём этот адрес тегу :
”my.classpath”/>
Как подключить Java-библиотеку вручную
Ваша IDE умеет подключать библиотеки, но как она это делает? Давайте посмотрим, что происходит на уровне файлов. Если библиотека написана на Джаве, её компоненты хранятся либо в архиве .jar, либо в исходниках .java.
Более сложный вариант с интеграцией библиотек на C++ пока рассматривать не будем.
Подключение jar-библиотек в Java
Если на компьютере только одна версия Джавы — всё просто. Чтобы подключить .jar, достаточно положить его в папку lib директории Java на жестком диске. Виртуальная машина при ближайшем запуске сама возьмет код из библиотеки.
Когда вы используете одновременно несколько версий Java-машины, раскладывать файлы библиотек для каждой из них утомительно. Лучше указать путь к нужным классам с помощью ключа -classpath.
Открываем терминал и пишем:
java -classpath ./classes ru.аuthor.libname.Main
ru.аuthor.libname.Main — наша библиотека
Точкой перед «/» отмечают текущую директорию.
Можно перечислить несколько библиотек, код из которых компилятор соберет в порядке их перечисления:
java -classpath ./classes;./lib/l1-0.1.jar;./lib/l2-1.5.jar ru. аuthor.libname.Main
Теперь вы умеете подключать библиотеки даже в нестандартной ситуации: когда не установлена IDE или нужно скорректировать очередность подключения.
Источник: gb.ru