معدِّلات الوصول
معدِّلات الوصول h5>
بشكل افتراضي ، تكون جميع الحقول strong> و طرق strong> أي فصل دراسي في جافا خاصة strong>. هذا يعني أنه لا يمكن لأحد الوصول إليها ، مما يعني أنه خارج كائنات هذه الفئة ، لا توجد طريقة يمكنها استخدام حقول وأساليب كائنات هذه الفئة.
يمكن جعل الحقول والأساليب عامة باستخدام أداة تعديل الوصول strong> عامة code>. يوجد أيضًا مُعدِّل خاص code> يجعل الحقل خاصًا. إنه اختياري لأن جميع الحقول والأساليب خاصة بشكل افتراضي. فيما يلي مثال على استخدام معدّلات public & nbsp؛
و private
.
كتاب الصف
{
Stringname العام ؛
اسم مؤلف السلسلة ؛
العمر الداخلي الخاص
نص سلسلة
public int pageCount ؛
int getTextLength ()
{
طول النص العائد () ؛
}
public int getAverageLetterCount ()
{
إرجاع getTextLength () / pageCount ؛
}
getDifficuiltyLevel الخاص int ()
{
إرجاع 5 * ageRequirement * text.Length () ؛
}
}
في هذا الإصدار من فئة Book
، تكون الحقول name
& nbsp؛ و pageCount
& nbsp؛ عامة للقراءة والتعديل في الكائنات الأخرى. طريقة getAverageLetterCount ()
متاحة أيضًا ليتم استدعاؤها من كائنات الفئات الأخرى. تظل جميع الحقول والأساليب الأخرى خاصة ومتاحة فقط في طرق هذه الفئة. في الطريقة العامة getAverageLetterCount ()
يمكننا استدعاء الطريقة الخاصة getTextLength ()
لأن getAverageLetterCount ()
ينتمي إلى الفئة نفسها. لكنها لن تنجح من طريقة من فئة أخرى.
لكن لماذا إذن نجعل الحقول خاصة؟ في كود Java ، سترى فقط الحقول الخاصة في الغالب. الحقيقة هي أنه إذا تم الوصول إلى الحقول الخاصة من خلال الأساليب العامة للكائن ، فعندئذٍ مع أي وصول إلى الحقول الخاصة ، سيكون من الممكن تنفيذ إجراءات وفحوصات إضافية. المزيد حول هذا سيكون في الدرس حول التغليف.
Problem
جعل جميع حقول فئة Book
خاصة. قم بإزالة أية طرق بها حاليًا.
قم بإنشاء طريقة عامة باسم setText
(نوع الإرجاع void
) مع وسيطة واحدة newText
والتي ستغير قيمة text
إلى newText
. أضف طريقة getWordsCount
خاصة تحسب عدد الكلمات في النص وتعيدها كـ int
.
كلمة & [مدش]. تسلسل من أي أحرف ، من بينها لا توجد مسافة.
إنه مضمون أن العديد من المساحات على التوالي لا يمكن أن تذهب.