![](http://gadget-info.com/img/difference-between/621/difference-between-packages.jpg)
Сравнителна таблица
Основа за сравнение | Пакети | Интерфейси |
---|---|---|
Основен | Пакетите са група от класове и / или интерфейси заедно. | Интерфейсите са група от абстрактни методи и постоянни полета. |
Ключова дума | Пакетите се създават с ключова дума "Пакет". | Интерфейсът се създава с ключова дума "Интерфейс". |
Синтаксис | пакет package_name; обществен клас class_name { , (тяло на класа) , } | интерфейс interface_name { декларация на променлива; декларация за метода; } |
достъп | Пакетът може да бъде импортиран | Интерфейсът може да бъде разширен с друг интерфейс и да бъде реализиран от класа. |
Ключова дума за достъп | Пакетите могат да бъдат импортирани с ключова дума "внос". | Интерфейсите могат да бъдат реализирани с ключова дума "implement". |
Дефиниция на пакети
Пакетите са колекция или групи от разнообразие от класове и интерфейси. Класовете в пакети са свързани помежду си в някакъв обхват или чрез наследяване. Можете също да създадете своя пакет и да го използвате за вашата програма.
Създаване на пакет
За да създадете пакет просто следвайте следните стъпки.
- Отворете файл и след това декларирайте името на пакета в горната част на файла, като [пакет package_name; ] името на пакета е името, което искате да дадете на пакета.
- След това дефинирате клас, който искате да поставите в пакета, и не забравяйте, че го декларирате публично.
- Запишете файла като .java файл и след това компилирайте файла, след което ще получите ".class" за този файл.
- За да създадете пакет за този файл, използваната команда е “javac -d. file_name.java. Можете да видите, че пакетът е създаден с файл ".class" в текущата директория. За да го поставите в родителската директория използвайте “javac -d., командата file_name.java.
- Можете също да създадете подпакет, като обявите името на подпакета като [пакет package_name1. package_name2; ] в горната част на файла.
пакет Mypackage; public class myclass {public void displayMypackage () {system.out.println ("показване на метода My pack на клас myclass на пакет Mypackage"); }
Използване на пакета
Пакетите, създадени или достъпни в директорията, могат да се използват в програмата чрез използване на оператор за импортиране. Изразът за импортиране може да бъде написан по два начина или може да се каже, че има два начина за достъп до всеки пакет. Първо, ако искате да използвате конкретен клас от пакет, ключовата дума "import" е последвана от името на пакета, последвано от оператора на точка и името на класа, който искате да използвате от пакета. Второ, ако искате да използвате много класове, които се съдържат в пакетите, тогава ключовата дума import е последвана от името на пакета, последвано от точката и оператора "*".
import package_name. CLASS_NAME; или импортирайте име на пакет. *;
В горния код можете да видите знака *, който показва, че вторият метод импортира всички класове, съдържащи се в пакетите.
Сега нека разгледаме използването на пакета с пример.
внос Mypackage. myclass {клас TestMypackage {публичен статичен void main (string args []) {myclass ob1 = new myclass (); ob1.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); } Клас форми {публични статични void main (string args []) {Area A = new Area (); Кръг C = нов кръг (); А = С; float F = Площ. find_area (10, 10); system.out.println ("Площта на кръга е:" + F); }
В горния код създадохме интерфейсна зона, а класът Circle реализира интерфейса Area. Полето "pi" е инициализирано в интерфейса по време на декларацията. Класът Circle е дефинирал абстрактния метод на класната площ според неговото изискване.
Ключови разлики между пакети и интерфейси в Java
- Пакетът е група от класове и интерфейси заедно, докато интерфейсът е група от абстрактни методи.
- Пакетът се създава с помощта на ключова дума , докато интерфейсът се създава с помощта на интерфейс за ключови думи.
- Ако трябва да се използва клас или интерфейс вътре в пакета, пакетът трябва да бъде импортиран, докато интерфейсът трябва да бъде реализиран.
Заключение:
И двете пакети и интерфейс са контейнерите. Пакетът намалява размера на кода, тъй като ние просто импортираме класа, който ще се използва, вместо да го дефинираме отново. Докато интерфейсът намалява объркванията, възникнали по време на многобройните наследства, защото в случай на множествено наследяване, наследяващият клас не трябва да решава, че дефинирането на метода, който трябва да наследи, определя неговото.