Как импортировать классы из «родительского» каталога?
Господа, прошу помощи. Что нужно прописать в import класса PopMusic (рис.2), чтобы из этого класса появился доступ к классам и интерфейсу в «родительском» каталоге (на уровень выше) ? Спасибо.
Отслеживать
задан 30 авг 2020 в 20:24
17 4 4 бронзовых знака
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
К сожалению, импорт класса из безымянного пакета невозможен.
Аналогичные обсуждения в английской версии:
- How to access java-classes in the default-package?
- Import package with no name Java
Отслеживать
ответ дан 30 авг 2020 в 21:19
2,036 1 1 золотой знак 9 9 серебряных знаков 12 12 бронзовых знаков
Это теоретически возможно, но только через reflection API.
Поэтому, если у вас есть доступ к структуре, то лучше переместить файл(класс) из дефолтного в «именованный» пакет и импортировать его.
Отслеживать
ответ дан 29 янв 2021 в 10:28
1,311 2 2 золотых знака 8 8 серебряных знаков 17 17 бронзовых знаков
- java
- импорт
- package
-
Важное на Мете
Связанные
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как импортировать класс в класс Main?
- Java
- +2 ещё
Почему localhost:8080 всегда выдает пустую страницу?
- 1 подписчик
- 3 минуты назад
- 1 просмотр
- Java
- +1 ещё
Как добавить записи в две таблицы в Hibernate?
- 1 подписчик
- 18 часов назад
- 10 просмотров
- Android
- +2 ещё
Почему FindLibrary выдает 0x0?
- 1 подписчик
- вчера
- 61 просмотр
- Java
- +1 ещё
Как POJO влияет на производительность приложения?
- 1 подписчик
- 26 окт.
- 119 просмотров
- Java
- +1 ещё
Передача ссылки на TG зная только chatId на Java?
- 1 подписчик
- 26 окт.
- 58 просмотров
- Java
Как сделать задание на Java?
- 1 подписчик
- 25 окт.
- 145 просмотров
- Java
Как добавить jnativehook в проект в intellij IDEA?
- 1 подписчик
- 24 окт.
- 43 просмотра
- Java
- +1 ещё
Как в зависимости от значения вставлять разные ссылки в Thymeleaf?
- 1 подписчик
- 22 окт.
- 42 просмотра
- Java
Как сделать методы класса доступными только для одного класса?
- 1 подписчик
- 21 окт.
- 103 просмотра
- Java
- +1 ещё
Как считать данные с файла который расположен во внешнем хранилище анроид java?
- 1 подписчик
- 21 окт.
- 30 просмотров
от 200 000 ₽
от 180 000 до 350 000 ₽
Goodt • Екатеринбург
от 20 000 до 30 000 ₽
29 окт. 2023, в 12:59
20000 руб./за проект
29 окт. 2023, в 12:42
2000 руб./за проект
29 окт. 2023, в 12:42
5000 руб./за проект
Минуточку внимания
Присоединяйтесь к сообществу, чтобы узнавать новое и делиться знаниями
- Как лучше оформить такую галерею?
- 2 подписчика
- 0 ответов
- 2 подписчика
- 0 ответов
- 4 подписчика
- 1 ответ
- 4 подписчика
- 2 ответа
- 2 подписчика
- 0 ответов
- 2 подписчика
- 0 ответов
- 2 подписчика
- 1 ответ
- 2 подписчика
- 1 ответ
- 2 подписчика
- 1 ответ
- 2 подписчика
- 0 ответов
Как импортировать свой класс в java
Как правило, в Java классы объединяются в пакеты. Пакеты позволяют организовать классы логически в наборы. По умолчанию java уже имеет ряд встроенных пакетов, например, java.lang , java.util , java.io и т.д. Кроме того, пакеты могут иметь вложенные пакеты.
Организация классов в виде пакетов позволяет избежать конфликта имен между классами. Ведь нередки ситуации, когда разработчики называют свои классы одинаковыми именами. Принадлежность к пакету позволяет гарантировать однозначность имен.
Чтобы указать, что класс принадлежит определенному пакету, надо использовать директиву package , после которой указывается имя пакета:
package название_пакета;
Как правило, названия пакетов соответствуют физической структуре проекта, то есть организации каталогов, в которых находятся файлы с исходным кодом. А путь к файлам внутри проекта соответствует названию пакета этих файлов. Например, если классы принадлежат пакету mypack, то эти классы помещаются в проекте в папку mypack.
Классы необязательно определять в пакеты. Если для класса пакет не определен, то считается, что данный класс находится в пакете по умолчанию, который не имеет имени.
Например, создадим в папке для исходных файлов каталог 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:\java\study\Program.java).
Для компиляции выполним команду
javac study\Program.java
После этого в папке study появятся скомпилированные файлы Program.class и Person.class. Для запуска программы выполним команду:
java study.Program
Импорт пакетов и классов
Если нам надо использовать классы из других пакетов, то нам надо подключить эти пакеты и классы. Исключение составляют классы из пакета java.lang (например, String ), которые подключаются в программу автоматически.
Например, знакомый по прошлым темам класс 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 , поэтому мы можем его использовать без указания класса.
Как подключить класс в Java, все тонкости импорта класса
В Джава присутствуют стандарты, которые регламентируют правила написания информации о классе или «пакете класса».
Вот стандартный шаблон оформления описания:
p ackage;
public class
>
При этом необходимо помнить, что в описании наименования «пакета классов» обязано присутствовать сходство с описанием наименования папки классов, где расположена структура пакетов. Допустим , у нас присутствует такая строчка: «. \src\drop\codernet\mytasks.java», тогда она будет записана в таком формате:
package drop.codernet;
public class MyTasks
>
Импорт классов в Java
Импорт классов в Java — это действие, при котором программист заимствует классы из разнообразных «классовых пакетов», предварительно указав используемые «пакеты и классы» в собственном рабочем документе.
У классов в Джава присутствует такое понятие , как «полноценное уникальное наименование класса». Оно состоит из двух частей: «наименовании класса» и «наименовании классовых пакетов». Как правило, «полноценное название класса» может быть достаточно удлиненным , к примеру: «java.until.MyArrayList», где:
- «java.until» — название « классового пакета » ;
- «MyArrayList» — название самого класса.
Причем это не самое длинное «полноценное название класса». Ведь , когда в документе тысячи классов, а уникальное название обязано быть исключительно в единственном экземпляре, тогда н ес ложно догадаться, какие длинные названия могут присутствовать в разрабатываемом документе. Но печалит не длина названи я используемых классов, а то , что их постоянно нужно использовать в коде — это ужасно неудобно и долго. Чтобы упростить эту задачу , был придуман импорт класса в Java.
Импорт класса в Java открывает уникальную возможность применять укороченное название класса вместо удлиненного. Но для этого компилятору необходимо указать, какому «полноценному уникальному названи ю класса» идентично укороченное название, используемое программистом в собственной разработке программного обеспечения.
Рассмотрим небольшой программный скрипт:
package drop.codernet.mytasks.mytask01;
import java.util.ScannerList;
import drop.testing.distruct.specialist.MyArrayList;
public class MySolution
public static void main(Strings[] args)
ScannerList console = new ScannerList(Systems.in);
MyArrayList lists = new MyArrayList();
>
>
Если не применять импорт класса Java в вышеописанном программном скрипте, тогда его код будет примерно такого формата:
package drop.codernet.mytasks.mytask01;
public class MySolution
public static void main(Strings[] args)
java.util.ScannerList console = new java.util.ScannerList(Systems.in);
drop.testing.distruct.specialist.MyArrayList lists = new drop.testing.distruct.specialist.MyArrayList();
>
>
Заключение
Импорт класса в Java является доступным способом программиста применять в собственной разработке классовые инструменты из разнообразных сторонних классовых структур, а также сокращать «полноценные уникальные названия классов» до коротких и удобных названий. По сути, импорт класса в Джава — это способ писать код чище, практичнее и быстрее.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.