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

Вибір Редакції

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

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

Діаграма порівняння

Основа для порівнянняПакетиІнтерфейси
ОсновнийПакети - це група класів та / або інтерфейсів разом.Інтерфейси - це група абстрактних методів і постійних полів.
Ключове словоПакети створюються за допомогою ключового слова "Пакет".Інтерфейс створюється за допомогою ключового слова "Інтерфейс".
Синтаксиспакет package_name;
public class class_name {
.
(тіло класу)
.
}
інтерфейс interface_name {
оголошення змінної;
декларація методу;
}
ДоступПакет можна імпортуватиІнтерфейс може бути розширений іншим інтерфейсом і реалізований класом.
Ключове слово доступуПакунки можна імпортувати за допомогою ключового слова "import".Інтерфейси можуть бути реалізовані за допомогою ключового слова "implement".

Визначення пакунків

Пакети - це колекція або групи різноманітних класів і інтерфейсів. Класи в пакунках пов'язані один з одним у певному обсязі або у спадок. Ви також можете створити свій пакет і використовувати його для своєї програми.

Створення пакета

Для створення пакета виконайте наступні дії.

  1. Відкрийте файл, а потім оголосіть ім'я пакета у верхній частині файлу, наприклад, [package_name; ] ім'я пакета - це ім'я, яке ви хочете надати пакунку.
  2. Далі, ви визначаєте клас, який ви хочете помістити в пакет, і пам'ятайте, що ви оголосите його публічним.
  3. Збережіть файл як файл .java, а потім скомпілюйте його, після чого для цього файлу буде отримано ".class".
  4. Для створення пакета для цього файлу використовується команда “javac -d. file_name.java. Ви можете бачити, що пакет створено з файлом ".class" у поточному каталозі. Щоб розмістити його в батьківському каталозі, використовуйте javac -d. . Команда file_name.java.
  5. Також можна створити підпакет, оголосивши ім'я підпакету як [пакет package_name1. package_name2; ] у верхній частині файлу.
 пакет Mypackage; public class myclass {public void displayMypackage () {system.out.println ("метод displayMypackage класу myclass пакета Mypackage"); } 

Використання пакета

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

 імпортувати ім'я package_name. class_name; або імпортуйте ім'я package_name. *; 

У наведеному вище коді можна бачити знак *, який вказує, що другий метод імпортує всі класи, що містяться в пакунках.

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

 імпортувати Mypackage. myclass {клас TestMypackage {public static void main (аргументи рядків []) {myclass ob1 = new myclass (); ob1.displayMypackage (); }} // виводити метод виводуMypackage класу myclass пакета Mypackage. 

У наведеному вище коді клас TestMypackage імпортував пакет Mypackage і використовував його метод displayMypackage ().

Визначення інтерфейсу

Інтерфейс є своєрідним класом, але відрізняється в тому сенсі, що методи, оголошені в інтерфейсі, є абстрактними, що означає, що методи тільки оголошені, але не визначені. Поля в інтерфейсі завжди публічні, статичні, остаточні. Поля повинні бути ініціалізовані під час декларування. Методи, оголошені інтерфейсом, визначаються класом, який реалізує цей інтерфейс відповідно до його вимог. Оскільки методи в інтерфейсі не виконують ніяких функцій, значить, немає використання створення будь-якого об'єкта інтерфейсу. Отже, для інтерфейсу не може бути створено жодного об'єкта.

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

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

У наведеному вище коді ми створили інтерфейс Area, а клас Circle реалізував інтерфейс Area. Поле “pi” було ініціалізовано в інтерфейсі під час його декларування. Клас Circle визначив абстрактний метод області класу відповідно до його вимоги.

Ключові відмінності між пакетами та інтерфейсами в Java

  1. Пакет являє собою групу класів і інтерфейсів разом, тоді як інтерфейс є групою абстрактних методів.
  2. Пакет створюється за допомогою пакета ключових слів, тоді як інтерфейс створюється за допомогою інтерфейсу ключових слів.
  3. Якщо клас або інтерфейс всередині пакета повинні бути використані, пакет повинен бути імпортований, в той час як інтерфейс повинен бути реалізований.

Висновок:

І пакунки, і інтерфейс є контейнерами. Пакет зменшує розмір коду, оскільки ми просто імпортуємо клас, який буде використовуватися, замість того, щоб знову визначити його. У той час як інтерфейс зменшує плутанини, що відбувалися під час декількох успадкувань, тому що у випадку декількох успадкувань успадкований клас не повинен вирішувати, що визначення того, який метод він повинен успадкувати, він визначає його власне.

Top