Professional Documents
Culture Documents
نظري
الكيانات والكالسات - Classes and Objectsنظري
: Classنكتبها كالس في العربية .و الكالس عبارة عن حاوية كبيرة تستطيع أن تحتوي على
أي متغيرات يتم تعريفها بداخل كالس و خارج أي دالة تسمى خصائص ( , )Attributesو هذا
تستطيع التعامل مع هذه الخصائص من الكائن مباشرة ,بينما المتغيرات العادية ال يمكنك
: Objectتعني كائن في اللغة العربية .و الكائن عبارة عن نسخة مطابقة لكالس معين .
بما أن الكائن عبارة عن نسخة من الكالس ,يمكننا القول أنه ال يمكن إنشاء كائن إذا لم يكن
إذا في مفهوم برمجة الكائنات نقوم بإنشاء كالس معين يسمونه blue print
أي (النسخة الخام أو النسخة األصلية) ,و بعدها ننشئ نسخة أو أكثر من هذا الكالس و نفعل
بها ما نريد بدون أن نغير محتويات الكالس األساسي و هكذا نكون حافظنا على كودات
الكالس األساسي ألننا نعدل على النسخ و ليس عليه مباشرة .
126
www.tvtc.gov.sa م .عبدالمجيد العتيبي
الكيانات والكالسات - Classes and Objectsنظري
-ثم نقطة.
-ثم الشيء الذي نريد الوصول إليه ( سواء إسم متغير أو دالة ).
الكلمة : this
الكلمة thisهي كلمة محجوزة في لغة جافا ,و هي تستخدم لإلشارة إلى الـ Global
,Variablesو تستخدم أيضا لإلشارة إلى الكائن الحالي ,و يمكن استخدامها في أماكن عديدة .
من أهم األشياء التي عليك التفكير بها بعد إنشاء كالس جديد ,هي تسهيل طريقة خلق
كائنات من هذا الكالس ,من هنا أتت فكرة الكونستركتور وهو عبارة عن دالة لها نوع خاص ,
يتم إستدعائها أثناء إنشاء كائن لتوليد قيم أولية للخصائص الموجودة فيه .
بما أنه ال يمكن إنشاء كائن من كالس إال من خالل كونستركتور ,سيقوم مترجم جافا بتوليد
كونستركتور إفتراضي فارغ عنك إذا وجد أن الكالس الذي قمت بتعريفه ال يحتوي على أي
كونستركتور.
127
www.tvtc.gov.sa م .عبدالمجيد العتيبي
الكيانات والكالسات - Classes and Objectsنظري
المتغيرات التي يتم وضعها في الكالس تقسم إلى ثالث فئات أساسية ذكرناها في
هي المتغيرات التي يتم تعريفها بداخل أي دالة , Local Variables
أو ,constructorأو بداخل ( blockمثل الحلقات ,الجملة
switchإلخ.) ..
هي المتغيرات التي يتم تعريفها بداخل الكالس و خارج Instance Variables
حدود أي دالة أو , constructorأو . blockتسمى أيضا
. Global Variables
هي المتغيرات التي يتم تعريفها كـ staticبداخل الكالس Class Variables
و خارج حدود أي دالة أو ,constructorأو . block
كل كالس يتم إنشاءه ,يحتوي على كونستركتور واحد على األقل .و حتى إن لم تقم
في كل مرة يتم إنشاء كائن جديد ,يجب استدعاء الكونستركتور .
القاعدة األساسية عند تعريف كونستركتور هي أنه يجب أن يحمل نفس إسم الكالس و
في حال قمت بتعريف كونستركتور ,لن يقوم المترجم بإنشاء واحد إفتراضي ,أي لن
يمكنك تعريف أكثر من كونستركتور .و يمكنك دائما إنشاء كونستركتور فارغ ,حتى
تستخدمه إن كنت ال تريد إعطاء قيم أولية محددة للخصائص عند إنشاء كائن .
128
www.tvtc.gov.sa م .عبدالمجيد العتيبي
الكيانات والكالسات - Classes and Objectsنظري
الكائنات تساعد المبرمج كثيرا ,فمثال إذا كنت تنوي إنشاء برنامج بسيط لحفظ معلومات
طبعا ال ,بل تنشئ كالس واحد فقط يمثل شخص ,و تضع فيه األشياء األساسية التي تريدها
أن تكون موجودة عند كل شخص .ثم تنشئ منه كائنات قدر ما شئت ,و عندها يصبح كل كائن
129
www.tvtc.gov.sa م .عبدالمجيد العتيبي
الوحدة الحادي عشر
عملي
الكيانات والكالسات - Classes and Objectsعملي
لتعريف كالس جديد يكفي فقط كتابة الكلمة ,classثم وضع إسم له ,ثم فتح أقواس
بما أن الكائن عبارة عن نسخة من الكالس .لتعريف كائن من كالس معين يجب وضع إسم
إذا الكائن ahmadسيكون عنده نسخة خاصة فيه من خصائص الكالس . Person
مالحظة :الكود () new Personهو الذي يقوم فعليا بتوليد كائن من الكالس .و هو يعطي
131
www.tvtc.gov.sa م .عبدالمجيد العتيبي
الكيانات والكالسات - Classes and Objectsعملي
بما أنه ال يمكن إنشاء كائن من كالس إال من خالل كونستركتور ,سيقوم مترجم جافا بتوليد
كونستركتور إفتراضي فارغ عنك إذا وجد أن الكالس الذي قمت بتعريفه ال يحتوي على أي
كونستركتور .
إذا قمنا بتعريف كالس إسمه Personو لم نقم بتعريف كونستركتور له كما في
الكالس التالي
اآلن سنقوم بإنشاء الكالس Personو إنشاء كائنات منه في الكالس الذي يحتوي على الدالة
(). main
مالحظة :يجب إنشاء الكالس Personو الكالس Mainفي نفس الـ packageحتى يعمل
132
www.tvtc.gov.sa م .عبدالمجيد العتيبي
عملي- Classes and Objects الكيانات والكالسات
Person.java
Main.java
133
www.tvtc.gov.sa عبدالمجيد العتيبي.م
عملي- Classes and Objects الكيانات والكالسات
}
}
Name: Mhamad
Sex: Male
Job: Programmer
Age: 21
Name: Rose
Sex: Female
Job: Secretary
Age: 22
Name: Ahmad
Sex: Male
Job: Doctor
Age: 34
Name: Rabih
Sex: Male
Job: Engineer
Age: 27
134
www.tvtc.gov.sa عبدالمجيد العتيبي.م