به مثال‌های عملی استفاده از کلاس‌ها خوش آمدید.
پس بیایید یک کنسول اپلیکیشن جدید بسازیم که اسمش را classes app.می‌گذارم
و بعد این چک‌باکس را انتخاب می‌کنم.
این خیلی مهم است چون در غیر این صورت کمی سخت می‌شود.
پس وقتی گزینه "Do not use top level statements" Create فعال باشد روی کلیک می‌کنم و یک پروژه جدید می‌سازم.
classاینجا می‌بینید که همین حالا هم کلمه کلیدی در برنامه ما وجود دارد.
و این به این دلیل است که سی‌شارپ یک زبان برنامه‌نویسی Programشی‌ء‌گرا است که این کلاس را دارد،
Mainکه نقطه شروع برنامه ماست و متد خودش را دارد.
همان جایی است که کد اجرا می‌شود.
پس این کدی است که نقطه شروع اپلیکیشن ماست.
کلیک کنیم اجرا خواهد شد.Runو وقتی روی
خب.
حالا چطور می‌توانیم یک کلاس جدید بسازیم؟
چون موضوع همین است.
ما دیدیم چطور از این بخش برنامه استفاده کنیم.
Solution Explorerخب، برای ایجاد یک کلاس جدید می‌توانید را باز کنید با کلیک روی
View Solution Explorer.
و اینجا در سمت راست می‌توانید روی پروژه خود راست‌کلیک کنید.
بروید.Addو سپس می‌توانید به گزینه
و اینجا در پایین گزینه کلاس را انتخاب کنید.
و حالا می‌توانید برای این کلاس یک نام بگذارید.
می‌نامم.Carپس من این کلاس را
خواهد بود.car.cs پس فایل آن
کلیک می‌کنم.Addحالا روی
(boilerplate code) و می‌بینید این کلاس یک سری کد پیش‌فرض دارد.
پس کدی است که فقط آنجاست و تغییرناپذیر است.
ها است.using directive برای مثال شامل آن
خب، می‌توانیم آن‌ها را حذف کنیم چون در این مرحله از آن‌ها استفاده نمی‌کنیم.
اما خوب است که همان‌طور باقی بمانند.
کنید. (collapse)پس فقط آن‌ها را جمع
classesApp به نامnamespace بعد این Program، را داریم، که همان کلاسی است که قبلاً داشتیم به نام
که به‌طور خودکار برای ما ساخته شده بود.
و حالا کلاس خودمان را داریم به نام Car.
پس اینجا کلیدواژه class را می‌بینید و بعد اسم Car را.
Visual Studioاگر این رنگ بنفش را در ببینید، یعنی دارید به یک کلاس نگاه می‌کنید.
پس اینجا هم می‌توانید آن را ببینید.
Programکلاس Console. هم رنگ بنفش دارد و همین‌طور
هم یک کلاس است. Consoleپس می‌بینید که
internalاین کلاس assembly است، که فقط یعنی می‌تواند از داخل همان در دسترس باشد.
assembly و را اگر خیلی ساده بگوییم، یعنی همان برنامه‌ای که در آن قرار داریم.
خب.
پس ما فقط می‌توانیم از این کلاس در داخل همان برنامه استفاده کنیم.
برنامه‌های دیگر نمی‌توانند به این کلاس دسترسی داشته باشند.
internalاین همان کاری است که کلیدواژه برای ما انجام می‌دهد.
حالا اگر وارد کلاس خود شوید، می‌بینید که خودش یک تکه کد آماده برای شما می‌گذارد یا پیشنهاد
public Carمی‌کند که از و سپس آکولاد باز و بسته استفاده کنید.
constructorاین چیزی که اینجا می‌بینید به آن یا سازنده گفته می‌شود.
constructorیک خیلی شبیه به یک متد است، اما فرقش این است که دقیقاً همان نام کلاس را دارد
و هیچ نوع مقدار بازگشتی ندارد.
این constructor هر زمان که یک شیء جدید از کلاس Car ساخته شود، فراخوانی یا اجرا می‌شود.
خب، حالا همه‌ی این‌ها چه معنایی دارد؟
بیایید با یک مثال عملی واقعی این را بررسی کنیم تا ببینید که چگونه در عمل اتفاق می‌افتد.
Console.WriteLineاینجا من فقط از یک دستور استفاده می‌کنم که داخل آن می‌نویسم:
«یک شیء از کلاس Car ساخته شد.»
خب.
constructor پس این همان چیزی است که این باید اجرا کند Carوقتی که یک شیء از ساخته می‌شود.
پس اساساً این کدی که اینجاست، هر چیزی که داخل آکولادها قرار دارد، هر بار که ما
یک آیتم یا شیء جدید از نوع Car بسازیم، اجرا خواهد شد.
خب چطور این کار را انجام دهیم؟
را ذخیره کنیم. Carبیایید کلاس
برویم سراغ کلاس Program.
و اینجا بیایید یک شیء از کلاس خودمان یعنی کلاس Car ایجاد کنیم. پس می‌توانیم بنویسیم Car.
و بعد به آن یک نام بدهیم و سپس بگوییم new Car.
من قرار است این Car را Audi صدا کنم.
خب.
پس این فقط یک Audi خواهد بود که یک Car جدید است.
new پس با این کلمه کلیدی ، که قبلاً هم دیده بودیم،
Carدر واقع فضایی در حافظه برای شیء ما اختصاص داده می‌شود.
از نظر فنی، ما داریم می‌گوییم: یک شیء بساز که طبق نقشه یا طرح (blueprint) کلاس Car من باشد.
یا نقشه چیست؟blueprint حالا
blueprint در واقع همان دستورالعمل‌ها و قوانینی است که ما تعریف می‌کنیم تا مشخص کنیم این کلاس
چطور باید رفتار کند.
و این چیزی است که در اینجا تعریف می‌کنیم.
پس در این کلاس می‌توانیم آن را به عنوان الگوی خود تنظیم کنیم.
و هر بار که یک شی از آن بسازیم، از قوانینی که در این...
الگو.
خوب.
پس در این مورد، تنها قاعده‌ای که تا حالا تعریف کرده‌ایم این است که هر وقت یک شی از
خودرویی که می‌خواهیم.
این دستور اجرا شود، که در آن ما فقط چیزی را در کنسول چاپ می‌کنیم که می‌گوید یک شی از خودرو
ایجاد شده است.
پس این سازنده هنگام اجرای این خط فراخوانی می‌شود.
Console.ReadKeyپس اجازه دهید اینجا را اضافه کنم تا برنامه‌مان متوقف نشود.
و اجازه دهید اینجا یک نقطه دیباگ اضافه کنم.
بیایید اجرا کنیم تا ببینید چه اتفاقی می‌افتد.
پس می‌بینیم هیچ چیزی روی کنسول نوشته نشده است.
ما به این خط کد می‌رسیم که می‌گوید car Audi new car.
پس یک شی جدید از کلاس car ما ایجاد می‌شود.
پس ما در این خط هستیم.
سپس یک‌بار وارد می‌شویم؛ یعنی وارد خط کدی می‌شویم که چیزی را اجرا می‌کند
در جای دیگری، جایی که می‌بینید وارد کلاس car ما می‌شود.
پس می‌بینید internal class car را و این خط را اجرا می‌کند که می‌گوید public car، که سازنده ماست،
Console.WriteLineکه سپس در خط بعدی این دستور را اجرا می‌کند.
و وقتی اجرای کد سازنده تمام شد، به اینجا برمی‌گردد.
حالا در خط بعدی یک Audi داریم.
می‌بینید اگر نشانگر را روی Audi ببرید، می‌گوید Audi شامل classes app.car است.
پس این یک شی از کلاس car است.
و سپس خط بعدی را اجرا می‌کند که همان «سلام دنیا» است.
پس اگر حالا به این نگاه کنیم می‌بینیم یک شی از کلاس car ایجاد شده است.
و سپس می‌گوید سلام دنیا.
خوب.
پس حالا اینجا همان جایی است که ایجاد یک شی از کلاس car یا ایجاد یک نمونه از کلاس
کلاس car.
خوب.
پس این یک راه دیگر برای گفتن آن است.
اما این اولین شی کوچک ماست و ما آن را Audi نامیدیم.
newو با این کلمه کلیدی به آن مقدار دادیم چون قبل از آن فقط یک پوسته خالی بود.
carو حالا یک شی جدید به آن اختصاص دادیم.
Audiما مقداری فضا در حافظه اختصاص دادیم و حالا این را در دسترس قرار دادیم.
خوب، فقط یک نکته آخر، بیایید یک شی دیگر از car بسازیم.
پس من قرار است یک شی car دیگر ایجاد کنم.
این یکی BMW خواهد بود که آن هم یک car جدید است.
پس اگر الان این کد را اجرا کنیم می‌بینیم که فقط می‌گوید یک شی از car یا چه گفتیم اینجا؟
یک شی از car ایجاد شده است و این دوبار نشان داده می‌شود چون ما دو شی می‌سازیم و هر دو
اشیاء فعلاً اصلاً تغییر نکرده‌اند.
اما این چیزی است که می‌توانیم تغییر دهیم.
می‌توانیم اطلاعاتی که یک car درباره خود دارد را تغییر دهیم.
پس می‌توانیم آن را تغییر دهیم.
یک Audi می‌داند که خودش Audi است.
و بعد BMW می‌داند که خودش BMW است.
و این چیزی است که در ویدیوی بعدی به آن می‌پردازیم.
پس آنجا می‌بینمتان.