رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
درخواست روشن سازی مفهوم Constructor
#1
سلام،میخواستم بدونم که استاد توی این کدی که در زیر میذارم،دقیقا کار این کانستراکتور ها چیه؟دوتا کانستراکتور داریم با ورودی های مختلف،اینا چه کار ی انجام میدن؟

public class ListAdapter extends ArrayAdapter<Item> {

   public ListAdapter(Context context, int textViewResourceId) {
       super(context, textViewResourceId);
   }

   public ListAdapter(Context context, int resource, List<Item> items) {
       super(context, resource, items);
   }

   @Override
   public View getView(int position, View convertView, ViewGroup parent) {

       View v = convertView;

       if (v == null) {
           LayoutInflater vi;
           vi = LayoutInflater.from(getContext());
           v = vi.inflate(R.layout.itemlistrow, null);
       }

       Item p = getItem(position);

       if (p != null) {
           TextView tt1 = (TextView) v.findViewById(R.id.id);
           TextView tt2 = (TextView) v.findViewById(R.id.categoryId);
           TextView tt3 = (TextView) v.findViewById(R.id.description);

           if (tt1 != null) {
               tt1.setText(p.getId());
           }

           if (tt2 != null) {
               tt2.setText(p.getCategory().getId());
           }

           if (tt3 != null) {
               tt3.setText(p.getDescription());
           }
       }

       return v;
   }

}
پاسخ
تشکر شده توسط:
#2
هرکدوم از این سازنده‌ها توی موقعیت‌های مختلفی فراخوانی میشن. در کل، سازنده هم مثل هر متد دیگه قابل سربارگذاری (Overload) هست. درصورتی که بیش از یک سازنده وجود داشته باشه، برحسب تعداد و نوع پارامترهای ارسالی، سازنده‌ی مناسب تشخیص‌داده و فراخوانی میشه. درنهایت هدف از این سازنده‌ها، آماده‌سازی یک شئ از کلاس برای استفاده در خارج از کلاس و در موقعیت‌های مختلفی هست که موردنیاز برنامه‌نویس خواهد بود. مثلاً ممکنه یک سازنده توسط خود شما توی کد و یکی دیگه توسط IDE در زمانی که میخواین لیست‌ویوی خودتون رو توی پنجره‌ی Preview یا نمای Design مشاهده کنین، فراخوانی بشه.
پاسخ
تشکر شده توسط: onlygod2016




کاربران در حال بازدید این موضوع: 1 مهمان