جاري التحميل...

الحقول

ضع حقلًا int اسمه fill داخل الفئة Cup. في Pine أبقِ Main وابنِ كأسًا واحدًا بـ Cup c = new Cup();، خزّن رقمًا بـ c.fill = 3;، ثم اكتب ذلك الحقل بـ Console.WriteLine(c.fill);. أبقِ النوعين في ملف التعليم نفسه حتى يبقى dotnet run بسيطًا. شغّل بـ dotnet run. يجب أن تُظهر الشاشة سطرًا واحدًا: 3. الحقل يحفظ البيانات على ذلك الكائن الواحد. تصل إليه عبر المتغير الذي يسمّي الكائن. تخزين تلك القيمة وقراءتها على الكائن هو ما تعلّمه هذه الصفحة. أبقِ اسم الفئة العامة البادئة Pine.

مكان للبيانات على الكائن

في صفحة الكائنات، كان beep يكتب فقط. لم يحتفظ برقم لوقت لاحق. الحقل اسم تعلنه داخل الفئة ويمكن لكل كائن أن يحتفظ بقيمته الخاصة فيه. بعد أن يبني new الكائن، تعيّن الحقل عبر متغير الكائن، ثم يمكنك كتابته على الشاشة.
افتح ملف Pine. اسم فئة البدء يبقى Pine. هذه الصفحة لا تعيد تسمية البادئ. احذف أي بقايا c.beep(); إن كان استدعاء Chip ذلك كل ما لديك في Main. احذف أي بقايا فئة Chip. احذف أي سطر ReadLine. الملف الذي تحتفظ به لا ينتظر الكتابة.
خارج أقواس Pine المعقوفة — وما زلت في الملف نفسه — اكتب public class Cup. داخل أقواس الفئة اكتب سطر حقل واحد: int fill;. لا يوجد متد في هذا الصندوق الأول. لا يوجد Main داخل Cup في هذه الصفحة. احفظ الملف قبل التشغيل.
البرنامج المعبأ الأول يعرض Cup وحده لتقرأ الحقل بوضوح. البرنامج المعبأ الثاني هو الشكل المحتفظ به مع Pine يعيّن fill ويكتبه.

Cup with fill field

csharp
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();. ذلك كان درس الكائنات.

Pine sets and prints fill

csharp
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");. لا تعيد تثبيت .NET 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. ملف ما زال يستدعي c.beep(); مع فئة Chip هو الدرس السابق. لهذه الصفحة أبقِ Cup وPine وحقل fill. لا تحتاج beep هنا.
إن كتبت Console.WriteLine(c); وحدها، فلن تُظهر الشاشة 3 نظيفًا. تطبع نص الكائن الافتراضي. لرؤية الرقم المخزَّن اكتب Console.WriteLine(c.fill);.

كأسان يحتفظان بـ 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 واحدًا. في هذه الصفحة استخدم عبارتي new Cup() عندما تريد قيمتي fill منفصلتين.
لا تحتاج برنامجًا معبأً ثالثًا لذلك التمرين. عدّل Pine بعناية وشغّل مجددًا. ثم يمكنك استعادة صندوق الكأس الواحد إن أردت الشكل الأول للاختبار.

ماذا تضيف المُنشئات لاحقًا

هذه الصفحة تعيّن الحقل بعد new بسطر منفصل: c.fill = 3;. صفحة لاحقة — المُنشئات — ستُظهر طريقة أخرى لوضع قيم البداية عند بناء الكائن. ابقَ هنا مع الحقل البسيط والتعيين بعد new. لا تخترع متد مُنشئ في هذه الصفحة.
توجد قيم افتراضية للحقول التي لا تعيّنها أبدًا: حقل int يبدأ عند 0. إن كتبت c.fill قبل أي تعيين، قد تُظهر الشاشة 0. هذه الصفحة ما زالت تعلّم التعيين الذي تكتبه بنفسك، لذا أبقِ c.fill = 3; قبل الكتابة في العرض الرئيسي.
لا تُدخل Cup داخل أقواس Pine المعقوفة. في هذه الصفحة الفئتان أختان في الملف. الحقل داخل Cup. Main داخل Pine. إن لم يجد البناء Cup أثناء تجميع Pine، تحقق من أن public class Cup في الملف نفسه. إن أظهرت الشاشة 0 وأنت توقعت 3، فقد يكون سطر التعيين ناقصًا أو يعمل بعد الكتابة — ضع c.fill = 3; فوق Console.WriteLine(c.fill);.

يمكنك إعلان int fill; داخل Cup، وبناء Cup c = new Cup();، وتعيين c.fill = 3;، وكتابة c.fill من Pine.Main. شغّل بـ dotnet run. الشاشة تظهر 3. كائنان يمكنهما الاحتفاظ بقيمتي fill مختلفتين. فكّر في fill كخانة موسومة على كل كأس تبنيه بـ new. Pine يبقى الباب الذي تفتحه بـ dotnet run. الصفحة التالية هي المُنشئات، حيث تبدأ بوضع القيم في لحظة بناء new للكائن.

🧠 اختبر معرفتك

جاهز للبدء

اختبر معرفتك

تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع

❓
6
الأسئلة
🎯
70%
للنجاح
♾️
∞
الوقت
🔄
∞
المحاولات

📝 التعليمات

  • اقرأ كل سؤال بعناية
  • اختر أفضل إجابة لكل سؤال
  • يمكنك إعادة الاختبار عدة مرات كما تريد
  • سيتم عرض تقدمك في الأعلى