پرسشی در مورد اینترفیس

ارسال پست
farshad991
پست: 1
تاریخ عضویت: پنج شنبه 6 شهریور 1399, 12:33 pm

پرسشی در مورد اینترفیس

پست توسط farshad991 » پنج شنبه 6 شهریور 1399, 1:14 pm

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

در برنامه اندروید استودیو در قسمتی از کلاس 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()

java2
مدیر کل سایت
پست: 178
تاریخ عضویت: پنج شنبه 13 دی 1397, 6:49 pm

Re: پرسشی در مورد اینترفیس

پست توسط java2 » شنبه 8 شهریور 1399, 12:46 am

با سلام، در این عمل در حقیقت بدنه متد های اینترفیس را در یک بایت کد جدید پیاده سازی کرده و از آن نمونه ساخته اید. در کلاس بطور کامل این موضوعات بررسی می گردد.

ارسال پست