سوال در مورد Interface (جاوا - اندروید استودیو) - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

سوال در مورد Interface (جاوا - اندروید استودیو)

0 امتیاز

عرض سلام
در جاوا تازه کار هستم و پیشاپیش پوزش میخوام اگر سوال مبتدیانست

در برنامه اندروید استودیو در قسمتی از کلاس Adapter اینترفیسی به شکل زیر تعریف شده و با متد stItemClickListener مقدار دهی میشه :

public class Adapter extends RecyclerView.Adapter<Adapter.MyViewHolder> {
   ........
    private iClickListener mListener;

    public interface iClickListener {
        void inItemClick(int position);
    }

    public void stItemClickListener(iClickListener listener) {
        mListener = listener;
    }
    .......
}

و در متدی در کلاس MainActivity اینترفیس به شکل زیر فراخوانی شده :

 

        Adapter.iClickListener iClickLsnr = new Adapter.iClickListener() {
            @Override
            public void inItemClick(int position) {
				///بازنویسی بدنه متد

            }
        };

        adapter.stItemClickListener(iClickLsnr);

 

ابهامی که برای بنده ایجاد شده این هست که اینترفیس ها دارای متد سازنده و قابل نمونه نیستند  
که در خط زیر در MainActivity ظاهرا New شده و متد سازنده فراخوانی میشه:
new Adapter.iClickListener()

 

 

سوال شده شهریور 6, 1399  بوسیله ی farshad9 (امتیاز 13)   1 3
دوباره باز شد شهریور 7, 1399 بوسیله ی farnoosh
لطف کنید در صورت برطرف شدن مشکل ،بجای بستن سوال ، جواب را در اینجا قرار بدید تا دیگران استفاده کنند.
پاسخی که جناب رشیدی فرمودند کاملا صحیح بود. و مربوط به مبحث کلاس های بی نام میشد که بنده به دلیل بیتجربه بودن نحوه سینتکس رو فراموش کرده بودم.

1 پاسخ

+1 امتیاز
 
بهترین پاسخ

پاسخ از لینکدین توسط   

 
 

در اصل اون اینترفیس داره به شکل anonymous پیاده سازی میشه و به این کلاس اصطلاحا Anonymous Class میگن

پاسخ داده شده شهریور 7, 1399 بوسیله ی 7khatcode (امتیاز 228)   2 4
انتخاب شد شهریور 7, 1399 بوسیله ی farshad9
...