الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية انشاء كائن فى لغة الجافا

مغلق
بدأه احمد غريب في 26 يوليو 2007 · 4 رد · 1,030 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

قبل فترة طرحت موضوع عن البرمجة الكائنية على هذا الرابط والان سؤال متعلق بنفس الموضوع..

انا طبعاً اعرف ان انشاء كائن يتم بواسطة الدالة new ولكن وجدت ان هذا البرنامج ينشئ كائن بطريقة غريبة فارجو الشرح..

public static SinkInfo init() {
	return new SinkInfo("Intro", "Some text") {

	  public Sink createInstance() {
		return new Info();
	  }
	};
  }

السطر الثاني يقوم بعملية return وفى نهاية السطر يقوم بعملية } ويتابع ويقوم بعمل } ثانية فى السطر الثالث ثم يتبعها بعملية return فى السطر الرابع..

اتوقع انه سوف يقوم بعملية return لكائن ولكن هذه الطريقة لم تمر علي من قبل لا فى c++ ولا فى smaltalk ولا حتى فى PHP فهل من يتصدق علينا بشرح ...

والسلام عليكم

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#2

هلا أخوي أحمد , صدقت .

في لغة الجافا في شئ مختلف , هو طبعاً مثل لغة السي++ في المفهوم لكن مع إختلاف الإسلوب .

هو فقط بدل ما يكتب تعريف لكلاس بشكل منفرد , قام وكتب التعريف بنفس الكود . يعني يعرفه وسط الكود . وهذه تحصل كثير خصوصاً إذا كنت تبي تعرف من Interface أو abstract class . ولو تبحث عن هذه الكلمة anonymous class راح تحصل مقالات كثيرة عنه . يعني تعرف كلاس بدون ما يكون له إسم .

وعشان تكون الصورة واضحة , إعتبر SinkInfo إسم كلاس و } بداية تعريف الكلاس و { نهاية تعريف الكلاس . أما public Sink createInstance فهو تعريف دالة في الكلاس SinkInfo .

فلو تحاول تفصل الكود كالتالي :

public class SinkInfo
{
	public Sink createInstance() {
		return new Info();
	  }
};

public static SinkInfo init() {
	return new SinkInfo("Intro", "Some text");
}

مع توضيح إن كود هذا لو صلحت له ترجمة راح يطلع لك أخطاء لأنه في معلومات ناقصة .

تم تعديل هذه المشاركة بواسطة b.m.s في 26 يوليو 2007 في 23:04

#3

الأخ أحمد غريب ، ها أنت درست smalltalk ؟

ممكن تكلمنا عنها شويه ، أنا أعرف أنها من أولي اللغات تطبيقا لل برمجه الشيئيه بس عمري ما شفتها

#4

السلام عليكم

شكراً اخى b.m.s الان اتضحت الصورة ووجدت روابط تتحدث عن anonymous class الغاية منها هو لتحسين شكل الشفرة ويمكن الاستغناء عنها بالقيام بعمل class منفصل..

الاخ مبتدئ انا استخدمت smaltalk عام 93 اخر مرة يعنى صعب جداً اتذكر التفاصيل وصعب ان اشرح اى شيئ عنها, ولكن ما اذكره جيداُ هو ان لغة smalltalk كانت اللغة الوحيدة التى يمكننا ان نطلق عليها oop لانها لا تقبل إلا class و object فقط, لا تستطيع عمل داله خارج الclass ولا حتى متغير.. على كل حال مازال هناك بعض المبرمجين القدامى مهتمين بهذه اللغة يمكنك الحصول على الكثير من المعلومات من خلال جوجل..

والسلام عليكم

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#5

السلام عليكم

هذا تعريف لكلاس مجهول الهويه ( بدون اسم) ،

هذا المجهول هو subclass للكلاس المعرف ( SinkInfo ) الفائده من هذه هو لعمل override لمثد في السوبر كلاس (سواءاً كان كلاس او انترفيس ) ,

الأهم هو السمي كولن في نهاية تعريفك للكلاس المجهول .

بالنسبة للجافا فابمكانك القول بأنه 99.999999% Object Oriented

هذا الموضوع مغلق.

مواضيع مشابهة