💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۴ امیر ابوئی
ساخت چند constructor در classها
جامعه جاوا (وب و دسکتاپ) ایجاد شده در ۰۵ فروردین ۱۴۰۲

سلام و درود، خداقوت

یه سوالی برای بنده پیش اومد، دلیل اینکه امکان ساخت چند constructor به ما توی classهای جاوا داده میشه چی هستش؟ و به طور کلی بهتره که از چندین constructor استفاده بشه یا یکی؟ کدومش بهینه‌تر و به اصطلاح به اون ساختار کد تمیز نزدیکتر هست؟

و سوال دومم هم درمورد اینه که اگر ما از چند constructor استفاده کنیم و به فرض هرکدومشون ورودی مختص خودشون رو بگیرن، موقع ساخت یک instance از یک class جدید، چطور و به چه ترتیبی باید پارامترها به عنوان ورودی داده بشن که به constructor مربوطه اش پاس داده بشه؟

سلام،

سوال 1)

خب این یک مزیت محسوب میشه

با توجه به نیازی که داری باید کانستراکتور بسازی

زمانی کد خوب نیست که به چیزی نیازی نداری اما اونو مینویسی

یک اصل در مهندسی نرم افزار هست

که میگه تا زمانی که چیزی رو نیاز نداری ننویس

( خیلی خلاصه گفتم البته اصل یانگی)

اما شما با توجه به نیاز شاید تو یه پروژه بخوایید یه بار یک آبجکت رو با دوتا پراپرتی بسازید یک بار با سه تا

اگه بخوام یه مثال بزنم

شما فرض کن که یه کلاس دانش آموز داری

که چندین ویژگی مثل دست، قد، وزن، نام، سن و...

داره

حالا یه دانش آموز استسنا دست نداره

این جوری یه کانستراکتور که توش دست نیس رو لازم داری

این یه مثال خیلی ساده بود فقط برای درک موضوع وگرنه کمی متفاوت هست.

________________________________

سوال 2)

کافیه خودت تست کنی ،

اما چیزی که هست دقیقا به همون ترتیبی که توی کلاس داری

برای ایجاد شی همون ترتیب رو باید وارد کنی

موفق باشی

Ali Erfagh ۰۵ فروردین ۱۴۰۲، ۰۶:۵۳

من تست کردم، برای اینکه چندتا constructor بشه ایجاد کرد باید signatureهاشون متفاوت باشه، ولی مثلا اگر دوتا constructor ورودی int بگیرن که یکی شون سن و یکی دیگه شون قد باشه خطا میده با وجود اینکه اسم پارامترها متفاوته

امیر ابوئی ۰۵ فروردین ۱۴۰۲، ۱۳:۲۲

از طرفی اگر چند constructor داشته باشی که متغیر ورودی بگیرن با typeهای متفاوت، موقع ایجاد یک instance از class، فقط یک ورودی میگیره و مقدار مابقی constructorهارو نمیشه بهش داد و خطا میده


براساس چیزی که من به عنوان آخرین چیز تست کردم، موقع ساخت یک instance از یک class، فقط یک ورودی میگیره که براساس type ورودی وارد شده، خودش تشخیص میده که مربوط به کدوم constructor میشه

امیر ابوئی ۰۵ فروردین ۱۴۰۲، ۱۳:۳۸

سلام دوباره امیر جان،

آیا مشکلت حل شده؟ سوالی هنوز برات مونده؟

بهترین پاسخ
سپهر نامدار ۱۶ فروردین ۱۴۰۲، ۲۰:۳۵