Variables

پرسیده شده
فعالیت 969 روز پیش
دیده شده 436 بار
0

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

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

 

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

فایل پیوست

Mohsen shahi
Mohsen shahi

11 مرداد 00

1
حذف شده

سلام و احترام

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

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

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

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

موفق باشید

فایل پیوست

پوریا شفیعی

توسط

پوریا شفیعی

11 مرداد 00

1
حذف شده

سلام وقت بخیر

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

فایل پیوست

میلاد عزیززاده گلنگشی

توسط

میلاد عزیززاده گلنگشی

11 مرداد 00

0
حذف شده

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

 

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

 

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

فایل پیوست

Mohsen shahi

توسط

Mohsen shahi

11 مرداد 00

حذف شده
میتونی استفاده کنی اما کاربردی نداره به این شکل برای تست میتونی یک log بگیری از firstname داخل constructor و میبینید بعد از instance گرفتن از کلاس person در یک کلاس دیگه یک log میوفته و داخل متغیر firstname مقدار null قرار داره
حذف شده
Local variable ها رو هم گفتم بهت از local variable ها داخل بلاک و زیر بلاکهای فعلی میشه استفاده کرده و اگه بخوای خارج از بلاک فعلی هم ازش استفاده کنی باید به instance variable تبدیلش کنی