InstagramTwitterSnapChat


 
وصف

العودة   منتديات سكاو > الكليات الجامعية > منتدى كلية الحاسبات وتقنية المعلومات > المنتدى العام لكلية الحاسبات وتقنية المعلومات
التسجيل مشاركات اليوم البحث
   
   


المنتدى العام لكلية الحاسبات وتقنية المعلومات قسم خاص بالمواد العامة و الطلاب غير المتخصصين بكلية الحاسبات وتقنية المعلومات

[شرح][CPCS 203] أفهم الكلمة الأساسية public و private .

المنتدى العام لكلية الحاسبات وتقنية المعلومات

إضافة رد
 
أدوات الموضوع إبحث في الموضوع انواع عرض الموضوع
منتديات طلاب وطالبات جامعة الملك عبد العزيز منتديات طلاب وطالبات جامعة الملك عبد العزيز
  #1  
قديم 03-04-2010, 12:49 AM
الصورة الرمزية Mr.Ahmad

Mr.Ahmad Mr.Ahmad غير متواجد حالياً

عضو هيئة تدريس

 
تاريخ التسجيل: Jul 2008
الكلية: كلية الحاسبات وتقنية المعلومات
التخصص: IT
نوع الدراسة: عضو هيئة تدريس
المستوى: متخرج
البلد: جــــدة
الجنس: ذكر
المشاركات: 2,477
Skaau.com (11) [شرح][CPCS 203] أفهم الكلمة الأساسية public و private .


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

* مــا شاء الله تبارك الله *
الحمد لله عدد ما خلق , الحمد لله ملء ما خلق , الحمد لله عدد ما في السموات وما في الأرض , الحمد لله عدد ما أحصى كتابه ، والحمد لله على ما أحصى كتابه ، والحمد لله عدد كل شيء والحمد لله ملء كل شيء .
اللهم صل على محمد وعلى آل محمد كما صليت على إبراهيم وعلى آل إبراهيم إنك حميد مجيد . اللهم بارك على محمد وعلى آل محمد كما باركت على إبراهيم وعلى آل إبراهيم إنك حميد مجيد.
لا إله إلا الله وحده لا شريك له الملك وله الحمد وهو على كل شيء قدير .
سبحـــــــان الله وبحمده … سبحــان الله العظيم
__________________________________________________ ______________________________

[شرح][ CPCS 203 - برمجة 2 ] أفهم الكلمة الأساسية public و private

أهدي هذا الشرح إلى اخونا وزميلنا على الزهراني خاصة وإلى كل الطلاب عامة . بارك الله فيهم .
كود:
[ null 4C 4F 6F 4F 6F 4F 6F 4C 59 ]


الدروس السابقة :
[CPCS 203] أفهم عمل الكلمة الأساسية new عند إنشاء كائن !
[CPCS 203] أفهم مفهوم الفئة (Class) والعناصر (Objects) بكلمات بسيطة

مرحباً بكم أخواني في هذا اللقاء الجديد , الذي سنتعلم فيه – بإذن الله – مفاهيم عدة أمور تتعلق بالبرمجة كائنية المنحنى بلغة الجافا , وهي مفهوم الـ public و private ومفهوم الـ global و local ومفهوم الـ Constructor ومفهوم الـ static .
[سيتم شرحها على عدة دروس مستقلة إن شاء الله ]

لنستذكر ما تم تعلمه في اللقاء السابق , وهو فهم ما تفعله عمل الكلمة الأساسية new عند إنشاء كائن . وذكرنا أنه عند تعريف كائن (Object) من فئة (Class) فإن المتغير المُعرف من الفئة كـكائن فإنه يحمل مرجع للكائن في الذاكرة. وكذلك تعلمنا أنه عندما يتم إنشاء الكائن بواسطة الكلمة الأساسية new فإنه يتم إنشاء نسخة مثيلة من الفئة التي ينتمي إليها الكائن .

- المفهوم الأول : الـ public و الـ private -

والآن لنتعلم مفهوم جديد , وهو مفهوم الكلمة الأساسية public (العمومية) و الكلمة الأساسية private (الخصوصية) :

في البداية , شاهد الكود التالي :





عرفنا في الكود السابق أثنين class , وهمـا :

class Student : وعرفنا فيه متغير اسمه ID نوعه integer وهو public (عمومي) ومتغير آخر من نفس النوع أسمه Age وهو private (خصوصي) .

class Main : ووضعنا فيه الطريقة الرئيسية للبرنامج main .

لنجرب الآن إنشاء كائن من الفئة Student وإسناد له قيمة الـ ID و Age :







إذاً من خلال التجربة السابقة عرفنا أنه لا يمكن الوصول مباشرة إلى المتغيرات المعرفة كـ private من خارج فئتها التي مُعرفة داخلها . وكذلك الأمر ينطبق على الطرق (Methods) – الطُرق هي اسم مرادف للـ Function – . فعند تعريف الطرق كـ public فإنه يمكنك استدعاء الطريقة خارج فئتها , وإن عرفناها كـ private فلا يمكن استدعاء الطريقة إلا داخل الفئة المُعرفة داخلها .

وعلى ذلك فإنه يمكننا الوصول والتعامل مع المتغيرات المعرفة كـ private من خارج فئتها بواسطة الطُرق العمومية (public Methods) أي الطُرق المعرفة كـ public , وكذلك الأمر ينطبق على الطُرق الخصوصية (private Methods) فإننا نستطيع استدعاء الطُرق المعرفة كـ private من خارج فئتها عن طريق الُطرق العمومية , أي استدعاء الطرق الخصوصية داخل الطُرق العمومية , أي أنه استدعاء غير مباشر للطرق الخصوصية خارج فئتها .

استكمالاً للكود السابق , سنطبق الآن طريقتين عموميتين (أي معرفة كـ public) لتعامل مع المتغير Age , بحيث طريقة تغير قيمته وطريقة أخرى تُرجع لنا (تعطينا) قيمته المخزنة , ولنعطي تسمية للطريقة التي تخزن أو تغير قيمة متغير الـ Age اسم SetAge ونعطي للطريقة الأخرى التي تُرجع لنا قيمة الـ Age اسم GetAge :

ملاحظة : لك حرية اختيار أسامي الطُرق , وليس بشرط أن نبدأ التسمية بـ Set للطريقة التي تخزن قيمة و Get للطريقة التي تُرجع قيمة . ولكن جرت العادة أو العُرف على التسمية تلك .



والآن لنجرب الكود , ونحاول إسناد قيمة للمتغير Age وكذلك نحاول أخذ قيمته بواسطة الطرق العمومية التي كتبناها :



بعد تعلم السابق , قد يدور إلى أذهانكم إذاً هذا السؤال :
لماذا لا نُعرف كل المتغيرات كعمومية (public) بدل هذا التعب من تعريف طريقة تسند قيمة وطريقة تستخرج قيمة المتغير الخصوصي (private) ؟

من أهدف البرمجة كائنية المنحنى (OOP) هو هدف أو مبدأ التغليف (Encapsulation) . يهدف هذا المبدأ إلى إخفاء التفاصيل البرمجية عن مستخدم الفئة .

مثلاً : كلنا استخدمنا الطريقة printLn الموجود داخل فئة System.out التي تطبع سلسلة نصية على الشاشة. ولكن هل تعرف تفاصيل عمل –أكواد- هذه الفئة أو تعرف كيف تظهر هذه الطريقة النص على الشاشة ؟!
بالطبع لا , وربما أنت لا تستطيع برمجة مثل هذه الفئة لتعقيدها . لذلك أنت عندما تستخدم طُرق فئة System.out كطريقة printLn فإنك لا يهمك تفاصيل أو أكواد أو كيف تعمل هذه الطريقة ولكن يهمك الوظيفة التي تقدمها لك وهي طباعة سلسة نصية على الشاشة .

لنأخذ مثال من الواقع , مثلاً في أجسامنا نحن فئة البشر , هل عندما تأكل شي ما , هل يهمك كيف يتم هضمه داخل معدتك أو كيف يتم امتصاص الغذاء عند مرورها إلى الأمعاء الدقيقة ؟! بالطبع لا . فنشكر الله ونحمده على نعمه الكثيرة التي لا نستطيع أن نحصيها .

ولنأخذ مثال آخر , عندما تشتري جهاز كهربائي كالثلاجة مثلاً , هل يهمك كيف تعمل الثلاجة وكيف تبرد ؟! بالطبع , فقط أنت يهمك وظيفتها وهي تبريد الطعام .


هذا هو مبدأ ومفهوم التغليف (Encapsulation) , لذلك أحرص على أن تكون فئتك مغلفة , بحيث لا تُعَرف متغيرات عمومية , وأجعلها خصوصية , وتحكم فيها عن طريق الطرق العمومية التي تعتبر كأزرار لوحة التحكم في الأجهزة الكهربائية .



لنأخذ تطبيق أخير , وهو تكملة للبرنامج السابق , بحيث سنُعرف طريقة خصوصية تقوم بالتحقق من عمر الطالب , بحيث إن تم إدخال عمر الطالب فوق الـ 50 سنة يطبع رسالة معينة ويغير قيمة العمر إلى أقصى قيمة ممكنة وهي 50 سنة .

مثال : إن تم إدخال العمر كـ 55 سنة يطبع رسالة خطأ , ولا يحفظ في متغير الـ Age القيمة 55 بل يحفظ القيمة 50 التي افترضناها كأكبر قيمة ممكنة :





بهذا نختم شرح مفهوم العمومية (public) و الخصوصية (private) .

__________________________________________________ ______________________________

لا تنسونا من دعائكم .
وتمنياتي لي و لكم بالتوفيق,,,

 


توقيع Mr.Ahmad  

سبحان الله وبحمد ,,, سبحان الله العظيم
الحمد لله كما ينبغي لجلال وجهه وعظيم سلطانه .
اللهم صل على محمد وعلى آل محمد كما صليت على إبراهيم وعلى آل إبراهيم إنك حميد مجيد . اللهم بارك على محمد وعلى آل محمد كما باركت على إبراهيم وعلى آل إبراهيم إنك حميد مجيد.

 


التعديل الأخير تم بواسطة Mr.Ahmad ; 03-04-2010 الساعة 01:01 AM.
رد مع اقتباس

 

منتديات طلاب وطالبات جامعة الملك عبد العزيز منتديات طلاب وطالبات جامعة الملك عبد العزيز
قديم 03-04-2010, 10:31 AM   #2

LOoOoOoLY

أحب التبسم .. والمتبسمين

 
تاريخ التسجيل: Oct 2009
التخصص: IT تقنية معلومات
نوع الدراسة: إنتظام
المستوى: الخامس
الجنس: ذكر
المشاركات: 244
افتراضي رد: [شرح][CPCS 203] أفهم الكلمة الأساسية public و private . [إهداء إلى علي الزهراني]

جزاك الله خير .. يا مستر احمد .. شرح وااافي وكافي جدا جدا .. والله اني الحين احس فهمت اكثر من اول .. !!

وبعدين يا حظ علي الزهراني .. *_^

 

توقيع LOoOoOoLY  

 

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


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

 

LOoOoOoLY غير متواجد حالياً   رد مع اقتباس
 

منتديات طلاب وطالبات جامعة الملك عبد العزيز منتديات طلاب وطالبات جامعة الملك عبد العزيز
قديم 03-04-2010, 05:14 PM   #3

B.N.A.B

جامعي

الصورة الرمزية B.N.A.B

 
تاريخ التسجيل: May 2009
التخصص: IT
نوع الدراسة: إنتظام
المستوى: السادس
الجنس: ذكر
المشاركات: 84
افتراضي رد: [شرح][CPCS 203] أفهم الكلمة الأساسية public و private . [إهداء إلى علي الزهراني]

ماشاء الله عليك شرح وافي وكافي
جزاك الله خير
وما قصرت يا مستر أحمد

 


التعديل الأخير تم بواسطة B.N.A.B ; 03-04-2010 الساعة 05:17 PM.
B.N.A.B غير متواجد حالياً   رد مع اقتباس
 

منتديات طلاب وطالبات جامعة الملك عبد العزيز منتديات طلاب وطالبات جامعة الملك عبد العزيز
قديم 04-04-2010, 06:51 AM   #4

نجم الحجاز

شكراً للجميع

الصورة الرمزية نجم الحجاز

 
تاريخ التسجيل: Sep 2009
كلية: كلية العلوم
التخصص: علوم الحاسب الآلي
نوع الدراسة: ماجستير
المستوى: متخرج
البلد: منطقة مكة المكرمة
الجنس: ذكر
المشاركات: 295
افتراضي رد: [شرح][CPCS 203] أفهم الكلمة الأساسية public و private . [إهداء إلى علي الزهراني]

الشكر لا يكفي .... لكن لك مني الدعاء بالتوفيق

 

توقيع نجم الحجاز  

 

 

نجم الحجاز غير متواجد حالياً   رد مع اقتباس
 

منتديات طلاب وطالبات جامعة الملك عبد العزيز منتديات طلاب وطالبات جامعة الملك عبد العزيز
قديم 05-04-2010, 10:38 PM   #5

السرآب

الحمد والشكر لله ..

 
تاريخ التسجيل: May 2009
التخصص: تقنية معلومات (IT)
نوع الدراسة: إنتظام
المستوى: الرابع
الجنس: ذكر
المشاركات: 101
افتراضي رد: [شرح][CPCS 203] أفهم الكلمة الأساسية public و private . [إهداء إلى علي الزهراني]

الله يعطيك الف الف الف الف عااافيه اخوي احمد .. والله استفدنا من الشرح استفااده كبيييييره .. وبانتظار باقي الدروس (مفهوم الـ global و local ومفهوم الـ Constructor ومفهوم الـ static ) ..

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

والله يعطيك العافيه ويجزاك خير ..

 

السرآب غير متواجد حالياً   رد مع اقتباس
 

منتديات طلاب وطالبات جامعة الملك عبد العزيز منتديات طلاب وطالبات جامعة الملك عبد العزيز
قديم 08-04-2010, 06:24 PM   #6

شكولا

..

الصورة الرمزية شكولا

 
تاريخ التسجيل: Sep 2009
التخصص: IT
نوع الدراسة: إنتظام
المستوى: الخامس
الجنس: أنثى
المشاركات: 1,200
افتراضي رد: [شرح][CPCS 203] أفهم الكلمة الأساسية public و private . [إهداء إلى علي الزهراني]

::

ماشاءالله تبارك الله ..

أسأل الله أن يزيدك علما وأن ينفع بك الاسلام والمسلمين ..



توي أفهم الحين يالله كنت حايسه فيها ^^

الله يجزاك خير ع الشرح المبسط والراااائع..

 

توقيع شكولا  

 

.



ركّـز اهتمـامك على عمـل وآحـد..
وانغمـس فيه..واحتـرق به ..
واعـشقه لـ تكن مـبدعـًا ..
=)

 

شكولا غير متواجد حالياً   رد مع اقتباس
 

منتديات طلاب وطالبات جامعة الملك عبد العزيز منتديات طلاب وطالبات جامعة الملك عبد العزيز
قديم 23-04-2010, 08:14 PM   #7

مُنيْـرَه المُطيّـرْيْ

سَمآء لايَمسهآ ع ـآبثونْ

الصورة الرمزية مُنيْـرَه المُطيّـرْيْ

 
تاريخ التسجيل: Feb 2010
التخصص: علومْ حآسبَآتّ CS
نوع الدراسة: إنتظام
المستوى: السابع
الجنس: أنثى
المشاركات: 246
افتراضي رد: [شرح][CPCS 203] أفهم الكلمة الأساسية public و private .

يجزآكّ ربيّ آلفّ خيـــرّ
وّ
يعّطيكّ آلفّ عآفيّـــه

~

 

مُنيْـرَه المُطيّـرْيْ غير متواجد حالياً   رد مع اقتباس
 

منتديات طلاب وطالبات جامعة الملك عبد العزيز منتديات طلاب وطالبات جامعة الملك عبد العزيز
قديم 29-04-2010, 09:06 PM   #8

rocker

جامعي

الصورة الرمزية rocker

 
تاريخ التسجيل: Jun 2009
التخصص: IT
نوع الدراسة: إنتظام
المستوى: السابع
الجنس: أنثى
المشاركات: 48
افتراضي رد: [شرح][CPCS 203] أفهم الكلمة الأساسية public و private .

جزاك الله الف خيرر ..
انا طبقت البرنامج معاك ..
بس في اخر خطوه ماطلعلي الاوت بوت "your age is not valid":







مع اني سويت بالضبط نفس الي انت سويته !
اش المشكله ؟

 

توقيع rocker  

 

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

 


التعديل الأخير تم بواسطة rocker ; 29-04-2010 الساعة 09:10 PM.
rocker غير متواجد حالياً   رد مع اقتباس
 

منتديات طلاب وطالبات جامعة الملك عبد العزيز منتديات طلاب وطالبات جامعة الملك عبد العزيز
قديم 29-04-2010, 09:53 PM   #9

m99

جامعي

 
تاريخ التسجيل: Feb 2009
نوع الدراسة: إنتظام
المستوى: الخامس
الجنس: ذكر
المشاركات: 69
افتراضي رد: [شرح][CPCS 203] أفهم الكلمة الأساسية public و private .

نيابةً عن (الأستاذ) مستر أحمد ,,, ولتخفيف الضغط عليه ... >>> عن إذنك مستر أحمد
ولأجل السرعة في الرد ...
...
نجيب على ردك :)
....

في Class Student

كود:
public void SetAge (int x){
	Age = x;
}
عدله إلى :-
كود:
public void SetAge (int x){
	validAge(x);
}

 

m99 غير متواجد حالياً   رد مع اقتباس
 

منتديات طلاب وطالبات جامعة الملك عبد العزيز منتديات طلاب وطالبات جامعة الملك عبد العزيز
قديم 29-04-2010, 10:22 PM   #10

Mr.Ahmad

عضو هيئة تدريس

الصورة الرمزية Mr.Ahmad

 
تاريخ التسجيل: Jul 2008
كلية: كلية الحاسبات وتقنية المعلومات
التخصص: IT
نوع الدراسة: عضو هيئة تدريس
المستوى: متخرج
البلد: جــــدة
الجنس: ذكر
المشاركات: 2,477
افتراضي رد: [شرح][CPCS 203] أفهم الكلمة الأساسية public و private .

المشاركة الأصلية كتبت بواسطة rocker مشاهدة المشاركة
جزاك الله الف خيرر ..
انا طبقت البرنامج معاك ..
بس في اخر خطوه ماطلعلي الاوت بوت "your age is not valid":







مع اني سويت بالضبط نفس الي انت سويته !
اش المشكله ؟
المشاركة الأصلية كتبت بواسطة m99 مشاهدة المشاركة
نيابةً عن (الأستاذ) مستر أحمد ,,, ولتخفيف الضغط عليه ... >>> عن إذنك مستر أحمد
ولأجل السرعة في الرد ...
...
نجيب على ردك :)
....

في Class Student

كود:
public void SetAge (int x){
    Age = x;
}
عدله إلى :-
كود:
public void SetAge (int x){
    validAge(x);
}
لم يقصر الاستاذ "m99" . بارك الله فيه وأحسن الله إليه .
وهذا مزيد من التوضيح :



وجزاك الله خيراً وأدخلك الفردوس الأعلى من الجنة :)

 


التعديل الأخير تم بواسطة Mr.Ahmad ; 29-04-2010 الساعة 10:27 PM.
Mr.Ahmad غير متواجد حالياً   رد مع اقتباس
 

إضافة رد


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

 


الساعة الآن 09:24 PM


Powered by vBulletin® Version 3.8.9 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Ads Organizer 3.0.3 by Analytics - Distance Education

أن كل ما ينشر في المنتدى لا يمثل رأي الإدارة وانما يمثل رأي أصحابها

جميع الحقوق محفوظة لشبكة سكاو

2003-2023