تالار گفتمان nCIS.ir

نسخه‌ی کامل: درخواست روشن سازی مفهوم Constructor
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام،میخواستم بدونم که استاد توی این کدی که در زیر میذارم،دقیقا کار این کانستراکتور ها چیه؟دوتا کانستراکتور داریم با ورودی های مختلف،اینا چه کار ی انجام میدن؟

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;
   }

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