المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : [درس] سلسلة دروس الجافا مع Son of UAE



Son Of UAE
18-06-2006, 10:52 PM
بسم الله الرحمن الرحيم
مقدمة :
ما هي الجافا ؟ هي لغة برمجة مبنية على السي بلاس بلاس ظهرت سنة 1995 لاول مرة. وهي من انتاج شركة سن مايكروسيستمز المختصة أصلاً بصناعة المعالجات القابلة للبرمجة. تنقسم البرمجة على الجافا إلى نوعين رئيسيين:
1 – التطبيقات / وهي البرامج التي تعمل بشكل طبيعي عند تشغيلها على اي نظام يدعم الجافا.
2 – الأبليت / وهي البرامج الصغيرة التي تعمل بواسطة متصفح الأنترنت.
يحتاج أي نظام تشغل إلى برنامج يقوم بتحويل أكواد الجافا إلى أكواد يفهمها النظام ويعرف بإسم جافا فرتشوال مشين JVM.

للبدء بكتابة أول برنامج للجافا تحتاج إلى برنامج لتحرير الأكواد و كمبايلر. و أنا شخصياً أستخدم برنامج JBuilder x . حيث يكون مصدر البرنامج بصيغة java وبعد التحويل يصبح class.

أمور عليك معرفتها قبل البدء:
1 – برنامج الجافا قد يتكون من عدة كلاسات او واحد.
2 – يجب ان يكون هناك كلاس واحد فقط يحمل الدالة الرئيسية main().
3 – يجب أن يكون إسم الكلاس مماثل لإسم الملف المصدر.
4 – يجب ان يكون عندك خلفية عن اساسيات لغة السي بلاس بلاس.

أول برنامج Hello World:

public class HelloWorld {
public static void main(string[] args) {
System.out.println("Hello World");
}
}
هذا البرنامج يقوم بطباعة النص "Hello World" على الشاشة في المكان المخصص لذلك في برنامج jBuilder. الشرح كالتالي:
السطر الأول: هي تسمية الكلاس الذي سيحوي الأكواد المطلوبة وهو HelloWorld ولاحظ اهمية الحروف الكبيرة و الصغيرة حيث انها تشكل فروقات كبيرة. كما أن مصدر الملف يجب ان يكون بهذا الإسم ايضاً HelloWorld.java . وسيكون الأمر على هذا الحال لجميع الكلاسات الأخرى.
السطر الثاني: وهي الدالة الرئيسية التي تحدثنا عنها سابقاً.يجب أن توضع لي نجرب الأكواد التي نريد اختبارها.
السطر الثالث: نقوم باستدعاء دالة تساعدنا على كتابة الكود من كلاس أخر وهو System حيث يوجد به دالة println التي استخدمت. وندخل بها النص المراد اظهارة على الشاشة.

أمور أخرى نتعلمها:
الجافا هي لغة برمجة كائنية . بمعني أخر أنك تحتاج إلى كائن لكي تقوم بعمل وضيفة في البرنامج. الكائن هو عبارة عن نسخة من الكلاس فيجب علينا معرفة الكلاس لنتمكن من معرفة طبيعة الكائن. وهذا ما نتعلمه في الدروس القادمة. أما الأن فقد أكتفينا بفهم أساسيات تشغيل برامجنا المكتوبة بالجافا.

ملاحظات:
-الدروس القادمة تعتمد على رغبات الأعضاء و أنا أفضل التحدث عن المتغيرات ( الخصائص ) وأنواعها.
-لو أراد شخص نقل الموضوع فلا مانع على شرط وضع أسمي عليه و الرابط لهذه الصفحة.
-لتفاصيل أكثر عن الجافا و بعض المصادر إدخل هنا
http://www.montada.com/showthread.php?t=471061

PrinceOfSorrow
18-06-2006, 11:36 PM
:) مشكور على الجهد
بس عندي سؤال !؟ الجافا التي شرحتها هي
نفسها المستخدمة في تصميم برامج الشات (chat)!؟ وألعاب الاونلاين runscape ?

Son Of UAE
19-06-2006, 02:48 AM
الجافا هي الجافا .. للألعاب الأونلاين و للشات و للبرامج وللمبايلات. يعني لغة بها مكتبة متكاملة . ادخل موضوع أحمد صقر للمزيد من التفاصيل.

||صقر||
19-06-2006, 09:21 AM
الله الله ماشاء الله عليك جميل جداً مشكور و الله
انا فى اعتقادى انه قبل ان تبدأ بشر المتغيرات قم بشرح التعبيرات و المؤثارت ................
حتى تصبح سلسة الدروس متكاملة

Fox McCloud
19-06-2006, 09:29 AM
مشكووووووووووور اخوي وانتظر الشروح على احر من الجمر

GOGENDANTESS
19-06-2006, 01:37 PM
مشكووووووووووووووووور :)


و على فكرة شباب لعبة Rune Scape اللي الملايين يلعبونها على الإنترنت لعبة مبرمجة بالجافا ;)

kakarot
19-06-2006, 11:01 PM
شكراً على الدرس الرائع أنا بحكي تثبت هذا الموضوع للفائدة
وكل الأعضاء
لا يمانعون

||صقر||
20-06-2006, 09:59 AM
شكراً على الدرس الرائع أنا بحكي تثبت هذا الموضوع للفائدة
وكل الأعضاء
لا يمانعون
أقترح انه بعد ما ينتهى من الموضوع يضع فهرس له ويثبتة

GOGENDANTESS
20-06-2006, 01:32 PM
الله يوفقك son of uae و انشاء الله ما نتعبك بأسلئتنا :)

Son Of UAE
21-06-2006, 01:08 AM
في هذا القسم سنعرف الفرق بين الكلاس و الابجيكت و كيفية صنع كل واحد منهما. في البداية سوف نقوم بصنع كلاس للشكل المربع و هو مثال بسيط جداً لتجنب التعقيدات كبداية موفقة. قبل القيام بصنع الكلاس يجب ان نتبع التالي:
1- التسمية الصحيحة للكلاس, حيث ان تعريف الكلاس في الكود يجب ان يكون مطابق لإسمه في الملف المصدري و يكون أول حرف كبير.
2- يجب وضع دالة لها نفس إسم الكلاس وتكون لتعريف قيم المتغيرات في الكلاس نفسة وهي إجبارية في كل الأحوال.
3- يجب القيام بفتح مشروع أو حزمة نقوم بوضع الكلاسات بها قبل البدء بأي شيء.

معلومات عن المربع:
المربع له طول ضلع و من طول الضلع يمكن استخراج المساحة.

المتغيرات : length
الدوال: calculateArea()

خطوات العمل في الJbuilder:
1 – صنع مشروع جديد (Package) وذلك بالضغط على التالي :
File >> New Project
ثم أكتب اسم المشروع (montada01) و اضغط على Finish.
الأن أصبح لك مشروع جديد و يجب وضع الكلاسات فيه. سنقوم بوضع كلاسين بهذا المشروع. الأول للمربع Square و الثاني للتجربة Tester و هو الذي يحوي الدالة الرئيسية main() . لاحظ ان أول حرف للكلاس يجب ان يكون كابتل.
2 – صنع الكلاس Square وذلك بإتباع التالي:
File >> New Class
أعطي الكلاس الاسم Square وحرص انه ضمن المشروع montada01 ثم قم بختيار Public و Generate Default Constructor وألغي الباقي.
سيقوم الخيار الثاني بصنع دالة بأسم Square() وهي تسمى بالبناء أو المقاول حيث ستعطي قيم للمتغيرات كما ذكرنا سابقاً.
أفتح الملف المصدري وستجد التالي:

package montada01;

public class Square {
public Square() {
}

}

قم بإضافة الأكواد التالي:

package montada01;

public class Square {
int length;
public Square(int l) {
length = l;
}
public int calculateArea(){
int area;
area = length*length;
return area;

و الان نقوم بشرح الاكواد :
السطر الاول: يوضح ان الكلاس ينتمي للمشروع montada01.
السطر الثاني: يوضح أسم الكلاس و انه عام ( يمكن لأي شخص استخدامه).
السطر الثالث: تعريف المتغير length بأنه عدد صحيح Integer.
السطر الرابع و الخامس: تعريف البناء constructor و له مدخل يحدد طول الضلع. ويستخدم عند انشاء أوبجكت كما ستتعلم لاحقاً. وتقوم دالة البناء بوضع قيمة للمتغير length.
السطر السادس إلى التاسع: برمجة دالة تقوم بإرجاع المساحة وذلك بعملية ضرب الضلع في الضلع. لاحظ اننا عرفنا area داخل الدالة وهذا معناه اننا نستطيع استخدام المتغير داخل الدالة فقط.

وبهذا فقد انجزت أول كلاس ( مبروك ) . و الان , كيف لنا ان نختبر صحة هذا الكلاس ؟ أولاً يجب انشاء كلاس للفحص Tester و نقوم باستخراج اوبجيكتات من الكلاس المراد فحصه.

أتبع الخطوات التالية لصنع كلاس الفحص:
File >> New Class
أعطي الكلاس الاسم Tester و لا تنسى أن يكون تابع للمشروع montada01. ثم أختر Public و Generate main Method. حيث سيقوم الخيار الثاني بإنشاء الدالة الرئيسية. لاحظ انه في المشروع الواحد يجب ان يكون ناك فقط دالة رئيسية واحدة لا غير. إفتح الملف وستجد التالي:

package montada01;

public class Tester {
public static void main(String[] args) {
}
}

3 - سوف نقوم بالتالي .. سوف نقوم بإنشاء اوبجيكت مربع و من ثم نعرض طول ضلعة و مساحتة على الشاشة. يجب اتباع الاسلوب التالي حرفياً لصنع أوبجيكت من الكلاس Square.
قم بإدخال الكود التالي و سيأتي الشرح بعد ذلك:

package montada01;

public class Tester {
public static void main(String[] args) {
Square sqr01 = new Square(15);
System.out.println("My Length is "+sqr01.length);
System.out.println("my Area is "+sqr01.calculateArea());
}
}

طبعاً تم شرح أول سطرين ونبدء من الثالث:
السطر الثالث: يأحث دائماً هذا الشكل و لا نقوم بتغير اي شيء به.
السطر الرابع: هذا هو كود انشاء الاولجيكت الجديد . حيث ان Squareهو اسم الكلاس المستخدم و sqr01 هو اسم الاوبجيكت الجديد. new هي كلمة مفتاحية تدل أنك تريد وضع قيم للمربع sqr01 حيث تستخدم الدالة Square(15) ويكون المدخل فيها 15. وبهذا يكون لديك اوبجيكت مربع له اسم sqr01 وطول ضلعه 15.
السطر الخامس : نقوم بطباعة قيمة المتغير length على الشاشة وذلك بأخذها مباشرة من الأوبجيكت. هذه الطريقة غير أمنة ولكن كتمرين سنتابع إلى ان نصل للمستوى المطلوب.
السطر السادس : نقوم بطباعة المساحة على الشاشة وذلك عن طريق الدالة التي ترجع قيمة المساحة ( راجع مصدر الكلاس Square للتأكد).

وبهذا استوفينا جميع الشروط في كيفية انشاء كلاس ثم فحصه عن طريق استخراج اوبجيكت منه وتجربة جميع المتغيرات و الدوال التي به.:biggthump

تمارين :
1 – قم بإنشاء مربع جديد بأسم sqr02 وعرض قيم المربع الاول ثم المربع الثاني.
2 – قم بإنشاء كلاس جديد بإسم Rectangle و هو المستطيل و ضع له متغيرين width و length و دالة لحساب المساحة ودالة لحساب المحيط..
ومن ثم قم بختباره بنفس كلاس الفحص Tester.

المشروع مرفق
257368

||صقر||
21-06-2006, 10:12 AM
كفيت و وفيت أخى
إضافة بسيطة------>
الفرق بين public , private
public عند تعريف الفصيلة أو الدالة بها فهذا معناه انها متاحة للإستخدام والتغير اثناء عمل البرنامج أو حتى خارج الفصيلة
private عند تعريف الفصيلة أو الدالة بها فهذا معناه بأنها مقصورة الإستخدام على هذة الفصيلة ولا يمكن تعديلها خارج الفصيلة
:D

Son Of UAE
21-06-2006, 02:41 PM
لا تسبق الأحداث ... :speechless: .. انا ناوي احط الدروس التالية ان شاء الله . على حسب التفاعل طبعاً.
- المصفوفات: Array + Vector
- الوراثة Inheritence: أهم درس في السلسلة.
- مستويات الصلاحية : public + private + protected
- Overriding + overloading: خاص بالدوال methods
- معالجة الأخطاء Exception handler : تفادي الأخطاء بالبرنامج.
- الأبليت Applet: صنع برنامج يعمل في متصفح الانتر نت.
- واجة المستخدم Gui: ازرار ومساحات للكتابة إلى أخره.
- Polymorphism: تابع للوراثة وهو من أهم خصائص البرمجة الكائنية.

اريد أعرف من هم المستفيدين من هذه الدروس قبل الإستمرار بها. وللعلم . ستكون الدروس كلها بحته و لا تتعلق ببرمجة الألعاب و لكن ستكون الركيزة التي سنبدء بها. :biggthump

كم واحد يملك الJbuilder او ناوي يستفيد بعدين ؟

||صقر||
21-06-2006, 02:55 PM
اريد أعرف من هم المستفيدين من هذه الدروس قبل الإستمرار بها. وللعلم . ستكون الدروس كلها بحته و لا تتعلق ببرمجة الألعاب و لكن ستكون الركيزة التي سنبدء بها. :biggthump

كم واحد يملك الJbuilder او ناوي يستفيد بعدين ؟
سؤال فى القلب
ليس المهم من يتابعوك الآن فم المؤكد ان بعض الناس فى المستقبل سيستفيدون من الدروس و على العموم أعتبرنى معهم
فهى فرصة للمراجعة:D

||صقر||
21-06-2006, 02:59 PM
Polymorphism:
:bigeyes: أعتقد اسمها Polymorphizen
كما ان Overriding + overloading تابعين لها

Son Of UAE
21-06-2006, 04:52 PM
Polymorphism === بريطاني
Polymorphizen === امريكي

Overriding + overloading === ليس لهم علاقة بالبوليمرفزم :أفكر:

من التراب
21-06-2006, 10:42 PM
سلام ...^^

جافا أخيرا .... أنا متشوق للدروس وكل الي تم شرحه فاهمنه 100%

بس الصراحه ماعندي الJbuilder لكن أملك BuleJ برنامج حلو للتعلم ^^"

ابن الإمارت ..... تابع وأحتسب الأجر من الله

وانا بتابعك درس بدرس .... أريد أطير وأشوف موضوع احمد صقر :)

شكرا ...^^

HeRmAnO
22-06-2006, 03:35 AM
مشكوور اخوي على سلسة الدروس .. ولكن في الشرح الثاني .. السطر الخامس والسادس مني بفاههمه.. ؟؟؟

ابيك توجزلي اياه ..

شي ثاني .. انت نعطينه كودات .. ما تعلمنه نكتبهه .. ارجو تعلمنه شوي شلون نكتبهه علشان نعتمد على روحنه

وشكرااا

||صقر||
22-06-2006, 09:32 AM
Polymorphism === بريطاني
Polymorphizen === امريكي
هههههههه
يعنى انا أمريكى طيب:D

Overriding + overloading === ليس لهم علاقة بالبوليمرفزم :أفكر:
على العموم لست انا من سيرد على هذا بل العضو أو إم إس بنفسة (مراقب منتدى البرمجة)
تفضل

Polymorphizen : الشرط الرابع

Override وال Overload يمكن تقسيمه إلى نوعين وهما الوهي عبارة عن دوال لهم
هذة من دورتة فى السى شارب و إذا كان قصدك بها شئ أخر فأرجوا التوضيح

عاشق الصمت
22-06-2006, 02:20 PM
son of uae ... ممتاز أخوي.
شرح جيد وأسلوب مبتكر .
لكن بعض الردود الجانبية تفسد طعم الدرس :(
أتمنى لو كانت لديك الإمكانية في عمل هذه الدروس على شكل كتاب اليكتروني pdf .
لكي يستفيد الكل ...

تحياتي لك

Son Of UAE
22-06-2006, 05:11 PM
من التراب ==== أهلا بعودتك . و الجافا متعة لا تقدر بثمن .. لا يهم البرنامج المستخدم , المهم هو النتيجة ( نام على الجنب إلى ريحك ) :أفكر:

HeRmAnO === أهلا بك أيها العضو المميز :D و حبيت أذكر اني في بداية الموضوع كتبت انه يجب ان يكون لديك خلفية في الس بلاس بلاس لتتمكن من فهم جميع السطور. أي سطرين تقسد فيهم . هل يمكنك نسخمها في رد جديد ؟ لاتأكد منها ;) وسيكون ردي وافياً ان شاء الله .

عاشق الصمت === شكراً على مرورك .. و اسف على العشوائية في الموضوع . الصراحة انا احب تفاعل الاعضاء معي في الدروس . وفكرتك جميلة بوضع الدروس في ملف PDF وهذا ما سأقوم به لاحقاً ان شاء الله.

ahmedsaker === والله .. ما اقدر اجادلك . الأيام راح تثبتلك مين الصح ;) شوف الدروس المتعلقة بالمسألة و ينتهي نقاشنا.


أسف على تأخري بوضع الدروس بسبب الانشغالات الاخرى ( الهياته بالشوارع ) :D
وشكر خاص لكل شخص يحفزني على الإستمرار

رامي لولح
22-06-2006, 06:29 PM
السلام عليكم
مشكور مراقبنا على الدروس مع أني ماعندي لغة الجافا

HeRmAnO
22-06-2006, 08:19 PM
HeRmAnO === أهلا بك أيها العضو المميز :D و حبيت أذكر اني في بداية الموضوع كتبت انه يجب ان يكون لديك خلفية في الس بلاس بلاس لتتمكن من فهم جميع السطور. أي سطرين تقسد فيهم . هل يمكنك نسخمها في رد جديد ؟ لاتأكد منها ;) وسيكون ردي وافياً ان شاء الله .


لا لايهمك .. آنه فاهم بس ابي اشوف ردك .. علشان اقرر اشارك في القسم ولا لا .. لأني وللاسف عملت هاذي الشيء سابقا .. وقام احد ( الأشخاص ) بالسخريه عندما كنت مبتدأ .. الامر الي خلاني اترك هذا القسم ..

ملاحظه : عندي خلفيه في السي بلاس بلاس .. وان شاء الله تشوف عودتي لهذا القسم باذن الله ..

شكرا

Son Of UAE
23-06-2006, 12:30 AM
رامي لولح === شكراً على مرورك المشرف :D ألا ترغب ببعض ألعاب الجافا لهاتفك النقال او كمبيوترك الجيبي؟:fisheye:

HeRmAnO ==== اسف على ما حصل سابقاً , وخذ بكلامي فقط من هذا القسم لاني انا المراقب هنا.;)
و انتظر هودتك بفارغ الصبر. هذا القسم يحتاج إلى أكبر قدر من الإمكانيات و العقول.

انتظروا الدرس القادم قريباً في ردي القادم.:أفكر:

Son Of UAE
26-06-2006, 02:37 AM
في هذا الدرس سنتعلم استخدام المصفوفات و الشعاع Arrays and Vector و طريقة صنعهما و الفرق بينهما.
المصفوفة عبارة عن مجموعة من القيم تحفض في متغير واحد و ذلك لتسهيل استخدامها عند البرمجة.

المصفوفة:
قبل البدء نحتاج إلى معرفة كيفية صنع مصفوفة بالجافا. و الأمر بسيط جدأً. فكل ما عليك فعله هو تحديد نوع القيم للمتغير و المعروفة بإسم المرجع (int) و وضع قوسين مربعين [] من ثم اعطاء المصفوفة اسم age . وقبل استخدامها يحب ان نحدد عدد القيم التي سوف تأخذها. وهذا كله يكتب في سطر واحد كالتالي:

هnt[] age = new int[4];
وبهذا قمنا بإنشاء مصفوفة من نوع int اسمها age ولها اربع قيم مجهولة. لا يمكن ترك القيم مجهولة فعلينا ادخال بعض الارقام من نوع int بها وذلك كالتالي

int[0] = 3;
int[1] = 7;
int[2] = 14;
int[3] = 18;
لاحظ ان :
الرقم الاول يأخذ العنوان 0 وقيمته 3
الرقم الثاني يأخذ العنوان 1 وقيمته 7
الرقم الثالث يأخذ العنوان 2 وقيمته 14
الرقم الرابع يأخذ العنوان 3 وقيمته 18
وباستخدم قيمة العنوان يمكنك الرجوع للرقم المطلوب بدون أي مشكلة. بعد فهم الطريقة العلوية يمكننا استخدام طريقة أخرى اكثر احترافيه لتعريف مصفوفة جديدة ووضع قيم لها بسطر واحد ! وهي كالتالي حيث سنقوم بصنع نفس المصفوفة السابقة:

int[] age = {3,7,14,18};
هكذا وبكل بساطة صنعنا هذه المصفوفة التي لها نفس مواصفات المصفوفة السابقة. يوجد أمر أخر يجب معرفته, ففرضاً اننا نريد ان نعرف عدد القيم الموجودة بالمصفوفة و التي هي اربع, نقوم باستخدام الامر التالي:

age.length
وهي قيمة تضعها الجافا لنا للاستفادة منها. و كلمة age هي اسم الدالة و Length هو المتغير الذي يحفظ عدد العناصر بالمصفوفة.

وكمثال للتطبيق نقوم بصنع دالة لها 5 قيم ومن ثم نقوم بجمع القيم كلها ووضعها بمتغير أخر. نسمي المصفوفة بnumbers و القيمة التي ستحفظ المجموع الكلي بtotal و سنقوم بصنع المثال بطريقة احترافية لإختصار اكبر قدر من الأسطر:

package montada02;

public class Array01 {
public static void main(String[] args) {
int[] numbers={34,53,75,6,26};
int total=0;
for (int i = 0; i < numbers.length; i++){
total +=numbers[i];
}
System.out.println("The total is "+total);
}
}
الان يأتي الشرح المفصل للبرنامج:
نقوم بتعريف مصفوفة من نوع int اسمها numbers و عدد عناصرها 5 و هم 34 و 53 و 75 و 6 و 26 و عناوين العناصر من 0 إلى 4. فلو اردنا إستدعاء الرقم 75 لاستخدمنا الامر numbers[2] وهكذا.
بعد ذلك, قمنا بتعريف متغير عدد صحيح اسمه total وقيمته الإبتدائية تساوي صفر.
لقد استخدمنا الاداة for لتلعب دور المؤشر للعناوين حيث سيقوم باستدعاء القيم الواحدة تلو الاخرى إلى ان يصل إلى اخر عنصر ثم ينتقل إلى السطر الاخير. ففي البداية تكون قيمة i = 0 وهي المؤشر لعناوين القيم في المصفوفة. ثم نقارن قيمة i هل هي اصغر من عدد العناصر و التي تساوي خمسة. إذا كان الجواب نعم فيقوم البرنامج بقراءة السطر الداخلي و من ثم يزيد قيمة i بواحد. وإذا كان الجواب لا فإنه يخرج من دائرة الأداة for وينتقل للسطر الاخير. و السطر الدائري يحوي امر إضافة قيمة numbers إلى قيمة total ففي الدورة الاول سيقوم بإضافة 34 و الدورة الثانية سيقوم بإضافة 53 إلى ان ينتهي ويكون المجموع الكل 194 .
بعد الإنتهاء سيقوم سيقوم بطباعة قيمة المجموع الكلي على الشاشة. وبهذا انتهينا من المصفوفات وشاهدنا احد طرق الإستفادة منها.

الشعاع :
و الأن ننتقل إلى الشعاع Vector وهو يختلف بعض الشيء عن المصوفة و لتسهيل الامور سنقوم بالتعرف على الفروقات بينها و هي كالأتي
- يمكن وضع انواع مختلفة في شعاع واحد مثل int + String + float.
- نقوم بإستخدام دوال لإضافة اول استدعاء القيم.
- لا داعي لتحديد عدد العناصر فالشعاع يقوم بالتكفل بذلك.
- استخدامه يكون ابطئ من المصفوفة.
سوف لن نتعمق كثيراً فيه ولكن سأقوم بشرح كيفية صنع شعاع مع قليل من الدوال المتوفرة فيه.
في البداية نحتاج إلى استدعاء الكلاس الخاص بالشعاع و هو موجود مع حزمة الجافا وذلك عن طريق الامر :

import java.util.*;
و الان سأضع بين يديكم طريقة إضافة اسماء في شعاع names و حذفها فيما بعد. كما بالكود التالي:

package montada02;
import java.util.*;

public class Vector01 {
public static void main(String[] args) {
Vector names = new Vector();
names.add("Ali");
names.add("Mohammed");
names.add("Salem");
names.add("Ahmed");
for (int i =0 ; i < names.size() ; i ++) {
System.out.println("the index is "+i+" the name is "+names.get(i));
}
names.remove("Salem");
names.remove("Ali");

System.out.println("");

for (int i =0 ; i < names.size() ; i ++) {
System.out.println("the index is "+i+" the name is "+names.get(i));
}
}
}
في البداية قمنا بصنع شعاع جديد بإسم names و ادخلنا اربع اسماء بأستخدام الدالة add() و هي موجودة بالاوبجيكت names. ثم نقوم بطباعة محتوياتها وسيظهر التالي:
the index is 0 the name is Ali
the index is 1 the name is Mohammed
the index is 2 the name is Salem
the index is 3 the name is Ahmed
وبعد ذلك , قمنا بحذف اسمين وهما سالم و علي و نقوم بعرض الاسماء مرة أخرى :
the index is 0 the name is Mohammed
the index is 1 the name is Ahmed
لا حظ ان البرنامج قام بترتيب العناوين بشكل تلقائي حتى بعد حذف اسمين من القائمة. كما ان الدالة size() استخدمت لتعطي عدد العناصر في الشعاع وهو نفس عمل length في المصفوفات.

وبهذا نكون قد انهينا درس اليوم وما عليكم سوى بالتمرين و محاولة تفقد باقي دوال الشعاع بأنفسكم.

تمرين :
1 – قم بصناع كلاس للشكل مربع . ثم اصنع منه خمس مربعات sqr01 إلى sqr05 ومن ثم قم بإضافتهم إلى شعاع بإسم shapes ومن ثم حاول عرض محتويات الشعاع بإستخدام الاداة For .
هذا المثال يوضح ان المصفوفات و الدوال يمكنها ان تكون من أي نوع حتى ولو كان كلاس من صنعك كمثال:

Square[] shapes = new Sqaure[5];

الأمثلة بالمرفقات

HeRmAnO
26-06-2006, 06:18 AM
مشكوور اخوي على الشرح الوافي والمتكامل عن الشعاع والمصفوفات ..

( اقتراح ) اتمنى ان تضع شرح لكل سطر .. يكون افضل غلشان يسهل المهمه ..
وكذلك اتمنى انك تقول اهميه كل شيء تشرحه .. ( مثلا الشعاع يفيد لين تبي تعمل كذا في برنامج )

وشكرا اخوي على الشرح الكامل صراحه

MALTOOSH
26-06-2006, 09:30 AM
الله يجزاك خير على الدروس الرائعة المفيدة جدا..

وشــــكـــرا..

||صقر||
26-06-2006, 09:33 AM
مشكور أخى على الدرس وانتظر درس تعدد الواجهات عشان نشوف ;) :D

رامي لولح
26-06-2006, 02:25 PM
السلام عليكم
بصراحة مراقبنا العزيز تراك حمستني إلى الجافا بقوة
وأنا بحول أشتريها عشان أنضم معاكم
بس هل ينفع أشتري j#.net 2005
وشكرا مرة أخرى على الدروس

||صقر||
26-06-2006, 02:30 PM
السلام عليكم
بصراحة مراقبنا العزيز تراك حمستني إلى الجافا بقوة
وأنا بحول أشتريها عشان أنضم معاكم
بس هل ينفع أشتري j#.net 2005
وشكرا مرة أخرى على الدروس

لا تحتاج لشرائها فهى مجانية
إنظر موضوعى فى نهاية الرد الأول للأخ ابن الإمارات

رامي لولح
26-06-2006, 04:42 PM
السلام عليكم
مشكور أخوي أحمد
بس المشكلة مو في وجود رابط التحميل
المشكلة أن النت عندي سلحفة

Son Of UAE
26-06-2006, 05:55 PM
HeRmAnO === اسف لاني لم اضع شرح مفصل في هذة المرة. لاني اعتقدت انها مماثلة للغة السي ++. وبخصوص شرح اهمية كل درس فهذا يعتمد على تطبيقك انت للبرنامج . وكبداية اقدر اقول لك ان أهم استخدام هو توفير اكبر قدر من الكودات اثناء كتابة البرنامج . فلن تحتاج إلى التكرار وانت تستخدم مصفوفة او شعاع مع اداة for.
سوف ازيد من الشرح التفصيلي في الدروس القادمة لان هذا الدرس غير متعلق بشكل مباشر بالسلسلة القادمة من الدروس ولكنه مهم ;) وعلى فكرة مع التطبيق ستتعلم الكثير بنفسك وانت لا تعلم !!!

neooo === ان شاء الله تستفيد منها بعد ان تحترف برمجة الألعاب فالدروس موجودة هنا لتلعب دور طويل الامد.

ahmedsaker === العفو :D و هل قلت اني سأضع درس تعدد الواجهات ؟ ( بصراحة لا أعرف المسميات العربية جيداً :boggled: ) . بعد الإنتهاء من السلسلة يمكنك اضافة ما تريد :biggthump

رامي لولح === يا سلام عليك ... تفتح النفس على الدنيا :star: انا شخصياً استعمل JBuilder و هو يختصر الكثر من الاعمال فمثلا عندما اكتب اسم الكائن ومن ثم نقطة فأنه يقوم بفتح قائمة بها متغيرات ودوال الكائن تلقائياً. :biggthump .. بعد الحصول عليه انصحك بتفحص الاوامر و الخيارات الموجودة بالبرنامج .

من التراب
26-06-2006, 10:42 PM
سلام

ياسلام ... شي جديد تسلم

الشعاع حلو ^^ .... الله يجزيك خير ابن الامارت

الصراحه دروسك ممتعه .... ماأريد أتعبك بس متلهف للدروس اليايه :)

بالتوفيق مراقبنا ..^^

||صقر||
27-06-2006, 10:56 AM
بعد الإنتهاء من السلسلة يمكنك اضافة ما تريد :biggthump
شكراً لك على ثقتك فى :D

sonick
27-06-2006, 12:18 PM
بسم الله الرحمن الرحيم
السلام عليكم
بصراحة دروس روعععه وانا استفدت منها شخصياً:o
لكن حبيت اسال انا استخدم Jcreator هل هو مفيد ام Jbuilder احسن؟
وشكراً جزيلاً لك مره ثانية

d.a.m.h
27-06-2006, 12:55 PM
اعذرنى على ردى المتأخر....لكن انا حاليا لا اريد قراءة الدروس لأنى احاول اتعلم الفيجوال بيزك
فحتى لا يحدث تداخل قررت ان ادرس الjava فى وقت لاحق :o

ياريت لو تثبت الموضوع بعد ان ينتهى حتى نجده بسهولة عند الحاجة اليه
وشكرا جزيلا على مجهودك الرائع.....ولا تنظر من يستفيد من الدروس وكما قال من التراب احتسب الاجر من عند الله ;)

||صقر||
27-06-2006, 05:35 PM
بسم الله الرحمن الرحيم
السلام عليكم
بصراحة دروس روعععه وانا استفدت منها شخصياً:o
لكن حبيت اسال انا استخدم Jcreator هل هو مفيد ام Jbuilder احسن؟
وشكراً جزيلاً لك مره ثانية

جا بيلدر افضل للمبتدئين فى اللغة كما ان الفرق الوحيد اللى اذكره بين الجا كريتور والجا بيلدر انا الأول يحتاج لمجتبة الجادى كى قبل وجودة إنما الثانى فتأتى معة

Son Of UAE
27-06-2006, 06:06 PM
من التراب === العفو ... :)

ahmedsaker === ولا بهمك ;)

sonick=== الصراحة انا ما اقدر اساعدك بأختيار البرنامج الأنسب لاني ما جربت غير jbuilder و غير ذلك انا لم اشرح بالصور. فيمكنك تجربة اي برنامج للكتاة بالجافا.

d.a.m.h === لو نجحت هذه السلسلة من الدروس سوف اضعها بملف pdf لتكون بمتناول يد الجميع. و الموضوع سيكون بالفهرس ان شاء الله .

PrinceOfSorrow
27-06-2006, 07:52 PM
لو نجحت هذه السلسلة من الدروس سوف اضعها بملف pdf لتكون بمتناول يد الجميع. و الموضوع سيكون بالفهرس ان شاء الله

الصراحة الموضوع ماعليه كلام وجميل ومفيد
أنا أتمنى انه ينجح وتضعه في الفهرس من ألحين قبل بكرة:)

Son Of UAE
08-07-2006, 09:49 PM
سيتم التوقف عن سلسلة الدروس إلى ان تنتهي المسابقة بتاريخ 18-8-2006.

ودمتم سالمين

الشرسه
21-08-2006, 01:42 AM
أول شي أحب أشكرك على موضوعك الأكثر من رائع الله يكثر من أمثالك ويووفقك
وياليت ماتتأخر علينا بباقي الدروس :D
تقديري لك

CHALLENGER
21-08-2006, 08:12 AM
الموضوع له فترة و لكنني لم أرد لأرى كيفية طرحك للدروس و الصراحة ما شاء الله عليك شرح رائع و بسيط جداً و أنا ان شاء الله بتعلم الجافا عن طريقك و عن طريق هذا الموضوع ,,, سؤال : هل الكومبلاير بورلاند الذي تتلكم عنه مجاني ؟

باز يطير
21-08-2006, 08:31 AM
السلام عليكم

ما شاء الله شرح حلو وبسيط ينفهم بسرعة

شكراً ليك اخوي

Son Of UAE
21-08-2006, 09:58 PM
الشرسه === ان شاء الله .... :biggthump سأحاول ان اضع درس خلال الاسبوع القادم .. بالرغم من الضغوطات الكبيرة و الحالة الصحية :أفكر:

CHALLENGER === و اخيراً رديت :D الكمبايلر غير مجاني .. بس انت اتصرف ;) و صدقني .. وانا ابرمج بالجافا اتذكر الجيم ميكر في بعض الامور ... و هذا يدل على البساطة

باز يطير === العفو

GOGENDANTESS
23-08-2006, 05:32 AM
ماشاء الله عليك يا ابن الإمارات :) الله يوفقك :)

سامي.خ
28-08-2006, 02:01 PM
فين أقدر ألاقي برنامج برمجة الجافا؟

jkmaro
31-08-2006, 03:43 AM
ما شاء الله على هذا الشرح المبسط و الجميل

سامي.خ
04-06-2008, 10:45 AM
الأخ مضيع الطاسة؟
يمنع الرد على المواضيع القديمة، راعي الموضوع قد تزوج وترك صناعة الألعاب من زمان <_<
مغلق