JustJava لنعد لتطبيق .للحظة فقط MainActivity لنلق نظرة على فئة .أسلوب عرض الرسالة .بدأت الأمور تبدو مفهومة هنا أدركنا سابقًا أننا ننشئء متغيّرًا يسمى .order Summary Text View نوع البيانات في هذا المتغير .TextView هو بالرغم من أننا لم نفهم .هذا القسم بعد في السطر الثاني،سنلجأ لطريقة .text view object فيما يخص سنقوم باستعمال نفس اسم المتغير .كما هو موضح هنا .orderSummaryTextView.setText إذن نستدعي .ثم نضع سلسلة كمدخل للأسلوب رسالة السلسلة هاته جاءت كمَعلمة إدخال .display message لأسلوب الآن، لنتعمق في هذا القسم .من الرمز الذي لا نفهمه بعد findViewById يبدو وكأن .هو أسلوب إستدعاء رغم ذلك لأنها تسبق هذه الأقواس .بما يشبه وسيطة الإدخال لكن، ما هو غريب أن هذا الأسلوب .لم يتم تحديده في أي مكان في هذه الفئة إذا قمت بنقر مزدوج على هذا الإسم أو،F وبعد ذلك نقرت على أمر إذا كنت تستخدم نظام الويندوز F التحكم .وبالتالي يمكننا البحث عن هذا الملف أرى فقط تكرارين و ،findViewByIdلـ .وقد تم استعمالهما بأساليب متشابهة لكنني لا أرى أي أسلوب .findViewById استدعى وكما تم الإشارة له من قبل ،main activity في فئة setContentViewنرى استدعاءً لـ ولكن إذا بحثت عن هذا في الملف، فهو أيضًا .main acitivity لم يتم تحديده في إذن، أين تم تحديد هذه الأساليب؟ هو MainAcitivity ،حسنًا في الواقع ملف صغير ،وطوله حوالي 90 سطرًا ولكن هناك في الواقع ما هو أهم .في هذه الفئة ،يقول الرمز .AppCompatActivityامتداد لـ MainAcitivity وهذا يعني أن .هو ملحق .AppCompatActivity الوظيفة في فئة action bar activity إذا رأيت هنا على حاسوبك، فلا بأس في ذلك .فذلك فقط مجرد نسخة قديمة النسخة الأخيرة التي ينبغي أن تسنعملها .AppCompatActivity هي AppCompatActivity تمنحنا دعمًا للتوافق السابق .على أجهزة أندرويد السابقة AppCompatActivity تعتبر .جزءً من مكتبة دعم الأندرويد وهي تسمح لنا باستخدام آخر ميزات ،واجهة المستخدم على الأندرويد كما أنها لا تزال تعمل .على أجهزة الأندرويد القديمة عبر تمديد فئة ،AppCompatActivity نحن نحصل على جميع الوظائف وجميع الحالات، و الأساليب من خلال .بالمجّان MainActivity .لا نحتاج لنسخ ولصق كل رمز من هنا يمكننا ببساطة تمديد تلك الفئة ،إذا كنت مهتمًا يمكن العثور على المزيد من المعلومات حول .عبر البحث عنها في غوغل AppCompatActivity لفئة doc هذا هو المرجع .AppCompatActivity وبما أن لدي ملحق كروم ،متبثًا .يمكنني عرض المصدر كذلك وهذا هو الرمز الذي تم فيه تحديد .AppCompatActivity فئة يمكنك رؤية وجود العديد من الوظائف هنا، ولكن الرسالة الأساسية أنه لا ينبغي عليك .فهم كيف تم تنفيذ ذلك كل ما عليك معرفته هو أنه عندما .AppCompatActivity تُمدّد فستحصل على جميع الوظائف .بالمجان ،وفي مستوى عالٍ .إظهارها على هذا النحو هذا تحديد الفئة لـ .MainActivity وكما لديك هنا بعض الأساليب .التي تم تحديدها هنا AppCompatActivity عندما تمدّد فيمكنك الوصول للحالة، و والأساليب بعد ذلك .AppCompatActivity من خلال الآن، لم يتم إضافتهم فعليًا ولكن،main activity لفئة ،يمكن أن تتصور أنهم هناك لأنه يمكنك الرجوع للحالة .وجميع الأساليب كذلك وبذلك يمكن لرمزنا الإحالة أو،setContentViewلبعض العناصر مثل findViewById. لأنه قد اكتسبنا تلك الأساليب .MainActivity ولم نحددها في MainActivity يتم إظهار كشاشة على الجهاز، ولكن MainActivity لم نكتب رمز ذلك في .بل إكتسبنا ذلك أيضًا ليس لدبنا الحالة والأساليب AppCompatActivity مباشرة من في الفئة، ولكننا نعرف .أنهم هناك، ويمكننا الإحالة إليهم ،وبالحديث عن إكتساب الأشياء .هناك جوانب جيدة وسيئة في ذلك أحيانًا، نريد إكتساب سلوك، ولكن .وأحيانًا، نريد تعديله قليلاً إذا أردت تغيير بعض السلوك ،من هذه الفئة المكتسبة .يمكنك تجاوز العديد من الأساليب في أعلى الأسلوب @override text يمكنك إضافة حتى يعرف الحاسوب بأنك لا تريد نسخة الأسلوب .AppCompatActivity من ولكن بدلاً من ذلك، تريد النسخة التي .قمت بتحديدها هنا هذا موضوع معقد، و .يتطلب الكثير من الممارسة لكننا قد رأينا مثالاً واحدًا على تجاوز أسلوب .AppCompatActivity من خلال فئة .on create وذلك الأسلوب هو الأسلوب on create عبر تجاوز أسلوب فنحن نُخصّص ،MainActivity في التنفيذ الخاص بنا لما ينبغي أن يحدث .عندما يتم إستدعاء ذلك الأسلوب .لا تقلق إذا لم تفهم هذا الآن فأنا فقط أقدم لمحة عامة للعديد من مفاهيم .البرامج الموجهة من المتوقع تمامًا أن يكون لديك .بعض الأسئلة العالقة ولا تزال تحتاج لقراءة المزيد من هذه المواضيع لتفهم ذلك .بشكل كامل وهناك طريقة أخرى لإظهار العلاقة MainActivity بين AppCompatActivity و فئات .هو أن ترسم فئة مخطط تسلسل هرمي وهذا مختلف عن عرض مخطط التسلسل الهرمي لأن يظهر عرض مخطط التسلسل الهرمي شجرة .طرق عرض تظهر على الشاشة تُظهر فئة مخطط التسلس الهرمي العلاقة .بين مختلف فئات الجافا .كفئة عليا AppCompatActivity لدينا تمتد من MainActivity بما أن AppCompatActivity، .إذن فهذا ما يسمى بالفئة الفرعية إذن، فأينما رأيت تحديد هذه الفئة فمهما قمت بتمديدها، فذلك يسمى .بالفئة العليا .وهذه ستكون فئة فرعية أخرى تسمى activity إذا أنشأت و detail activity AppCompatActivity ومدّدت فهذه ستكون الفئة الفرعية و .هذه ستكون الفئة العليا وهذا مثال آخر .Java عن اكتساب الفئات الخاص بـ إذا فكرت في الأمر، فإن طريقة عرض النص والصورة .والأزرار لها ميزات مشتركة كل طرق العرض تلك لها عرض .وارتفاع على الشاشة لم ندرس ذلك بعد، ولكن تلك الطرق لديها .أيضا وضع للرؤية إذًا يمكن أن نجعلها ظاهرةً .أو مخفيةً وهناك العديد من الخصائص التي تعد .مشتركة بينها أيضًا عوض كتابة الرمز لتلك الخصائص ،في فئة طريقة عرض النص وثم نسخه في فئتي طريقة .عرض الصورة والأزرار .يمكننا القيام بشيء ذكي قليلًا .يمكننا إنشاء فئة لطريقة العرض يمكننا أن نستخرج الخصائص المشتركة في كل طرق العرض ونضعها في داخل فئة طريقة العرض، وبهذه الطريقة .لن يتوجب علينا كتابة الرمز سوى مرة واحدة ولكن كيف يمكننا القيام بالربط بين فئة طريقة عرض النص و فئة طريقة العرض؟ .إذا كنت تفكر في الاكتساب، فأنت محق سنقوم بتحديد فئة طريقة عرض النص .TextView java داخل ملف وبهذه الطريقة ستُكتسب جميع البيانات .والأساليب من فئة طريقة العرض وبعد ذلك لن يتوجب علينا كتابة .TextView الرمز كاملًا في فئة لأن جزءًا من الوظيفة تمت كتابته .سابقًا في فئة طريقة العرض ImageView الأمر نفسه ينطبق على فئات والأزرار، إذاً لا يتوجب علينا كتابة .الرمز بأكمله في هذه الملفات، يتوجب علينا كتابة ما هو مختلف فقط ImageView بين View وفئة ،أفكر في الأمر كتحديد لدلتا تحتاج ImageView إذًا ففئة ImageView لتحديد ما هو مختلف بين .View وفئة إذا لم نرغب في اكتساب سلوك معين ،View من فئة يمكننا تحديد السلوك المحدّث أو ،ImageView داخل فئة .أي من هذه الفئات ،لتذكيرك بالمصطلحات ،في هذه الحالة فئة فرعية TextView سيكون .فئة عليا View و إذا عدنا إلى وثائق ،TextView فئة .فسنفهم ذلك الجزء الآن .view امتداد لـ TextView وهي تقول والآن نعلم أن ذلك يعني اكتساب الوضع و .ViewClass الأساليب من وهنا في فئة .مخطط التسلسل الهرمي TextView ويظهر أن فئة .ViewClass تكتسب من طرف View وبدورها فئة .Object تكتسب من طرف فئة وإذا قمت بالبحث في الجوار، ستجد ،فئات أخرى التي هي في الواقع EditText مثل فئة .TextView امتداد لفئة إذا فهي تأخذ السلوك و TextView من فئة ثم تضيف وظيفة محددة .لها .TextView هي امتداد لـ EditText إذًا View هي امتداد لـ TextView و .Object هي امتداد لـ View و وهذه هي فئة مخطط .التسلسل الهرمي هناك المزيد والمزيد، ويمكنك أن .تمضي ساعات في تفقده ولكن دعني أريك شيئًا واحدًا .TextView في صفحة وثائق أريد أن أريك الطريقة الخاصة .SetVisibility بـ SetVisibility للقيام بـ Java ها هو أسلوب .TextView داخل فئة view وهذا يغير وضع .لتكون ظاهرة أو مخفية ،إذا نقرتُ على هذا الأسلوب .View فسينقلني في الواقع إلى فئة وهي تصف العمل الذي .يقوم به هذا الأسلوب TextView object ويمكنك أن تلاحظ أن .set visibility لديه أسلوب ولكنها في الواقع تكتسب من .View فئة إذن حصلنا علي هذه الوظيفة بالمجان .View من فئة حسنًا، لقد غطينا العديد .من المفاهيم عمومًا، هذه التفاصيل يمكن التوسع فيها .من خلال كورس فصل علوم الحاسوب سنقوم الآن بالقليل من الممارسة و نتمنى أن تكون الأمور واضحة .بالنسبة لك ولكن عليك أن تعلم أن ذلك سيتطلب الكثير من الوقت و الممارسة حتى تتمكن من فهم .هذه المفاهيم بشكل تام حسنًا، التمرين الأول، أريد منك أن ،تُنشئ تطبيق أندرويد جديد آخر لأننا لا نريد أن نفسد .Java تطبيق الـ ،عندما تنشئ المشروع .قم بتشغيل التطبيق ،عندما تنشئ التطبيق الخاص بك .MainActivity سوف ترى ملف .AppCompatActivity ذلك الملف سيمتد من الخاصة بك Android Studio في نسخة يمتد من MainActivity إذا كان ،عوضًا عن ذلك ActionBarActivity .فذلك جيد أيضًا لأنه يعتبر نسخة قديمة من .AppCompatActivity ،وعبر إزالة أسلوب التجاوز سنرجع إلى onCreate الطريقة التي ظهرت بها فئة .AppCompatActivity في فئة إن تواجد هذا الأسلوب يُبين أننا نريد MainActivity سلوكًا مختلفًا في .onCreate لـ إذا قمنا بحذفها فسيعيدنا ذلك إلى السلوك الأصلى في .AppCompatActivity فئة ،عندما تشغل التطبيق ما هو الاختلاف الذي تلاحظه بالمقارنة مع المرة الأولى التي شغلت فيها التطبيق؟ .أكتب إجابتك في خانة النص التالية