Цомпарисон Цхарт
Основа за поређење | Пакети | Интерфацес |
---|---|---|
Басиц | Пакети су група класа и / или интерфејса заједно. | Интерфејси су група апстрактних метода и константних поља. |
Кључна реч | Пакети се креирају помоћу кључне речи "Пакет". | Интерфејс се креира помоћу кључне речи "Интерфаце". |
Синтакса | пацкаге пацкаге_наме; публиц цласс цласс_наме { . (тело класе) . } | интерфаце интерфаце_наме { декларација варијабле; декларација метода; } |
Приступ | Пакет се може увести | Интерфејс се може проширити другим интерфејсом и имплементирати од стране класе. |
Кључна реч за приступ | Пакете се могу увести помоћу кључне ријечи "импорт". | Сучеља се могу имплементирати помоћу кључне ријечи "имплемент". |
Дефиниција пакета
Пакети су колекција или групе различитих класа и интерфејса. Класе у пакетима су међусобно повезане у неком опсегу или наслеђивањем. Такође можете креирати свој пакет и користити га за свој програм.
Креирање пакета
За креирање пакета пратите следеће кораке.
- Отворите датотеку и затим декларишите име пакета на врху датотеке, као [пакет пацкаге_наме; ] име пакета је име које желите да дате пакету.
- Затим дефинишете класу коју желите да ставите у пакет и запамтите да сте је прогласили јавним.
- Сачувајте датотеку као .јава датотеку, а затим компајлирајте датотеку, затим се за тај фајл добија ”.цласс”.
- За креирање пакета за ову датотеку користи се наредба “јавац -д. филе_наме.јава. Можете видети да је пакет креиран и да садржи “.цласс” датотеку у тренутном директоријуму. Да бисте га поставили у родитељски директоријум, користите “јавац -д. . филе_наме.јава ”.
- Такођер можете креирати подпакет тако што ћете декларирати име пакета као [пацкаге пацкаге_наме1. пацкаге_наме2; ] на врху датотеке.
пакет Мипацкаге; публиц цласс мицласс {публиц воид дисплаиМипацкаге () {систем.оут.принтлн ("метода дисплаиМипацкаге оф цласс мицласс пацкаге Мипацкаге"); }
Коришћење пакета
Пакети креирани или доступни у директорију могу се користити у програму помоћу наредбе импорта. Кључна ријеч која се користи за увоз било којег пакета у вашем програму је "импорт". Извештај о увозу може бити написан на два начина, или можете рећи да постоје два начина приступа било којем пакету. Прво, ако желите да користите одређену класу из пакета, „импорт“ кључна реч је праћена називом пакета који следи оператер тачке и име класе које желите да користите из пакета. Друго, ако желите да користите многе класе које су садржане у пакетима, онда кључна реч импорт следи име пакета које затим прати тачка и оператор “*”.
импорт пацкаге_наме. Назив класе; или увези име_пакета. *;
У горњем коду, можете видети * знак који указује да други метод увози све класе садржане у пакетима.
Погледајмо сада употребу пакета са примером.
импорт Мипацкаге. мицласс {цласс ТестМипацкаге {публиц статиц воид маин (стринг аргс []) {мицласс об1 = нев мицласс (); об1.дисплаиМипацкаге (); }} // оутпут метход дисплаиМипацкаге класе мицласс пакета Мипацкаге.
У горњем коду, класа ТестМипацкаге је увезла пакет Мипацкаге и користила његову методу дисплаиМипацкаге ().
Дефиниција интерфејса
Интерфејс је врста класе, али се разликује у смислу да су методе декларисане у интерфејсу апстрактне, што значи да су методе само декларисане, али нису дефинисане. Поља у интерфејсу су увек јавна, статична, коначна. Поља се морају иницијализовати у време декларације. Методе које декларише интерфејс су дефинисане класом која имплементира тај интерфејс у складу са својим захтевима. Пошто методе у интерфејсу не обављају ниједну функцију, нема користи од креирања било ког објекта интерфејса. Дакле, не може се створити објект за интерфејс.
Интерфејс такође може наследити други интерфејс, али класа која наслеђује такав интерфејс мора такође да примени све методе наслеђеног интерфејса. Пошто су поља иницијализована у време њихове декларације у интерфејсу, тако да нема потребе за конструктором у интерфејсу, интерфејс не садржи конструктор. Погледајмо примјер стварања и кориштења сучеља.
интерфејс Ареа {флоат пи = 3.14; флоат финд_ареа (флоат а, флоат б) {} класа Цирцле имплементира Ареа {флоат финд_ареа (флоат а, флоат б) {ретурн (пи * а * а); } Облици класа {публиц статиц воид маин (стринг аргс []) {Ареа А = ново подручје (); Круг Ц = нови круг (); А = Ц; флоат Ф = Површина. финд_ареа (10, 10); систем.оут.принтлн ("Површина круга је:" + Ф); }
У горе наведеном коду, креирали смо интерфејс Ареа, а класа Цирцле је имплементирала интерфејс Ареа. Поље “пи” је иницијализовано у интерфејсу у време његове декларације. Класа Круг је дефинисала апстрактну методу области класа у складу са својим захтевима.
Кључне разлике између пакета и интерфејса у Јави
- Пакет је група класа и интерфејса заједно, док је интерфејс група апстрактних метода.
- Пакет се креира помоћу пакета кључних речи, док се интерфејс креира помоћу интерфејса кључних речи.
- Ако се користи класа или интерфејс унутар пакета, пакет се увози док се интерфејс мора имплементирати.
Закључак:
И пакети и интерфејс су контејнери. Пакет смањује величину кода јер само увозимо класу која ће се користити умјесто да је поново дефинишемо. Док интерфејс смањује конфузије до којих је дошло током вишеструког наслеђивања, јер у случају вишеструког наслеђивања класа наслеђивања не треба да одлучи да дефиниција методе коју би требало да наслеђује, него дефинише своје.