فیلدها
یک فیلد int بهنام fill داخل کلاس Cup بگذارید. در Pine، Main را نگه دارید و با Cup c = new Cup(); یک cup بسازید، با c.fill = 3; عدد ذخیره کنید، بعد با Console.WriteLine(c.fill); همان فیلد را بنویسید. هر دو نوع را در همان فایل آموزشی نگه دارید تا dotnet run ساده بماند. با dotnet run اجرا کنید. صفحه باید یک خط نشان دهد: 3. فیلد داده را روی همان یک شیء نگه میدارد. از راه متغیری که شیء را نام میبرد به آن میرسید. ذخیره و خواندن آن مقدار روی شیء کار این صفحه است. نام کلاس عمومی شروعکننده را Pine نگه دارید.
جایی برای داده روی شیء
در صفحهٔ اشیاء، beep فقط مینوشت. عددی برای بعد نگه نمیداشت. فیلد نامی است که داخل کلاس اعلام میکنید و هر شیء میتواند مقدار خودش را در آن نگه دارد. بعد از اینکه new شیء را ساخت، از راه متغیر شیء به فیلد مقدار میدهید، بعد میتوانید روی صفحه بنویسیدش.
فایل Pine را باز کنید. نام کلاس شروعکننده Pine میماند. این صفحه شروعکننده را عوض نام نمیکند. اگر هنوز باقیماندهٔ c.beep(); همهٔ چیزی است که در Main دارید، پاکش کنید. هر باقیماندهٔ کلاس Chip را پاک کنید. هر خط ReadLine را هم پاک کنید. فایلی که نگه میدارید منتظر تایپ نیست.
بیرون از آکولادهای Pine — هنوز در همان فایل — بنویسید public class Cup. داخل آکولادهای کلاس یک خط فیلد بنویسید: int fill;. در این جعبهٔ اول متدی نیست. در این صفحه داخل Cup هیچ Main نیست. پیش از اجرا فایل را ذخیره کنید.
برنامهٔ جعبهای اول فقط Cup را نشان میدهد تا فیلد را تمیز بخوانید. برنامهٔ جعبهای دوم شکل نگهداشتنی با Pine است که fill را مقدار میدهد و مینویسد.
using System;
public class Cup
{
int fill;
}
Pine مقدار fill را میگذارد، بعد مینویسد
Pine مقدار public static void Main() را نگه میدارد. داخل Main سه خط به ترتیب بنویسید: Cup c = new Cup();، بعد c.fill = 3;، بعد Console.WriteLine(c.fill);. خط اول شیء را میسازد. خط دوم عدد 3 را در fill همان شیء ذخیره میکند. خط سوم عدد ذخیرهشده را مینویسد. در این صفحه c.beep(); صدا نمیزنید. آن درس اشیاء بود.
using System;
public class Pine
{
public static void Main()
{
Cup c = new Cup();
c.fill = 3;
Console.WriteLine(c.fill);
}
}
public class Cup
{
int fill;
}
فایل نگهداشتنی را از بالا بخوانید. using System; نامهای کوتاه را آماده میکند. public class Pine شروعکننده است. public static void Main() جایی است که زماناجرا شروع میکند. new Cup() یک شیء میسازد و در c میگذارد. مقداردهی c.fill = 3 عدد 3 را در فیلد همان شیء مینویسد. WriteLine(c.fill) همان فیلد را میخواند و 3 مینویسد. عدد روی صفحه مقدار ذخیرهشده روی شیء است، نه چاپ سختکد یک رشته مثل "ok".
با dotnet run اجرا کنید. برنامه یک خط مینویسد و میایستد. منتظر تایپ شما نمیماند. اگر dotnet run منتظر ماند، هنوز ReadLine در فایل است. آن خط را پاک کنید و همان سه خط بالا را در Pine نگه دارید، با فیلد fill در Cup. صفحه 3 نشان میدهد. اگر صفحه ok نشان داد، هنوز صدای باقیماندهٔ c.beep(); اجرا میشود. اگر حروف Cup روی صفحه آمد، خط نوشتن نقلقول دارد: Console.WriteLine("Cup");. برای صفحهٔ اشتباه SDK را دوباره نصب نمیکنید.
اجرا را یکبار دیگر به ترتیب ببینید. C# از Pine.Main شروع میکند. دستور اول با new Cup() یک شیء میسازد و در c میگذارد. دستور دوم 3 را در c.fill ذخیره میکند. دستور سوم آن فیلد را مینویسد. بعد Main تمام میشود. نام فیلد fill یکبار در کلاس اعلام شده. هر شیء ساختهشده از Cup جایگاه خودش را برای آن نام میگیرد. وقتی c.fill مینویسید، اول شیء را نام میبرید، بعد جایگاه روی همان شیء را. همین ترتیب — شیء، بعد فیلد — شکل این صفحه است.
کلاس، شیء و فیلد کنار هم
سه نام را یکبار در جدول کوچک بخوانید. روی این صفحه خط فیلد همیشه از راه یک شیء میرود.
📊 class object field
| Name | What it is on this page |
|---|---|
Cup |
the class / type beside Pine |
c |
one object built with new Cup() |
c.fill |
the int stored on that object |
نوشتن Cup.fill = 3; بدون شیء با شکل مبتدی این صفحه جور نیست. فیلد مال هر شیء بعد از new است. اول بسازید، بعد از راه متغیر مقدار بدهید. نوشتن فقط new Cup(); بدون ذخیرهٔ نتیجه هم نامی برای fill نمیگذارد. نگه دارید Cup c = new Cup(); بعد c.fill = 3;.
یک دموی باقیماندهٔ اشیاء میتواند Main را گیج کند. فایلی که هنوز با کلاس Chip صدا میزند c.beep(); درس قبل است. برای این صفحه Cup و Pine و فیلد fill را نگه دارید. اینجا به beep نیاز ندارید.
اگر فقط Console.WriteLine(c); بنویسید، صفحه یک 3 تمیز نشان نمیدهد. متن پیشفرض شیء را مینویسد. برای دیدن عدد ذخیرهشده بنویسید Console.WriteLine(c.fill);.
دو cup مقدار fill جدا نگه میدارند
از Cup میتوانید دو شیء بسازید. هر کدام fill خودش را دارد. عوض کردن یکی دیگری را عوض نمیکند.
در Pine میتوانید بنویسید Cup a = new Cup(); و Cup b = new Cup();، بعد a.fill = 2; و b.fill = 9;، بعد a.fill و b.fill را بنویسید. بعد از dotnet run صفحه باید روی یک خط 2 و روی خط بعد 9 نشان دهد. هر دو شیء متن کلاسی که fill را اعلام میکند شریکند، ولی هر شیء عدد خودش را نگه میدارد.
اگر وقتی دو عدد متفاوت میخواستید هر دو نوشتن همان مقدار را نشان دادند، ببینید هر دو فیلد را مقدار دادهاید و Cup b = a; ننوشتهاید. آن خط باعث میشود b به همان شیء a اشاره کند، پس هر دو نام یک fill شریکند. در این صفحه وقتی دو fill جدا میخواهید دو عبارت new Cup() بنویسید.
برای آن تمرین به برنامهٔ جعبهای سوم نیاز ندارید. Pine را با دقت ویرایش کنید و دوباره اجرا کنید. بعد اگر شکل اول کوئیز را میخواهید، جعبهٔ تکcup را برگردانید.
سازندهها بعداً چه اضافه میکنند
این صفحه فیلد را بعد از new با خط جدا مقدار میدهد: c.fill = 3;. صفحهٔ بعدی — سازندهها — راه دیگری برای گذاشتن مقدار شروع وقتی شیء ساخته میشود نشان میدهد. اینجا با فیلد ساده و مقداردهی بعد از new بمانید. روی این صفحه متد سازنده اختراع نکنید.
برای فیلدهایی که هرگز مقدار نمیدهید مقدار پیشفرض هست: فیلد int از 0 شروع میکند. اگر قبل از هر مقداردهی c.fill بنویسید، صفحه میتواند 0 نشان دهد. این صفحه هنوز همان مقداردهیای را که خودتان مینویسید آموزش میدهد، پس در دموی اصلی c.fill = 3; را قبل از نوشتن نگه دارید.
Cup را داخل آکولادهای Pine تودرتو نکنید. در این صفحه دو کلاس همسطح در فایل مینشینند. فیلد داخل Cup است. Main داخل Pine است. اگر ساخت نتوانست Cup را پیدا کند، ببینید public class Cup در همان فایل است. اگر وقتی 3 میخواستید صفحه 0 نشان داد، ممکن است خط مقداردهی نباشد یا بعد از نوشتن اجرا شود — c.fill = 3; را بالای Console.WriteLine(c.fill); بگذارید.
میتوانید داخل Cup بنویسید int fill;، با Cup c = new Cup(); بسازید، c.fill = 3; بگذارید، و از Pine.Main بنویسید c.fill. با dotnet run اجرا کنید. صفحه 3 نشان میدهد. دو شیء میتوانند دو fill متفاوت نگه دارند. fill را مثل جایگاه برچسبدار روی هر cup که با new میسازید ببینید. Pine همان دری است که با dotnet run باز میکنید. صفحهٔ بعد سازندههاست، جایی که وقتی new شیء را میسازد شروع میکنید مقدار بگذارید.
🧠 دانش خود را بیازمایید
دانش خود را بیازمایید
خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کردهاید
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود