دروة الجافا الرسومية بإستخدام NetBeans ....الدرس (7) التعامل مع الفئات Classes و الكائنات Objects و الطرق Methods !
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: أساسيات اللغة Java Basics
صفحة 1 من اصل 1 • شاطر
دروة الجافا الرسومية بإستخدام NetBeans ....الدرس (7) التعامل مع الفئات Classes و الكائنات Objects و الطرق Methods !
بسم الله الرحمن الرحيم
أهلا وسهلا بكم أخوانى الكرام فى الدرس السابع من دورة الجافا الرسومية بأستخدام netbeans ....في هذا الدرس نتناول حجر الزاوية في لغة الجافا آلا وهو الفئة clase حيث تعتبر الفئات الوحدات الأساسية في لغة البرمجة الكائنية نظرا لما تحتويه من كائنات وطرق وبيانات ويعتبر هذا الدرس من أهم الدروس في هذه الدورة حيث أن البرمجة الكائنية التوجه كان من المفروض أن تسمى البرمجة القائمة على الفئات ولكن ليس هذا وقت التعديل في مسميات أصبحت مشهورة في العالم بهذا المسمى الذي يبخس حق الفئات وينصف أحد مكوناتها وهي الكائنات ولكن ما علينا - هيا بنا نبدأ -
أولا ...تعريف الفئة Classes :
الفئة هي القالب البرمجي للغة الجافا الذي يحدد شكل الكائنات لما تحتويه من بيانات ومعاملات
والكائن ينتمي للفئة وليس هو كل الفئة وبالتالي للفئة عناصر منها المتغيرات والنهج ( الدوال - الطرق )
إذا الفئة هي المكان الذي يستطيع المبرمجون أن يجمعوا فيه بين البيانات والطرق ( الدوال ) تحت سقف واحد
ثانيا ...إنشاء الفئات :
يتم إنشاء الفئة باستخدام الكلمة المفتاحية ue]class ] وهي من الكلمات المحجوزة في الجافا ويكون الشكل العام للفئة كما يلي
- الكود:
class Nameclass
}
{
هذا اذا كان برنامجنا يحتوى على عدة فئات مجتمعة فى ملف واحد و بالتالى فإن الفئة الرئسية التى تحتوى على الدالة main تبدأ بمحدد الوصول public class أى أن الفئة عامه ...وتبدأ جميع الفئات الاخرى بالكلمة المحجوزة class فقط كما أعلاه ....
أما اذا كان برنامجنا يحتوى على عدة فئات كلا فى ملف منفصل فلابد من كل الفصائل تبدأ public class
ويجب أن تحتوى أى فئة على طريقة ( دالة ) واحدة أو متغير واحد أو كلاهما وحين نريد أن نصمم فئة يجب أن نراعي نوع البيانات ومدى توافقها معا داخل الفئة بمعنى أن فئة مصممة لتخزين أسماء موظفين وأرقام هواتفهم وعناوينهم لن يكون من المناسب أن أضع في نفس الفئة بيانات عن حالة الطقس وحالة البحر ومعدل سقوط المطر ولذلك يجب أن نراعي الناحية المنطقية عند تصميم الفئة من حيث علاقة البيانات التي نريد التعامل معها في نفس الفئة
ثالثا ... الكائنات Objects
هى عناصر تمثيل استخدام الفئة فى البرنامج وهى تأخذ نفس بيانات الفئة من دوال وطرق و متغيرات ...الخ و الطريقة الوحيدة لانشاء الكائن تكون بإستخدام الامر new ....باستخدام الشكل العام التالى
- الكود:
classname objectname = new classname ();
وهذا يعنى أسم الفئة أسم الكائن = الكلمة المحجوزة (new) أسم الكلاس أو الفئة ();
مثال توضيحى / قم إنشاء برنامج لحساب العديدن 5 و 8 بأستخدام عدد 2 كلاس او فئة ؟
الحل :
- الكود:
package ex1;
class Egy{
int no1=5,no2=8,total;
}
public class Ex1 {
public static void main(String[] args) {
Egy cal= new Egy();
cal.total=cal.no1+cal.no2;
System.out.println("Value= "+cal.total);
}
}
فى السطر الثانى ...قمنا بأنشاء الفئة أو الكلاس Egy عن طريق الامر class Egy ثم فتحنا قوسى البداية و النهاية ...ويجب ملاحظة أننا استخدمنا الكلمة المحجوزة class لانشاء تلك الفئة بدون محدد الوصول public ...وذلك لكون جميع فئات برنامجنا فى ملف واحد فقط .
فى السطر الثالث ....نلاحظ أننا عرفنا المتغيرات الثلاث وهي ]no1] لتحزين الرقم الاول و ]no2] لتخزين الرقم الثانى و e]total] لتخزين عملية الجمع ....
وهكذا نلاحظ اننا قمنا بإنشاء ابسط كلاس او فئة لا تحتوى إلا على الاعلان عن المتغيرات فقط بدون اى طرق او دوال .
فى السطر الرابع ...أنشأنا الكلاس او الفئة الرئسية Ex1 و التى تحتوى على الدالة الرئسية main و يجب ملاحظة أن تلك الفئة أو الكلاس بدأت بمحدد الوصول public
فى السطر الخامس ...قمنا بإنشاء الكائن cal من الفئة Egy بإستخدام الكلمة المحجوزة new
فى السطور الاخرى ....بعد ان انشأنا الكائن cal نتسطيع بسهولة استخدام المتغيرات الموجودة فية وهى طبعا امتداد للبيانات و المتغيران من الفئة المنشىء منه هذا الكائن
رابعا : الطرق (الدوال) Methods
كما نوهنا سابقا عند الحديث عن الفئات بأن المكونات الرئيسية للفئة هي المتغيرات الأولية والطرق أو الدوال فإننا نتناول بالتفصيل في هذه الجزئية الحديث عن الطرق ....
1_ تعريف الطريقة [ السلوك ] .....هي ذالك الجزء من الفئة الذي يختص بالتعامل مع البيانات وتعرف داخل الفئة و بها يتم التفاعل بين أجزاء البرنامج المختلفة والفئة و تحتوي الطريقة على جملة برمجية أو أكثر والكود البرمجي الجيد في لغة الجافا هو الذي يكتب بحيث تؤدي الطريقة مهمة واحدة ولكل طريقة اسم يتم استدعاء الطريقة به ويمكنك أن تطلق على طريقتك الاسم الذي تفضله مع التنبيه على عدم استخدام الكلمات المحجوزة في لغة الجافا لهذه التسمية ...
2 _الشكل العام للطريقة
- الكود:
<p>Access specifier return type method name(parameter type parameter name,..)
<p>
وقبل أن نناقش الشكل العام للطريقة بالتفصيل نذكر نوعا الطرق وهما
النوع الأول : هو النوع الذي يعود بقيمة ويستوجب استخدام e]return ]
النوع الثاني : هو النوع الذي لا يعود بقيمة e] void method]
والآن مع مناقشة الشكل العام المختصر للطريقة :
1- المقطع الاول e]Access specifier] محدد الوصول للطريقة أى نوع الوصول للطريقة فمثلا النوع العام الذي يتيح الوصول للطريقة من خارج الفئة ومن خارج البرنامج ويأخذ الكلمة المفتاحية e]public ] أما النوع الآخر وهو عكس النوع العام ويأخذ الكلمة المفتاحية e]private] وهو يسمح بالوصول للطريقة من داخل الفئة فقط أما النوع الثالث فهو النوع المحمي ويأخذ الكلمة المفتاحية ]protected ]
2 - المقطع الثانى e] return type ] يحدد نوع القيمة المرتجعة من الدالة
3 - المقطع الثالث ue]method name ] وهو الذي يعطي للطريقة اسمها ومن الافضل استخدام أسم يدل على وظيفية الطريقة ودائما فى لغة الجافا ببدأ الاسم بحرف صغير ...وفى حالة الاسم الذى يتكون من اكثر من مقطع يبدأ المقطع الاول بحرف صغير و المقطع الثانى بحرف كبير ...علما بأن هناك طرقا تعرف بواسطة المبرمج وأخرى تكون جاهزة توفرها لغة الجافا وما على المبرمج سوى استدعائها مثل الطرق الرياضية وحين تعرف طريقة يجب عليك إتباع الشروط الخاصة بالتعريف في لغة الجافا
4 - المقطع الرابع ue]parameter-list ) ] يوضع بين القوسين بيان بالعوامل الداخلة للطريقة ويفصل بين العامل والآخر فاصلة وفي حالة عدم وجود عوامل لا يوضع شيء بين القوسين
5 - المقطع الخامس lue] جسم الطريقة } ] ....اى الاكواد المراد تنفيذها من خلال تلك الطريقة .
مثلا توضيحى : قم إنشاء برنامج لحساب العديدن 5 و 8 بأستخدام عدد 2 كلاس او فئة مع إنشاء طريقة لحساب الناتج ...
الحل :
- الكود:
package ex1;
class Egy{
int no1=5,no2=8,sun;
void total(){
sun = no1+no2;
System.out.println("Value= "+sun);
}
}
public class Ex1 {
public static void main(String[] args) {
Egy cal=new Egy();
cal.total();
}
}
دعنا الآن نلقي نظرة سريعة على هذا البرنامج ولنبدأ ببيت القصيد ألا وهو إضافة الطريقة ومع السطر الأول
- الكود:
void total ( ) {
في هذا السطر نعلن عن طريقة بمسمى ]total ] بدون عوامل ولا ترجع قيمة e]void ] ولذلك لا ترجع قيمة لمن استدعاها ونهاية السطر توجد حاصرة للإذن ببدء جسم الطريقة الذي يتكون من سطرين هما
- الكود:
sun = no1+no2;
System.out.println("Value= "+sun);
ويتم تشغيل الطريقة فى الدالة الرئسية للبرنامج بعد أنشاء كائن من نفس الفئة عن طريق الامر التالى :
- الكود:
cal.total();
مثال توضيحى أخر ..قم بحل نفس السؤال السابق ذكرة مع استخدام العوامل فى الطريقة total
الحل
- الكود:
package ex1;
class Egy{
void total(int no1,int no2){
int sun = no1+no2;
System.out.println("Value= "+sun);
}
}
public class Ex1 {
public static void main(String[] args) {
Egy cal=new Egy();
cal.total(8,5);
}
}
العائد من الطريقة e] Returning from aMethod ]
كما ذكرنا سابقا يوجد نوعان من الطرق هما :
النوع الأول : هو النوع الذي لا يعود بقيمة ue]void method] مثل الحالة في المثال السابق أعلاه
النوع الثاني : هو النوع الذي يعود بقيمة الطرق التي تعود بقيمة و هي الأكثر استخداما في مختلف مجالات البرمجة ويستوجب استخدام e]return ] و الشكل العام لها يكون على النحو التالى :
- الكود:
public int Meth03( ){
//Body of Method03
// طريقة لا تحتوي على عوامل وتعود بقيم
return 0;
}
مثال توضيحى :قم بحل نفس السؤال السابق ذكرة مع جعل الطريقة total ترجع بقيمة العملية الحسابية
الحل :
- الكود:
package ex1;
class Egy{
int no1=5,no2=8;
int total(){
return no1+no2;
}
}
public class Ex1 {
public static void main(String[] args) {
Egy cal=new Egy();
System.out.println("Value= "+cal.total());
}
}
نلاحظ فيه أننا قمنا بأنشاء الطريقة (total ) الذي سوف يستقبل القيمة الراجعة التي سوف تكون هنا من النوع ] int ] وذلك يستدعي أن تعود بقيمة من النوع الصحيح لمن استدعاها وعلى سبيل المثال إذا أردت طريقة تعود بقيمة من النوع ] double ] يجب عليك اختيار هذا النوع ....كما يلاحظ أننا استخدمنا الامر (return )لارجاع قيمة المعادلة (no1+no2)...
المنشآت - البانيات - e]Constructors ]
في المثال السابق تم كتابة المتغيرات بطريقة يدوية ....وكانت هذه الطريقة للتدريب ولكن لمحترفي البرمجة يوجد شيء آخر لانجاز هذا الأمر آلا وهو استخدام البانيات e]Constructors ] ولكي نوضح هذا المفهوم إليك هذا المثال
- الكود:
class Egy{
int no1,no2;
Egy(){
no1=0;
no2=0;
}
int total(){
return no1+no2;
}
}
public class Ex1 {
public static void main(String[] args) {
Egy cal=new Egy();
cal.no1=5;
cal.no2=8;
System.out.println("Value= "+cal.total());
}
مما سبق نستنتج أن البانيات تشبه الطريقة من حيث القواعد وتأخذ نفس اسم الفئة وفيها الحل لمشكلة تحديد القيم الابتدائية وحيث أن اسم الباني هو نفسه اسم الفئة فإن الباني سوف يستدعى تلقائيا........
ففي المثال أعلاه تم إنشاء فئة بسيطة e]class Egy ] وكان الباني فيها هو e]( ) Egy ] وكما نلاحظ فإن اسم الفئة يشبه تماما اسم الباني وعندما نقوم بإنشاء كائن ] cal ] حسب الجملة البرمجية ( التعليمة )
- الكود:
Egy cal=new Egy();
يتم حجز مكان لهذا الكائن ثم يطلب الباني وسيتم تحديد قيمة ابتدائية له ونلاحظ هنا أن الباني قد خصص القيمة ( 0 ) لكل من المتغير ]no1,no2 ] وأن هذا الباني قد تم استدعاؤه بواسطة ] new ] عند إنشاء الكائن e]Egy ]
وبالتالي نستنتج فوائد المنشآت ( البانيات ) التي تعتبر ( طريقة ) غي عادية حيث لا تمتلك قيمة راجعة وتخلصنا من المشاكل البرمجية الخاصة بالفئات التي تنجم عن الكتابة بشكل يدوي كما في المثال قبل التعديل وأيضا تسهل قراءة وفهم مصدر البرنامج البرمجي .....و الخلاصة أن :
البنا - نهج ( طريقة ) خاص يتم تنفيذه عندما يبدأ كائن الفئة ويحتوي من الوسطاء ما يحدد شكل الكائن ويتم استدعاؤه تلقائيا لأنه يحمل نفس اسم الفئة والبانيات لا تمتلك قيمة راجعة
واللى اللقاء فى درس جديد إن شاء الله تعالى
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: دروة الجافا الرسومية بإستخدام NetBeans ....الدرس (7) التعامل مع الفئات Classes و الكائنات Objects و الطرق Methods !
شكرا استاذ أحمد على شرحك السهل و الجميل جدا .....بصراحة رائع 

بنت البلد- .....
- تاريخ التسجيل : 18/02/2011
المساهمات : 85
النقاط : 160
التقيم : 11
الجنس :
رد: دروة الجافا الرسومية بإستخدام NetBeans ....الدرس (7) التعامل مع الفئات Classes و الكائنات Objects و الطرق Methods !
بارك الله فيك أستاذ أحمد
أنا متشوق لأكمل باقي الدروس يعطيك الصحة والعافية
x-wolf- ..
- تاريخ التسجيل : 01/12/2014
المساهمات : 20
النقاط : 20
التقيم : 0
الدولة :
الجنس :
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: أساسيات اللغة Java Basics
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
» موضوعات طبية وصحية وغذائية هامة مع قناة معلومة لصحتك
» خدمة الدعاية و الاعلان المدفوعة و المجانية بالمنتدى ...الشروط و الاسعار
» أكتب برنامج بلغة الجافا لتمثيل حساب مصرفى باستخدم عدد 2 كلاس
» التعامل مع الشبكات فى الجافا Java Networking
» كود خوارزميه RSA بالجافا
» تعلم كيفية حفظ و أسترجاع الصورة فى قاعدة بيانات أكسس باستخدام الكائن Stream object
» اصنع شبكتك بنفسك
» شبكة فودافون مصر
» Self-control