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

[تنبيه - عنوان غير مناسب : ]لعباقرة البرمجه

بدأه YAR في 16 سبتمبر 2009 · 12 رد · 673 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

خواتم مباركه عليكم جميعا اعضاء وزوار هذا المنتدى المتميز.

حاولت افكر في برمجة داله مرنه فهي مفيده جدا وخاصه للذين يصممون مشاريع تخرجهم

ولم استطع ولهذا لجأت اليكم.

فكرة هذا الداله انها مرنه مرونه ليس لها حدود

وتتمثل مرونتها في ميزتين رئيسيتين والميزه الثانيه هي الاصعب

الميزه الاولى :انها تستطيع استقبال عدد غير محدد من المتغيرات

الميزه الثانيه(الأصعب):ان تكون هذه المتغيرات مختلفه الانواع وترتيبها

أما الميزه الاولى فحلها سهل وهو بأستخدام Generic كما اعتقد

ولكن في هذه الحاله يجب ان تكون كل المتغيرات من نفس النوع وهنا لا تتحقق الميزه الثانيه

فأرجو افادتي وايضاح اذا كان ذللك ممكنا ام لا

ولكم جزيل الشكر

#2

بالنسبة لتمرير أي صنف كما كان، فلو جعلت كل الarguments من صنف Object والتي هي الكلاس الأم لجميع كلاسات الجافا، لكن لا أرى فائدة لمثل هذه الميثود

#3

السلام عليكم ...

حسناً تريد فعل شيء مثل Variadic Temlates في ++C الجديدة :)

عموماً الموضوع ليس صعباً, بدلاً من تمرير المتغيرات من خلال استدعائهم كـ Parameters في الدالة, اجعل الدالة تستقبل Array من النوع Object. يمكنك ملئ هذا الـ Array بعد ذلك و تمريره للدالة,

هذه الطريقة تشبه الموجودة في Perl,

عموماً هذا مثال بسيط,

public static void main(String[] args)
{
	Object[] arguments = new Object[3];

	arguments[0] = 3;
	arguments[1] = 10.0;
	arguments[2] = "Arabteam2000";

	example(arguments);
}

public static void example(Object[] parameters)
{
	for(int i = 0; i < parameters.length; i++)
	{
		System.out.println(parameters);
	}
}

بالمناسبة هذا هذا يسمى printf style, و هو مفيد جداً و أختلف مع herch في ذلك, بالنظر إلى أن معظم اللغات الحديثة تسمح به,

عموماً ما هو المطلوب بالتحديد من الدالة التي ستقوم بكتابتها ؟

غير ذلك فأنت تطلب المستحيل من Java :wink:

تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 16 سبتمبر 2009 في 04:01

#4

الأخ الكريم/الأخت الكريمة

السلام عليكم ورحمة الله وبركاته

مرحباً بكم في منتدى الفريق العربي للبرمجة

نود تنبيهك أن العنوان غير مناسب.

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

وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!!

قواعد المشاركة

/index.php?showtopic=29343

شاكرين لكم حُسن تعاونكم

#5

عليكم السلام

عنوان موضوعك مستفز ... ولا اعتقد بان احد من الاعضاء يجهل تنفيذ المطلوب، علما بانه قد يسبب مشاكل اذا لم تستخدم انترفيس لنوع المدخلات.

على اي حال هذه اسرع طريقة لتنفيذ الطلب.

	
	public static void test(Object... objects){
		for(Object o:objects){
			System.out.println(o);
		}
	}

	public static void main(String[]ar){
		test("otman", 9, 10L, 'A', 5.5f);
	}
#6

وعليكــم السـلام ورحمة الله وبركاتـه..

اقتباس
الميزه الاولى :انها تستطيع استقبال عدد غير محدد من المتغيرات

تستطيع عملها ب Varadic Function وليس بالgeneric ..

بالتوفيق ،،

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#7

أخي العيافي, جميل جداً شكراً على المعلومة, ماهو إصدار Java الذي تعملون عليه :D

#8

طريقة الأخ العيافي يمكن استعمالها منذ النسخة الخامسة

#9

أهلا خالد ،،

منذ جافا 5 ، أصبحت اللغه تدعم هذه الطريقة ...

وتوجد printf أيضا بنفس إمكانيات لغه السي ;)

بالتوفيق :)

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#10
Khaled.Alshaya كتب:

غير ذلك فأنت تطلب المستحيل من Java :wink:

ما فيه مستحيل في جافا ...

يا مشرف السي

<< -- تحس انه يسب :P

عزيزي خالد الشايع انا اعتمد على الاصدار 1.6

علما بان الطريقة موجوده في 1.5 .

#11
herch كتب:

لكن لا أرى فائدة لمثل هذه الميثود

رايي من رأي الاخ herch

فلا يمكن تنفيذ اي عملية داخل هذه method سوى methods الموجوده في الكائن Object

والله اعلم

#12

lol

public class Main {

	public static void main(String[] args) {
		test("Mosh", 1, new Main(), "LOL");
	}

	public static void test(Object... objects) {
		for (Object obj : objects) {
			System.out.println(obj.toString() + " : " + obj.getClass().getSimpleName());
		}
	}

	@Override
	public String toString() {
		return "Main Class";
	}
}

result

Mosh : String
    1     : Integer
Main Class : Main
LOL   : String

editing : add console tag

تم تعديل هذه المشاركة بواسطة Mohammed Mshari Ersan في 16 سبتمبر 2009 في 10:20

#13

أهلاً بالشباب,

الصراحة طلعت مثلي مثل قلتي في Java :lol:

خلاص هدنة :P

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…