البرمجة

تأملات حول الأشياء في Java: لماذا يمكن لكائن أن ينتمي إلى فئتين؟

في عالم البرمجة، يُطرح سؤال مهم يدور في أذهان المبتدئين: هل يمكن للكائن (Object) أن ينتمي إلى صنفين (Class)؟ وحينما تبدأ رحلتك في تعلم لغة Java، تظهر لك مثل هذه الأسئلة المثيرة للجدل والتي تجعلك تتساءل عن الهيكل الداخلي للغة.

فلنبدأ بالنظر في الكائن المحير الذي هو System.out، وهو يستخدم في الشيفرة لإخراج بيانات إلى وحدة الإخراج القياسية. عندما نقوم بكتابة “System.out.println()”، نقوم بطباعة سلسلة نصية إلى الشاشة. الأمر الذي يثير التساؤل هو التبعية الصنفية لكائن out. في البداية، يتعلم المبتدئ أن out ينتمي إلى صنف System، لكن بمرور الوقت، يتضح أن هذا الكائن ينتمي أيضًا إلى صنف آخر وهو PrintStream. هل يمكن أن ينتمي الكائن إلى صنفين؟ نعم، يمكن ذلك.

الأمر يتعلق بمفهوم في البرمجة يسمى التوريث (Inheritance). التوريث يسمح لصنف بأن يرث الخصائص والسلوكيات من صنف آخر. في حالة System.out، يرث PrintStream من OutputStream، وهكذا يتمكن من القيام بوظائف الإخراج.

لكن كيف يتعلق هذا بالكتابة العملية للشيفرة؟ عندما تكون لديك متغير من نوع PrintStream، يمكنك استخدامه ككائن من نوع PrintStream وأيضاً ككائن من نوع OutputStream. إذاً، يمكنك القيام بالعديد من العمليات باستخدام الطرق المتوفرة في كلا الصنفين.

أما بالنسبة للسؤال الثاني حول كتابة اسم الصنف عند استخدام الكائن، فهو موضوع يتعلق بمفهوم آخر يسمى الوصول (Access). في Java، إذا كان الطريقة أو الخاصية (Method أو Field) هي جزءًا من نفس الصنف الذي يتم فيها الاستخدام، يمكنك استخدامها بدون كتابة اسم الصنف. في حالة String.greeting.length()، يمكن استخدام length() بدون كتابة اسم الصنف لأنها تتم في سياق الصنف String.

هكذا، يكون تحليل الأمور في عالم البرمجة أحيانًا معقدًا ولكنه يسهم في فهم عميق للغة واستخدامها بشكل أفضل.

المزيد من المعلومات

بدايةً، يتعين عليك أن تعلم أن موضوع الكائنات والفئات في لغة البرمجة Java يشكل جزءًا أساسيًا من فهمك لهذه اللغة القوية. عند النظر إلى مثالك حول الكائن “out” في Java، يُظهر ذلك بوضوح.

في الواقع، ينتمي “out” إلى فئتين في Java. أولاً، يتبع “out” نمط البرمجة الكائنية الموجود في Java، حيث يكون لكل كائن فئة تمثل نوعًا من البيانات والسلوك. يتمثل “System” في هذه الحالة في فئة، ولهذا يجب عليك كتابة “System.out” للإشارة إلى الكائن “out”.

لكن النقطة المثيرة للاهتمام هي أن “out” أيضًا ينتمي إلى فئة أخرى تسمى “PrintStream”. هذا يفسر كيف يمكنك استخدام أساليب مثل “println”، حيث تنتمي هذه الأساليب إلى فئة “PrintStream” وتُمكِّن من إجراء الإخراج إلى واجهة النص في Java.

للإجابة على سؤالك بشكل مباشر، فإن “out” في هذا السياق ينتمي إلى كل من فئة “System” وفئة “PrintStream”. وهنا يظهر تميز Java في إمكانية للكائن أن ينتمي إلى أكثر من فئة.

أما بالنسبة لسؤالك حول كتابة اسم الفئة عند استخدام الأساليب، فإن الأمر يعتمد على السياق. في حالة “out”، يُستخدم “System.out” للتمييز بين الفئة “System” و”PrintStream”، لكن عند استخدام أساليب من كائنات أخرى مثل السلسلات، يمكنك الاستغناء عن كتابة اسم الفئة، كما هو الحال في مثالك مع السلسلة وأسلوب “.length()”.

باختصار، يمكننا القول إن العالم البرمجي في Java مليء بالتفاصيل المثيرة والتي تحتاج إلى فهم دقيق. ومع استمرار رحلتك في تعلم Java، ستزيد فهمك لهذه النقاط وتبدأ في رؤية جماليات اللغة ومرونتها.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر