تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ Mohsen Khaled
Variables
پوریا شفیعی حل شده توسط پوریا شفیعی

سلام وقت بخیر.
 

وقتی که کانستراکتور ساخته میشه و میخوایم متغیر هارو اجباری کنیم،چرا همون مقدار هارو که به متد printWelcomeMessage دادیم رو نمیتونیم به عنوان پارامتر ورودی از نوع اینستنس وریبل به کانستراکتور بدیم و حتما لازمه که لوکال وریبل هم ساخته بشه و مقدار لوکال ریخته بشه داخل اینستنس؟

 

آیا با استفاده از یکی از این نوع متغیر‌ها نمیشه کارو انجام داد و چرا

سلام و احترام

به این دلیل که بتوانیم از firstname و lastname در سایر متد‌های کلاس استفاده کنیم .

اگر firstname و lastname رو صرفا به کانستراکتور بدهیم  نمیتوانیم از اونها در سایر متد‌های کلاس (در مثال ما printWelcomeMsg )استفاده کنیم.

امیدوارم سوالتون رو به خوبی متوجه شده باشم 

همچنین ممنون میشم سعی کنین هنگام پرسش سوالتون رو با کد‌های مربوطه بپرسید 

موفق باشید

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

سلام وقت بخیر

اگر درست متوجه شده باشم منظورتون اینکه firstname و lastname رو از طریق constructor دریافت نکنیم و به جای اون داخل پارامترهای متد printWelcomeMsg دریافت کنیم بله این کار رو هم میتونید انجام بدین ولی دیگه نمیتونید از متغیر‌های firstname و lastname درون متدهای دیگه استفاده کنید که پوریا جان هم اشاره کردن. بازم از داخل این متد یعنی printWelcomeMsg میتونید مقدار firstname و lastname دریافتی رو به instance variable تبدیل کنید و داخل متدهای دیگم استفاده کنید که بستگی به سناریو برنامه شما داره. دقت کنید که هر متغیری داخل بلاک و زیر بلاک‌های خودش میتونه استفاده بشه و خارج از بلاک خودش قابل دستیابی نیست.

میلاد عزیززاده ۱۱ مرداد ۱۴۰۰، ۱۳:۰۵

مرسی از پاسختون پوریا و میلاد عزیز.

 

سوال اینه که کلا چرا باید لوکال ساخته بشه؟  چرا همون اینستنسی که تعریف کردیم رو نمیتونیم به کانستراکتور بدیم؟

 

کدارو آماده ارسال کردم ولی نشد،نوشت کامنت طولانی هست واسه همین عکس نمونه رو واستون اپلود کردم

Mohsen Khaled ۱۱ مرداد ۱۴۰۰، ۱۴:۳۱