Рекомендуем, 2024

Выбор редакции

Разница между пакетами и интерфейсами в Java

Пакеты и интерфейсы действуют как контейнеры. Содержимое в пакетах и ​​интерфейсах может использоваться классами путем его импорта и реализации соответственно. Основное различие между пакетами и интерфейсами состоит в том, что пакет содержит группу классов и интерфейсов, тогда как интерфейс содержит методы и поля. Давайте изучим некоторые другие отличия с помощью сравнительной таблицы.

Сравнительная таблица

Основа для сравненияпакетыИнтерфейсы
основнойПакеты - это группа классов и / или интерфейсов вместе.Интерфейсы - это группа абстрактных методов и константных полей.
Ключевое словоПакеты создаются с помощью ключевого слова «Пакет».Интерфейс создается с помощью ключевого слова «Интерфейс».
Синтаксиспакет имя_пакета;
открытый класс class_name {
,
(тело класса)
,
}
имя интерфейса
объявление переменной;
объявление метода;
}
ДоступПакет может быть импортированИнтерфейс может быть расширен другим интерфейсом и реализован классом.
Ключевое слово доступаПакеты могут быть импортированы с помощью ключевого слова import.Интерфейсы могут быть реализованы с использованием ключевого слова "Implement".

Определение пакетов

Пакеты являются коллекцией или группами различных классов и интерфейсов. Классы в пакетах связаны друг с другом в некоторой области или наследованием. Вы также можете создать свой пакет и использовать его для своей программы.

Создание пакета

Для создания пакета просто выполните следующие шаги.

  1. Откройте файл и затем объявите имя пакета в верхней части файла, например, [package package_name; ] имя пакета - это имя, которое вы хотите дать пакету.
  2. Затем вы определяете класс, который хотите поместить в пакет, и помните, что вы объявляете его общедоступным.
  3. Сохраните файл как файл .java, а затем скомпилируйте файл, после чего получите «.class» для этого файла.
  4. Для создания пакета для этого файла используется команда «javac -d. file_name.java. Вы можете видеть, что пакет создан с файлом «.class» в текущем каталоге. Чтобы поместить его в родительский каталог, используйте «javac -d., имя_файла.java ».
  5. Вы также можете создать подпакет, объявив имя подпакета как [package package_name1. package_name2; ] в верхней части файла.
 пакет Mypackage; открытый класс myclass {public void displayMypackage () {system.out.println ("метод displayMypackage класса myclass пакета Mypackage"); } 

Использование пакета

Пакеты, созданные или доступные в каталоге, можно использовать в программе с помощью оператора импорта. Ключевое слово, используемое для импорта любого пакета в вашей программе, - «импорт». Оператор импорта может быть написан двумя способами, или вы можете сказать, что есть два способа получить доступ к любому пакету. Во-первых, если вы хотите использовать определенный класс из пакета, за ключевым словом «import» следует имя пакета, за которым следуют оператор точки и имя класса, которое вы хотите использовать из пакета. Во-вторых, если вы хотите использовать много классов, содержащихся в пакетах, то после ключевого слова import следует имя пакета, за которым следуют точка и оператор «*».

 импортировать имя_пакета. class_name; или импортировать имя_пакета. *; 

В приведенном выше коде вы можете увидеть знак *, который указывает, что второй метод импортирует все классы, содержащиеся в пакетах.

Теперь давайте рассмотрим использование пакета с примером.

 импорт Mypackage. myclass {class TestMypackage {public static void main (string args []) {myclass ob1 = new myclass (); ob1.displayMypackage (); }} // метод вывода displayMypackage класса myclass пакета Mypackage. 

В приведенном выше коде класс TestMypackage импортировал пакет Mypackage и использовал его метод displayMypackage ().

Определение интерфейса

Интерфейс является своего рода классом, но отличается в том смысле, что методы, объявленные в интерфейсе, являются абстрактными, что означает, что методы только объявлены, но не определены. Поля в интерфейсе всегда являются общедоступными, статическими, окончательными. Поля должны быть инициализированы во время объявления. Методы, объявленные интерфейсом, определяются классом, который реализует этот интерфейс в соответствии с его требованиями. Так как методы в интерфейсе не выполняют никаких функций, нет смысла создавать какие-либо объекты интерфейса. Следовательно, ни один объект не может быть создан для интерфейса.

Интерфейс также может наследовать другой интерфейс, но класс, наследующий такой интерфейс, должен также реализовать все методы унаследованного интерфейса. Поскольку поля инициализируются во время их объявления в интерфейсе, поэтому нет необходимости в конструкторе в интерфейсе, следовательно, интерфейс не содержит никакого конструктора. Давайте посмотрим на пример создания и использования интерфейса.

 Площадь интерфейса {float pi = 3.14; float find_area (float a, float b) {} класс Circle реализует Area {float find_area (float a, float b) {return (pi * a * a); } Класс Shapes {public static void main (string args []) {Area A = new Area (); Круг C = новый круг (); А = С; float F = Площадь. find_area (10, 10); system.out.println ("Площадь круга равна:" + F); } 

В приведенном выше коде мы создали интерфейс Area, а класс Circle реализовал интерфейс Area. Поле «pi» было инициализировано в интерфейсе во время его объявления. Класс Circle определил абстрактный метод области класса в соответствии с его требованием.

Ключевые различия между пакетами и интерфейсами в Java

  1. Пакет - это группа классов и интерфейсов, а интерфейс - это группа абстрактных методов.
  2. Пакет создается с использованием пакета ключевых слов , тогда как интерфейс создается с использованием интерфейса ключевых слов.
  3. Если должен использоваться класс или интерфейс внутри пакета, пакет должен быть импортирован, пока должен быть реализован интерфейс.

Заключение:

Оба пакета и интерфейс являются контейнерами. Пакет уменьшает размер кода, так как мы просто импортируем используемый класс вместо того, чтобы снова его определять. Принимая во внимание, что интерфейс уменьшает путаницы, возникающие при множественном наследовании, потому что в случае множественного наследования наследующий класс не должен решать, какое определение какого метода он должен наследовать, вместо этого он определяет свое собственное.

Top