Bagaimana Menggunakan Antara Muka Pengguna di Java?

Bagaimana Menggunakan Antara Muka Pengguna Di Java



Di Jawa, ' Pengguna antara muka ” mewakili operasi yang menerima satu input dan melakukan beberapa tindakan padanya tanpa mengembalikan hasil. Ia juga menawarkan cara yang fleksibel untuk menentukan operasi tersuai yang boleh digunakan dalam pengaturcaraan berfungsi seperti ungkapan lambda. Blog ini menggambarkan pelaksanaan antara muka Pengguna di Java.

Bagaimana Menggunakan Antara Muka Pengguna di Java?

' Pengguna ” antara muka menawarkan enkapsulasi atau tingkah laku yang boleh dihantar dan dilaksanakan di lokasi berbeza dalam program. Ia menggalakkan tingkah laku boleh guna semula yang boleh digunakan pada input berbeza tanpa menduplikasi kod. Antara muka Pengguna terdiri daripada dua kaedah iaitu “ danKemudian() ” dan “ terima() ”.







Lawati contoh di bawah untuk memahami kedua-dua fungsi bersama-sama dengan contoh codec:



Contoh 1: Penggunaan Kaedah “andThen()”.



Pembangun boleh merantai berbilang “ Pengguna ' operasi sama sekali dengan menggunakan ' danKemudian() ” kaedah. Ia mengembalikan yang baharu ' Pengguna 'yang menjalankan operasi semasa' Pengguna ” contoh. Selepas itu, memenuhi operasi yang akan datang/selepas “ Pengguna ” contoh. Ia adalah kaedah lalai yang digunakan secara meluas untuk proses “ Komposisi ”.





Sintaks untuk ' danKemudian() ” kaedah dimasukkan di bawah:

dan Kemudian ( Pengguna < ? super T > selepas )



' danKemudian() ' kaedah menggabungkan pengguna semasa ' hebat 'dengan pengguna lain' selepas ”. Dan ia melaksanakan operasi pengguna semasa dahulu, diikuti dengan operasi pengguna yang disediakan.

Mari kita berjalan melalui program untuk pemahaman yang lebih baik:

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.function.Consumer;

Akar kelas awam {
utama lompang statik awam ( Args rentetan [ ] )
{
// penciptaan kaedah utama
Pengguna < Senaraikan < Integer > > darab = dataEle - >
{
untuk ( int j = 0 ; j < dataEle.size ( ) ; j++ ) {
dataEle.set ( j, 5 * dataEle.get ( j ) ) ;
}
} ;
// Pengguna untuk memaparkan senarai integer
Pengguna < Senaraikan < Integer > >
cetakan = dataEle - > dataEle.stream ( ) .untuk setiap ( k - > System.out.print ( k + ' ' ) ) ;

Senaraikan < Integer > dataEle = ArrayList baharu < Integer > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
darab.dan Kemudian ( cetakan ) .terima ( dataEle ) ;
}
}

Penjelasan kod di atas:

  • Pertama, ' Pengguna ”, “ LinkedList ” dan utiliti yang berkaitan diimport ke dalam fail Java. Selepas itu, kelas utama dengan nama “ akar ” dicipta.
  • Seterusnya, buat antara muka 'Pengguna' jenis Senarai bernama ' membiak ” dan tetapkannya sama dengan “ ArrayList ” yang akan dibuat di bawah.
  • Ia menggunakan ' untuk 'gelung yang berulang sehingga panjang' ArrayList ” bernama “ dataEle ”, dan mendarab setiap elemen data “ dataEle ” dengan “ 5 ”.
  • Selepas itu, kedua ' Pengguna ” antara muka dicipta yang mencetak setiap elemen pada konsol yang diambil selepas proses pendaraban daripada aliran.
  • Sekarang, buat dan tambah elemen data tiruan dalam “ dataEle ” ArrayList.
  • Pada akhirnya, ' danKemudian() kaedah ' dipanggil dengan ' terima() 'kaedah yang menerima' dataEle ” ArrayList dan mengembalikan hasil “ membiak ' dalam urutan.

Selepas tamat fasa pelaksanaan:

Gambar menunjukkan bahawa tugas pendaraban telah diselesaikan dengan menggunakan ' danKemudian() ' kaedah ' Pengguna ” antara muka.

Contoh 2: Penggunaan Kaedah 'terima()'.

' terima() Kaedah ' ialah kaedah berfungsi ' Pengguna ” antara muka. Ia menerima satu hujah jenis ' T ” dan melaksanakan operasi yang ditentukan/diperlukan padanya. Nilai ' batal 'tidak boleh diberikan kepadanya kerana ia tidak menerima' batal ” nilai dan menjana pengecualian.

Sintaksnya diberikan di bawah:

batal terima ( < kuat > T kuat > t )

Dalam sintaks di atas, ' t ” ialah hujah tunggal di mana operasi tertentu dikendalikan.

Marilah kita melawat blok kod di bawah untuk pemahaman yang lebih baik:

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.function.Consumer;

// mengimport utiliti dalam Jawa fail
Akar kelas awam {
utama lompang statik awam ( Args rentetan [ ] ) // penciptaan kaedah utama
{
Pengguna < Integer > disp = k - > System.out.println ( k ) ;
disp.terima ( 255 ) ;
Pengguna < Senaraikan < Integer > > darab = dataEle - >
{
untuk ( int k = 0 ; k < dataEle.size ( ) ; k++ )
dataEle.set ( k, 5 * dataEle.get ( k ) ) ;
} ;

Pengguna < Senaraikan < Integer > >
cetakan = dataEle - > dataEle.stream ( ) .untuk setiap ( j - > System.out.print ( j + '
'
) ) ;
Senaraikan < Integer > dataEle = ArrayList baharu < Integer > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
// Laksanakan ubah suai menggunakan terima ( )
darab.menerima ( dataEle ) ;
// Laksanakan dispList menggunakan accept ( )
cetakan.terima ( dataEle ) ;
}
}

Penjelasan kod di atas:

  • Pertama, ' Pengguna ' antara muka bernama ' disp ” dicipta yang memaparkan parameter yang disediakan pada konsol, tanpa melakukan sebarang operasi.
  • Sekarang, ' terima() ' kaedah dipanggil oleh ' disp 'Pengguna, dan nilai ' 255 ” diserahkan kepada kaedah ini.
  • Seterusnya, satu lagi ' Pengguna ' antara muka dicipta yang menggunakan ' untuk ' gelung untuk menggunakan pendaraban pada setiap elemen yang tinggal dalam ArrayList bernama ' dataEle ”.
  • Selepas itu, buat satu lagi ' Pengguna ' antara muka untuk memaparkan ' dataEle ” unsur terhasil selepas menggunakan pendaraban yang datang daripada aliran.
  • Seterusnya, mulakan ArrayList ' dataEle ” dengan elemen data palsu dan gunakan “ terima() ' kaedah dengan ' membiak ” antara muka.
  • Pada akhirnya, panggil ' terima() ' kaedah menggunakan ' cetakan ” antara muka untuk memaparkan keputusan selepas menggunakan pendaraban pada log konsol.

Selepas tamat pelaksanaan:

Gambar di atas memaparkan bahawa berbilang antara muka pengguna telah dipanggil satu demi satu menggunakan ' terima() ” kaedah.

Contoh 3: Mengendalikan Pengecualian untuk Fungsi Selepas

Pengecualian itu timbul apabila ' selepas 'fungsi' danKemudian() kaedah ' mengandungi ' terima() ” kaedah. Ini menjadikan antara muka yang menyimpan data untuk diproses oleh antara muka menggunakan kaedah antara muka Pengguna seperti yang ditunjukkan di bawah:

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.function.Consumer;

Akar kelas awam {
utama lompang statik awam ( Args rentetan [ ] )
{
Pengguna < Senaraikan < Integer > > membiak = dataEle - >
{
untuk ( int j = 0 ; j < = dataEle.size ( ) ; j++ )
dataEle.set ( j, 5 * dataEle.get ( j ) ) ;
} ;
// Pengguna untuk memaparkan senarai integer
Pengguna < Senaraikan < Integer > >
cetak = dataEle - > dataEle.stream ( ) .untuk setiap ( saya - > System.out.print ( i + ' ' ) ) ;
Senaraikan < Integer > dataEle = ArrayList baharu < Integer > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
cubalah {
cetak.dan Kemudian ( membiak ) .terima ( dataEle ) ;
}
tangkap ( Pengecualian e ) {
System.out.println ( 'Pengecualian:' + dan ) ;
}
}
}

Penjelasan blok kod di atas:

  • Pertama, ' Pengguna ' antara muka dicipta yang hanya berbilang ' 5 ” integer dengan elemen data yang berada dalam ArrayList yang disediakan.
  • Seterusnya, kedua ' Pengguna ” antara muka dicipta untuk memaparkan setiap elemen data ArrayList yang diterima oleh aliran.
  • Selepas itu, ArrayList dicipta dan dimulakan dengan nilai jenis integer dummy.
  • Kemudian, ' cubalah blok ' digunakan di mana ' danKemudian() ' kaedah dipanggil oleh ' cetak ” antara muka.
  • Ia menyebabkan ' IndexOutOfBoundsException ' kerana ia ' untuk ” had lelaran gelung melebihi, yang diselesaikan dengan “ tangkap ” blok.

Selepas tamat fasa pelaksanaan:

Gambar menunjukkan bahawa IndexOutOfBoundsException telah dihasilkan oleh pengkompil.

Kesimpulan

' Pengguna antara muka ” menyediakan cara untuk menentukan tingkah laku boleh guna semula dan melakukan tindakan pada data input tanpa mengembalikan hasil. Ia terdiri daripada ' terima() ” dan “ danKemudian() ” kaedah. Ia sering digunakan untuk tugas pemprosesan data, di mana pengguna perlu melakukan tindakan pada setiap elemen koleksi atau strim. Itu semua tentang penggunaan dan pelaksanaan antara muka Pengguna di Java.