Как импортировать пакет в java
Чтобы импортировать пакет в Java , вам нужно использовать ключевое слово import в начале файла, перед объявлением класса.
import java.util.ArrayList; import java.util.List; public class MyClass // код класса >
Здесь мы импортируем пакеты java.util.ArrayList и java.util.List , которые позволяют нам использовать классы ArrayList и List внутри класса MyClass .
Если вам нужно импортировать все классы из пакета, вы можете использовать символ звездочки * .
import java.util.*; public class MyClass // код класса >
Здесь мы импортируем все классы из пакета java.util , что дает нам возможность использовать любой класс в этом пакете внутри класса MyClass .
Как подключить класс из другого пакета в другом файле?
Как подключить класс из другого пакета?
то есть 2 пакета: -main -test в main пакете класс(файл с классом). Что в нем нужно.

Как подключить класс на C#, объявленный в другом файле?
Просто раньше с Visual Studio не работал.
Как подключить функцию с одного файла в другом файле?
собственно вот вопрос. есть один файл. там функция zz(); которую надо запустить в другом файле. .

Как подключить класс из другого проекта?
Доброго времени суток, каким образом можно подключить класс из другого проекта? К примеру есть.
1240 / 853 / 264
Регистрация: 02.04.2009
Сообщений: 3,225
Сообщение от inquisitor 
подключить класс из другого пакета
import my.package1.* import my.package2.MyClass1
Регистрация: 22.12.2015
Сообщений: 2,097
Сообщение от Kukstyler 
подключить класс из другого пакета
Как сделать валидаацию для переменных
в частности для ввода первого и второго римского числа.Ибо если не те символы то сразу выходиз программы.А мне нужно.что бы один вывилось сообщение что не те символы и снова запросить у пользователя верные символы.
Знаю намудрил с кодом
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
inquisitor, покажи мне, какой ввод от пользователя ты ожидаешь (примеры) и какой ввод считать некорректным
Регистрация: 22.12.2015
Сообщений: 2,097
Сообщение от ArtemFM 
inquisitor, покажи мне, какой ввод от пользователя ты ожидаешь (примеры) и какой ввод считать некорректным
Там где ввод первого и второго римского.Это строка символов. Она далее сверяеться с массивом.И если символы е совпадают то программа выдает ошибку и все,а хотелось бы что бы был снова запрос на ввод этих же строк пока они не будут введены верно.
Добавлено через 13 минут
Пожалуйста, введите второе римское число
MMCCCDCD
Exception in thread «main» java.lang.ArrayIndexOutOfBoundsException: Index 13 out of bounds for length 13
at com.company.rimcalk.RometoArab(rimcalk.java:114)
at com.company.Main.main(Main.java:22)
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
типа такого:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
import java.util.Scanner; public class Task03 { private static final char[] SYMBOLS = {'I', 'V', 'X', 'L', 'C', 'D', 'M'}; private static String pattern = getPattern(); public static void main(String[] args) { Scanner in = new Scanner(System.in); boolean correct = false; while (!correct) { System.out.print("Input roman number: "); String line = in.nextLine().trim().toUpperCase(); if (!(correct = isRomanNumerals(line))) { System.out.println("ERROR: Incorrect roman number. Try again."); } } } private static boolean isRomanNumerals(String line) { return line != null && line.matches(pattern); } private static String getPattern() { StringBuilder sb = new StringBuilder("["); for (char symbol : SYMBOLS) { sb.append(symbol); } return sb.append("]+").toString(); } }
только тут ещё нужно проверять правильность расстановки этих самых цифр римских. Но, думаю, суть тебе будет понятна
Регистрация: 22.12.2015
Сообщений: 2,097
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
while (!correct) { System.out.println("Input roman number1: "); String line1 = in.nextLine().trim().toUpperCase(); System.out.println("Input roman number2: "); String line2 = in.nextLine().trim().toUpperCase(); if (!(correct = isRomanNumerals(line1) && !(correct = isRomanNumerals(line2) )) { System.out.println("ERROR: Incorrect roman number. Try again."); } else { int first = romik.RometoArab(f); } } }
Добавлено через 55 минут
Хочу в цикле проверить запрос на ввод математической операции +/*/
почему на блоке IF застряло.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
while (!correct3) else { System.out.println(" Вывожу ответ с результатом"); int value = rimcalk.Acalc(line3, first, sec); String roman = rimcalk.Roman(value); System.out.println(" Вот ответ римскими цифрами "); System.out.println(roman); System.in.read(); } }
Пакеты Java – назначение и использование
Пакеты Java – это механизм для группировки классов, которые связаны друг с другом, в одну и ту же «группу» (пакет). Когда проект становится больше, например, приложение или API, полезно разделить код на несколько классов, а классы – на несколько пакетов. Тогда становится легче выяснить, где находится определенный класс, который вы ищете.
Пакет подобен каталогу в файловой системе. На самом деле на диске он является каталогом. Все исходные файлы и файлы классов, принадлежащих одному и тому же пакету, находятся в одном каталоге.
Могут содержать подпакеты. Таким образом, могут составлять так называемую структуру пакета, похожую на структуру каталогов. Это дерево пакетов, подпакетов и классов внутри этих классов. Организована как каталоги на вашем жестком диске или как каталоги внутри zip-файла (JAR-файлы).
Вот скриншот примера структуры:

Вверху вы видите каталог с именем “src”. Это исходный корневой каталог. Это не сам пакет. Внутри этого каталога все подкаталоги соответствуют пакетам. Таким образом, «коллекции», «com», «параллелизм» и т. д. – это все пакеты (которые также являются каталогами на диске). На снимке экрана выше они показаны значком папки.
Расширено два пакета подуровня, чтобы вы могли видеть классы внутри. Классы проиллюстрированы с помощью маленького синего круга с буквой C внутри, на скриншоте выше.
Полный путь к подпакету – это его имя со всеми именами пакетов-предков, разделенных точками. Например, полный путь к «навигационному» подпакету:
com.blog.navigation
Точно так же полное имя класса включает имя его пакета. Например, полное имя класса «Page»:
com.blog.navigation.Page
Создание структуры
Чтобы создать пакет, вы должны сначала создать корневой каталог на вашем жестком диске. Он сам по себе не является частью структуры пакета. Содержит все исходные коды, которые должны войти в структуру.
Создав исходный корневой каталог, вы можете начать добавлять в него подкаталоги. Каждый подкаталог соответствует пакету. Вы можете добавить подкаталоги в подкаталоги, чтобы создать более глубокую структуру.
Добавление классов
Чтобы добавить классы, вы должны сделать две вещи:
- Поместите исходный файл в каталог, соответствующий пакету, в который вы хотите поместить класс.
- Объявите этот класс как часть пакета.
Первый пункт довольно прост. Создайте корневой каталог источника и внутри него создайте каталоги для каждого пакета и подпакета рекурсивно. Поместите файлы классов в каталог, соответствующий пакету, в который вы хотите добавить его.
Когда вы поместили свой исходный файл в правильный каталог (соответствующий пакету, к которому должен принадлежать класс), вы должны объявить внутри этого файла класса, что он принадлежит этому пакету:
package com.blog.navigation; public class Page
Первая строка в приведенном выше коде – это то, что объявляет класс Page принадлежащим к com.blog.navigation.
Соглашения об именах
Пакеты всегда пишутся строчными буквами. В отличие от классов, где первая буква обычно является заглавной.
Чтобы избежать создания пакетов с такими же именами, как у других общедоступных, рекомендуется начинать иерархию с обратного доменного имени вашей компании. Например, поскольку доменное имя компании – blog.com, надо начать со структуры с именем com.blog. Другими словами, пакет верхнего уровня с именем com с подпакетом внутри называется blog.
Импорт
Если класс A должен использовать класс B, вы должны ссылаться на класс B внутри класса A. Если классы A и B находятся в одном и том же пакете, компилятор будет принимать ссылки между двумя классами:
public class B < public void doIt() < // do something. >>
public class A < public static void main(String[] args)< B theBObj = new B(); b.doIt(); >>
Если классы A и B находятся в одном и том же пакете, проблем с кодом выше нет. Однако, если класс A и B находятся в разных, класс A должен импортировать класс B, чтобы использовать его:
import anotherpackage.B; public class A < public static void main(String[] args)< B theBObj = new B(); b.doIt(); >>
Это первая строка в примере, которая импортирует класс B. В примере предполагается, что класс B находится в пакете с именем anotherpackage.
Если бы класс B находился в подпакете другого пакета, вам пришлось бы перечислить полный путь пакета и подпакета к классу B. Например, если бы класс B находился в пакете anotherpackage.util, то оператор import выглядел бы так:
import anotherpackage.util.B;
Импорт всех классов из другого пакета
Если вам нужно использовать много классов из определенного пакета, их импорт по одному приводит к большому количеству операторов импорта. Можно импортировать все классы, используя символ * вместо имени класса:
import anotherpackage.util.*;
Использование классов через определенное имя
Можно использовать класс из другого пакета, не импортируя его с помощью оператора импорта. Вы можете написать полное имя его, а не просто имя самого класса. Полное имя класса состоит из полного пути пакета до подкласса, содержащего класс, а также самого имени класса. Полное имя класса – это то, что вы написали бы в операторе импорта. Например:
anotherpackage.util.TimeUtil;
Вы можете использовать это полное имя класса для ссылки на класс TimeUtil внутри другого класса, например так:
public class A < public static void main(String[] args)< anotherpackage.util.TimeUtil timeUtil = new anotherpackage.util.TimeUtil(); timeUtil.startTimer(); >>
Пакетное разделение
Официального стандарта для этого нет, но есть два широко используемых метода.
Разделить на слои
Первый метод состоит в том, чтобы разделить классы после определения, к какому «слою» приложения они принадлежат. Например, ваше приложение может иметь слой базы данных. Тогда вы создадите пакет базы данных. Все классы, участвующие в обмене данными с базой данных, будут расположены в нем.
Разделить по функциональности приложения
Второй метод – разделить ваши классы в зависимости от того, к какой части функциональности приложения они принадлежат. Таким образом, если ваше приложение имеет функциональную область, которая рассчитывает пенсии, вы можете создать пакет с именем pension. Все классы, так или иначе участвующие в пенсионных расчетах, будут включены в него (или подпакеты, если число классов в пенсии станет большим).
В сочетании с доменным именем структура для пенсионного пакета будет:
com.jenkov.pension
Всего три пакета, два вложенных в другие.
Метод «деления по функциональности приложения» имеет тенденцию работать лучше, чем «деление по слоям», поскольку в вашем приложении растет число классов.
Вместо того, чтобы иметь фиксированное количество пакетов слоев, число которых продолжает расти, вы получаете растущее число пакетов функциональности приложения с меньшим количеством классов внутри.
Встроенные
Платформа поставляется с множеством встроенных пакетов. Они содержат классы для самых разных целей, которые часто нужны программистам, например, чтение и запись файлов с локального жесткого диска, отправка и получение данных по сетям и Интернету, подключение к базам данных и многое, многое другое.
Импорт пакетов в Java
Если вспомнить, что пакеты предлагают эффективный механизм изоляции различных классов друг от друга, то становится понятно, почему все встроенные классы Java хранятся в пакетах.
Ни один из основных классов Java не хранится в неименованном пакете, используемом по умолчанию. Все стандартные классы непременно хранятся в каком-нибудь именованном пакете.
А поскольку в самих пакетах классы должны полностью определяться по именам их пакетов, то длинное, разделяемое точками имя пути к пакету каждого используемого класса может оказаться слишком громоздким.

Следовательно, чтобы отдельные классы или весь пакет можно было сделать доступными, в Java внедрен оператор import.
После того как класс импортирован, на него можно ссылаться непосредственно, используя только его имя.
Оператор import служит только для удобства программирования и не является обязательным с формальной точки зрения для создания завершенной программы нa java.
Но если в прикладном коде приходится ссылаться на несколько десятков классов, то оператор import значительно сокращает объем вводимого исходного кода.
В исходном файле программы нa java операторы import должны следовать непосредственно за оператором package (если таковой имеется) и перед любыми определениями классов.
Оператор import имеет следующую общую форму:
