خوش برگشتید.
در این ویدیو می‌بینیم چرا این موضوع اهمیت دارد.
propertyچرا استفاده از و کپسوله‌سازی مهم است.
قبلاً گفتم کلی عبارت لامبدا داشتیم و این چیزها.
فعلاً نگرانش نباشید، چون می‌خواهیم این قسمت را ساده کنیم.
چطور ساده کنیم؟
بذارید نشون بدم.
قراره از set و آکولاد استفاده کنیم.
اینجا مشخص می‌کنیم مقدار brand چطور ست بشه.
بذارید دوباره انجام بدم.
اینطوری.
این کد پیش‌فرضه.
بذارید اینطوری بنویسم.
هست.propertyاین کل
شروع میشه.brandاز
این بخش property هست.
private stringاولی یعنی اگر بخوای بگیریش، بالا رو برمی‌گردونم.
و اگر بخوای ست کنی باید از منطقی که داخل آکولاد می‌ذارم رد بشی.
خوب.
بیایید یک منطق تعریف کنیم.
مثلاً چک کنم اگر string خالی یا null بود، یعنی value.
اون وقت روی کنسول بنویسم "چیزی وارد نکردی".
و اگر کسی این کارو کرد، نمی‌تونیم برند ماشین رو ذخیره کنیم.
پس می‌گیم چیزی وارد نکردی.
هر وقت مقدار brand خالی باشه، میگه چیزی وارد نکردی.
پس میگم اگه اینطور بود، برند رو با مقدار پیش‌فرض ست کن.
وگرنه.
توی else، برند میشه هر چی کاربر وارد کرده.
خب چی شد؟
بیایید نگاه کنیم.
هر وقت مقداری به brand بدیم، میگه آیا خالی هستی؟
اگر مقداری که ست میشه خالی یا null باشه...
می‌گیم "چیزی وارد نکردی" روی کنسول.
و مقدار brand رو می‌ذاریم "default value".
و بعد ادامه می‌دیم.
nullولی اگر خالی یا نبود.
brandیعنی رشته واقعی بود، همونو توی ذخیره می‌کنیم.
پس در این متغیر عضو، باشه.
حالا بیاییم جلو و واقعاً از پراپرتی استفاده کنیم و طبق دستورش پیش بریم.
مساوی باشه با . Audi.Dot.brandاینجا میگم console.readLine
یعنی می‌خوام کاربر نام برند رو وارد کنه.
پس میگم لطفاً نام برند رو وارد کنید.
و بعد میگم چیزی که کاربر وارد کرده: "شما وارد کردید" و بعد برند Audi.
پس کاری که الان داریم می‌کنیم اینه: اینجا داریم set می‌کنیم و اینجا داریم get می‌کنیم.
خب این یعنی چی؟
یعنی در این خط این بخش اجرا میشه و در این خط این بخش اجرا میشه.
اینجا.
brandاینجا فقط میگه متغیر رو از بالا برام بگیر.
باشه.
خب.
حالا کدمون رو اجرا کنیم و ببینیم چی میشه.
میگه لطفاً نام برند رو وارد کنید.
مثلاً می‌نویسم Audi.
میگه شما وارد کردید Audi.
آفرین.
حالا بریم هیچی وارد نکنیم.
یعنی رشته خالی، میگه شما چیزی وارد نکردید.
و بعد میگه شما وارد کردید مقدار پیش‌فرض.
یا شاید بهتر باشه بگیم برند مساوی مقدار پیش‌فرض.
تا واضح‌تر باشه.
حالا دوباره اجرا کنیم و هیچی وارد نکنم.
میگه شما چیزی وارد نکردید.
برند مساوی مقدار پیش‌فرض.
و این بخشی از کپسوله‌سازی هست، جایی که دقیقاً شرایط دسترسی به متغیرهات رو مشخص می‌کنی.
اینجا برای دسترسی به پراپرتی.
چون میگیم اگه می‌خوای پراپرتی رو ست کنی، باید از قوانین من پیروی کنی.
قوانین من اینه: رشته خالی نده.
و اگه کاربر رشته خالی بده یا بخوایم رشته خالی ست کنیم،
میره روی مقدار پیش‌فرض. چون اینطوری تعریف کردیم.
و اینجا.
getterحالا همین کار رو می‌تونیم برای هم انجام بدیم.
اینجا می‌تونیم بگیم وقتی می‌خوای متغیر رو بگیری، اونجا هم قوانین خاص بذاریم.
می‌تونیم این کارو بکنیم.
ولی میگم بذاریم برای ویدئوی بعد.
فقط سریع می‌خواستم مطمئن بشم این کلمه value رو هم خوب می‌فهمی.
چون زیاد توضیح ندادم.
valueاین در واقع همون چیزیه که اینجا وارد کردیم.
مثلاً اگه اینجا نوشتم car، اون car مقداریه که دارم به brand پاس میدم.
brandو دارم توی ست می‌کنم.
valueو این کاریه که انجام میده.
باشه.
فقط بدونی.
چی هست. valueاینجا هم داره بررسی می‌کنه
breakpointبیا اینو با اجرا کنیم تا دقیق ببینی چی میشه.
تقریباً از خط اول بررسی می‌کنه چون همونجاست که یک شیء از
ساختیم. car
بررسی می‌کنه برند خالی نباشه.
هست. Audiو برند خالی نیست چون
درسته.
پس میریم مرحله بعد.
بررسی کرد.
خالی نیست.
خوبه.
بود.valueپس میره اینجا و میگه هرچی
اینجا می‌بینی وقتی موس می‌بری روی value نوشته Audi.
چرا value برابر Audi هست؟
constructor چون اینجا در این خط داریم پاس میدیم. Audi رو به
رو ببینیم.constructorحالا
چی کار می‌کنه؟
constructor ماشین.
وقتی یک شیء از car ساخته میشه میگه هر برندی دادی رو ذخیره می‌کنم.
یا می‌فرستم به پراپرتی brand.
این پراپرتی میگه: قوانین منو رعایت کن.
قوانین من اینه: اگه می‌خوای مقداری ست کنی نباید null یا خالی باشه.
و اگه نه null بود نه خالی، هرچی وارد کردی قبوله و ذخیره می‌کنم توی متغیر brand.
باشه.
و واسه همینه که مستقیم اجرا میشه.
و دیگه چیزی نمی‌بینی.
پس می‌تونم برم عمیق‌تر.
باشه.
بعد دوباره برای بار دوم انجام میشه.
این بار برای BMW.
خب new car A3 Audi.
بعد میره BMW.
دوباره چک می‌کنه.
خالیه؟ BMWآیا
نه.
پس مقدار رو ست می‌کنه.
constructorبعد دوباره میره توی و میگه باشه.
آره.
brandتو مقدار خوبی دادی و حالا دوباره به دسترسی پیدا می‌کنه.
اینجا میگه خب برند مدل ساخته شد، بعد ازش خارج میشه و میره اینجا.
لطفاً نام برند رو وارد کنید.
هست. carمیگیم نام برند
دوباره بررسی می‌کنه.
value چی هست؟
این بار car هست.
کردیم. overrideچون همین‌جا
باشه. باشه. carگفتیم
بعد سعی می‌کنه بهش دسترسی پیدا کنه.
و این برنامه‌مونه.
میگه Audi مدل A3 ساخته شد، BMW ساخته شد.
نام برند رو وارد کنید. برند مساوی car باشه.
خب الان باید جریان کار رو بفهمی.
و در ویدئوی بعدی می‌بینیم چطور میشه getter رو هم override کرد.
پس می‌بینمتون اونجا.