Како користити кориснички интерфејс у ​​Јави?

Kako Koristiti Korisnicki Interfejs U Javi



У Јави, „ Цонсумер ” интерфејс представља операцију која прима један улаз и врши неку радњу на њему без враћања резултата. Такође нуди флексибилан начин за дефинисање прилагођених операција које се могу користити у функционалном програмирању као што су ламбда изрази. Овај блог илуструје имплементацију корисничког интерфејса у Јави.

Како користити кориснички интерфејс у ​​Јави?

Цонсумер ” интерфејс нуди енкапсулацију или понашање које се може пренети и извршити на различитим локацијама у програму. Промовише понашање за вишекратну употребу које се може применити на различите улазе без дуплирања кода. Потрошачки интерфејс се састоји од две методе и то „ и онда() ' и ' прихвати() ”.







Посетите доле наведене примере да бисте разумели обе функције заједно са примерима кодека:



Пример 1: Употреба методе „андТхен()“.



Програмер може да повеже више „ Цонсумер ” операције у целини коришћењем „ и онда() ” метод. Враћа нови „ Цонсумер ” који обавља операцију тренутног “ Цонсумер ” пример. Након тога, испуњава операције предстојећег/после “ Цонсумер ” пример. То је подразумевани метод који се широко користи за процес „ Композиција ”.





Синтакса за „ и онда() ” метод је уметнут испод:

и онда ( Цонсумер < ? супер Т > после )



и онда() ” метода комбинује тренутног потрошача “ супер “са другим потрошачем” после ”. И прво извршава операцију тренутног потрошача, а затим операцију обезбеђеног потрошача.

Хајде да прођемо кроз програм ради бољег разумевања:

импорт јава.утил.АрраиЛист;
импорт јава.утил.ЛинкедЛист;
импорт јава.утил.Лист;
импорт јава.утил.фунцтион.Цонсумер;

јавна класа Роот {
јавна статична празнина главна ( Стринг аргс [ ] )
{
// стварање главног метода
Цонсумер < Листа < Интегер > > умножи = датаЕле - >
{
за ( инт ј = 0 ; ј < датаЕле.сизе ( ) ; ј++ ) {
датаЕле.сет ( ј, 5 * датаЕле.гет ( ј ) ) ;
}
} ;
// Потрошач за приказ листе целих бројева
Цонсумер < Листа < Интегер > >
принтс = датаЕле - > датаЕле.стреам ( ) .за сваки ( к - > Систем.оут.принт ( к + ' ' ) ) ;

Листа < Интегер > датаЕле = нова листа низова < Интегер > ( ) ;
датаЕле.адд ( 4 ) ;
датаЕле.адд ( 7 ) ;
датаЕле.адд ( 12 ) ;
датаЕле.адд ( 16 ) ;
помножити.андОнда ( отисци ) .аццепт ( датаЕле ) ;
}
}

Објашњење горњег кода:

  • Прво, „ Цонсумер ”, “ ЛинкедЛист ” и повезани услужни програми се увозе у Јава датотеку. Након тога, главна класа са именом „ Корен ' је створен.
  • Затим креирајте интерфејс „Потрошач“ типа Листа под називом „ умножити ” и поставите га једнаким „ Низ листа ” који ће бити креиран у наставку.
  • Користи „ за ” петља која се понавља до дужине “ Низ листа ' назван ' датаЕле “, и множи сваки елемент података у „ датаЕле ” са „ 5 ”.
  • Након тога, други „ Цонсумер ” креира се интерфејс који штампа сваки елемент на конзоли који се преузима након процеса множења из тока.
  • Сада креирајте и додајте лажне елементе података у „ датаЕле ' Низ листа.
  • На крају, „ и онда() ” метода се позива са „ прихвати() ” метод који прихвата “ датаЕле ” АрраиЛист и враћа резултат „ умножити ' редом.

Након завршетка фазе извршења:

Снимак показује да је задатак множења завршен коришћењем „ и онда() „метод „ Цонсумер ' интерфејс.

Пример 2: Употреба методе „аццепт()“.

прихвати() ” метода је функционална метода “ Цонсумер ' интерфејс. Прихвата један аргумент типа „ Т ” и на њему обавља наведене/потребне операције. Вредност ' Нула “ не сме да му се пружи јер не прихвата “ Нула ” вредности и генерише изузетак.

Његова синтакса је дата у наставку:

воид прихватити ( < јака > Т јака > т )

У горњој синтакси, „ т ” је једини аргумент на основу којег се извршавају одређене операције.

Посетимо блок кода испод ради бољег разумевања:

импорт јава.утил.АрраиЛист;
импорт јава.утил.ЛинкедЛист;
импорт јава.утил.Лист;
импорт јава.утил.фунцтион.Цонсумер;

// увоз комуналних услуга ин Јава фајл
јавна класа Роот {
јавна статична празнина главна ( Стринг аргс [ ] ) // стварање главног метода
{
Цонсумер < Интегер > дисп = к - > Систем.оут.принтлн ( к ) ;
дисп.аццепт ( 255 ) ;
Цонсумер < Листа < Интегер > > умножи = датаЕле - >
{
за ( инт к = 0 ; к < датаЕле.сизе ( ) ; к++ )
датаЕле.сет ( к, 5 * датаЕле.гет ( к ) ) ;
} ;

Цонсумер < Листа < Интегер > >
принтс = датаЕле - > датаЕле.стреам ( ) .за сваки ( ј - > Систем.оут.принт ( ј + '
'
) ) ;
Листа < Интегер > датаЕле = нова листа низова < Интегер > ( ) ;
датаЕле.адд ( 4 ) ;
датаЕле.адд ( 7 ) ;
датаЕле.адд ( 12 ) ;
датаЕле.адд ( 16 ) ;
// Имплементирајте модифи користећи аццепт ( )
умножити.прихватити ( датаЕле ) ;
// Имплементирајте диспЛист користећи аццепт ( )
принтс.аццепт ( датаЕле ) ;
}
}

Објашњење горњег кода:

  • Прво, „ Цонсумер ” интерфејс под називом “ дисп ” се креира који приказује наведене параметре на конзоли, без извођења било какве операције.
  • Сада ' прихвати() ” метод се зове „ дисп „Потрошач и вредност „ 255 ” се преноси на овај метод.
  • Следеће, још један „ Цонсумер ” је креиран интерфејс који користи „ за ” петља за примену множења на сваки преостали елемент АрраиЛист под називом „ датаЕле ”.
  • Након тога, креирајте још један „ Цонсумер ” интерфејс за приказ „ датаЕле ” елементи настају након примене множења које долази из тока.
  • Затим иницијализујте АрраиЛист “ датаЕле ” са лажним елементима података и користите „ прихвати() ” метод са „ умножити ' интерфејс.
  • На крају, позовите „ прихвати() ” метод који користи „ отисци ” интерфејс за приказ резултата након примене множења на дневник конзоле.

Након завршетка извршења:

Горњи снимак показује да је више корисничких интерфејса позвано један по један помоћу „ прихвати() ” метод.

Пример 3: Руковање изузетком за функцију Афтер

Изузетак настаје када „ после “ функција “ и онда() ” метода садржи „ прихвати() ” метод. Ово чини интерфејс који садржи податке које треба да обрађују интерфејси користећи методе корисничког интерфејса као што је приказано у наставку:

импорт јава.утил.АрраиЛист;
импорт јава.утил.ЛинкедЛист;
импорт јава.утил.Лист;
импорт јава.утил.фунцтион.Цонсумер;

јавна класа Роот {
јавна статична празнина главна ( Стринг аргс [ ] )
{
Цонсумер < Листа < Интегер > > умножити = датаЕле - >
{
за ( инт ј = 0 ; ј < = датаЕле.сизе ( ) ; ј++ )
датаЕле.сет ( ј, 5 * датаЕле.гет ( ј ) ) ;
} ;
// Потрошач за приказ листе целих бројева
Цонсумер < Листа < Интегер > >
принт = датаЕле - > датаЕле.стреам ( ) .за сваки ( ја - > Систем.оут.принт ( и + ' ' ) ) ;
Листа < Интегер > датаЕле = нова листа низова < Интегер > ( ) ;
датаЕле.адд ( 4 ) ;
датаЕле.адд ( 7 ) ;
датаЕле.адд ( 12 ) ;
датаЕле.адд ( 16 ) ;
покушати {
принт.андТхен ( умножити ) .аццепт ( датаЕле ) ;
}
улов ( Изузетак е ) {
Систем.оут.принтлн ( „Изузетак:“ + и ) ;
}
}
}

Објашњење горњег блока кода:

  • Прво, „ Цонсумер ” креиран је интерфејс који једноставно вишеструко “ 5 ” цели бројеви са елементима података који се налазе у обезбеђеној АрраиЛист.
  • Следеће, друго „ Цонсумер ” интерфејс је креиран да прикаже сваки елемент података АрраиЛист који је примљен у ток.
  • Након тога, АрраиЛист се креира и иницијализује са лажним вредностима целобројног типа.
  • Затим ' покушати ” користи се блок у којем је „ и онда() ” метод се зове „ принт ' интерфејс.
  • То изазива „ ИндекОутОфБоундсЕкцептион ' због ' за ” ограничење понављања петље је прекорачено, што се решава помоћу “ улов ' блокирати.

Након завршетка фазе извршења:

Снимак показује да је ИндекОутОфБоундсЕкцептион генерисао компајлер.

Закључак

Цонсумер ” интерфејс пружа начин за дефинисање понашања за вишекратну употребу и извођење радњи на улазним подацима без враћања резултата. Састоји се од ' прихвати() ' и ' и онда() ” методе. Често се користи за задатке обраде података, где корисници треба да изврше акцију на сваком елементу колекције или тока. То је све о коришћењу и имплементацији корисничког интерфејса у Јави.