آموزش اندروید فصل اول قسمت چهارم – کلید واژه های جاوا

آموزش اندروید فصل اول

در قسمت چهارم آموزش اندروید ،در ادامه آموززش مبحث جاوا چندین بحث کلیدی را بررسی خواهیم کرد که بیشتر در ارث بری کارایی خواهند داشت.

آموزش اندروید فصل اول قسمت چهارم – دستورات جاوا

کلید واژه Super

یکی از مباحثی که تسلط به آن در رابطه با بکارگیری وراثت در زبان برنامه نویسی جاوا ضروری است نحوه به کارگیری کلید واژه super است.چنانچه بخواهیم به طور خلاصه کاربرد کلید واژه super را بیان کنیم، بایستی گفت که هر موقع که بخواهیم در کلاسهای Subclass یک متد , متغیر و یا Constructor را در Superclass فرابخوانیم می بایست از کلید واژه super استفاده کینم.

برای درک بیشتر به مثال زیر توجه بفرمایید

در کلاس SubClass که با کلیدواژه extends از کلاس SuperClass ارث بری میکند اما خط super.showSuperClass() به متد showSuperClass در کلاس ریشه اشاره دارد و مستقیما نتیجه همان متد را برمیگرداند و دیگر نیاز به تغییر بدنه نیست بلکه با استفاده از کلیدواژه super مستقیما از همان بدنه اصلی که در کلاس اصلی تعریف شده استفاده میکند.

کلیدواژه Static

در این قسمت قصد داریم تا با کلید واژه static در زبان برناممه نویسی جاوا آشنا شویم. معنای لغوی این کلید واژه معادل است با “ثابت” ، “ساکن”و “ایستا” و در حقیقت هر کجای برنامه خود که بخواهیم چیزی همچون یک متغیر را ثابت نگه داریم از این کلید واژه می بایست استفاده نماییم.

به عبارت دیگر هنگامی که از این واژه استفاده میکنیم برای فیلد یا متد و… دیگر نمیتوان در هیچ کجای برنامه آنهارا فراخوانی کرد البته به طور مستقیم این کار غیرممکن است بلکه میتوان به روش های دیگری به صورت غیر مستقیم اینکار را انجام داد. برای مثال به صورت زیر میتوان انواع مولفه ها را static کرد

برای فیلد که به اصطلاح میگویند static Field

برای متدها static Method

کلیدواژه final

پس از آشنایی با کلید واژه static در این قسمت قصد داریم تا کلید واژه final را مورد بررسی قرار دهیم. به طور کلی می توان گفت که از کلید واژه final می توان در سه موقعیت متفاوت بهره مند شد.

مورد اول استفاده از این کلید واژه برای کلاس ها است. در واقع زمانیکه یک کلاس را final کنیم دیگر امکان ایجاد Subclass از آن کلاس وجود نخواهد داشت. به عبارت دیگر با استفاده از final یک از مهم ترین قابلیت های زبان برنامه نوسی جاوا که یک زبان شیئ گرا است را از دست خواهیم داد و آن Inheritance است .

مورد دوم استفاده از کلید واژه final به همراه متدها است. در واقع زمانیکه یک متد final شود دیگر به هیچ وجه امکان بازنویسی آن متد برای ما وجود نخواهد داشت. به عبارت دیگر نوع کاری که آن متد انجام می دهد را نمی توانیم تغییر دهیم.

.

مورد سوم استفاده از کلید واژه final در ارتباط با Local Variable ها، Instance Variable ها و پارامترها است. در حقیقت زمانیکه final را در کنار یک متغیری بنویسیم که دارای یک مقدار اولیه است، مقدار اولیه آن متغیر نهایی شده و دیگر به هیچ وجه امکان اختصاص یک مقدار جدید به آن را نخواهیم داشت.

برای مثال متد هارا میتوان به شکل زیر final کرد

پس از ایجاد متد final فوق در کلاس ایجاد شده دیگر نمیتوان هنگام ارث بری از این کلاس این متد را override کرد.

از این کلید واژه همانگونه که گفته شد میتوان برای فیلد ها و کلاس ها هم استفاده کرد برای مثال در تکه کد زیر ما در کلاسی که ایجاد کرده ایم فیلد زیر را ایجاد کرده ایم

final int N = 24;

حال دیگر نمیتوان در main یا هر جای دیگر برنامه مقدار این متغیر تغییر داد بلکه تنها میتوان از همین مقدار استفاده کرد

Thread Classes

به طور کلی می توان گفت که Thread ها دارای کاربردهای فراوانی هستند که از آن جمله می توان به طراحی بازی ها اشاره کرد (لازم به ذکر است که واژه انگلیسی Thread دارای معانی متعددی در زبان فارسی است که از آن جمله می توان به “نخ، رشته، ریسمان” اشاره کرد).

به طور کلی هر زمانیکه بخواهیم در زبان برنامه نویسی جاوا بیش از یک کار را به طور هم زمان پیش ببریم، بایستی از کلاسی تحت عنوان Thread استفاده نماییم. برای درک بهتر مفهوم Thread ها مثالی را مد نظر قرار خواهیم داد. اگر توجه کرده باشیم زمانیکه یک فایل ویدیویی را به صورت آنلاین تماشا می کنیم نیازی نیست که صبر کنیم تا فایل کاملاً بارگذاری شود بلکه به محض آنکه بخش ابتدایی فایل بار گذاری شد، قادر خواهیم بود تا به تماشای ویدیو بپردازیم تا ادامه بارگذاری صورت گیرد. به عبارت دیگر دو کار نمایش ویدیو و بارگذاری آن به صورت هم زمان صورت می گیرند. این دقیقاً کاری است که Thread ها برای انجام آن طراحی شده اند.

.

به عبارت دیگر به جای آنکه صبر کنیم تا یک کار تکمیل شود سپس کار بعدی آغاز گردد (که بالتبع زمان را از دست خواهیم داد)، هر دو کار را به صورت هم زمان پیش خواهیم برد. اهمیت چنین مسئله ای در بازی هایی همچون بازی های اندرویدی بیشتر خود را نشان خواهد داد. فرض کنیم در یک بازی ابرها در آسمان در حال حرکت هستند (کار شماره یک) و در همان حال تعدادی پرنده نیز از دور دست ها وارد صحنه می شوند (کار شماره دو). حال شکارچی می بایست با شلیک به سمت پرنده ها آنها را شکار کند (کار شماره سه). در واقع این سه کار به طور هم زمان انجام می شوند.

این در حالی است که اگر در طراحی بازی از کلاس Thread استفاده نشود اول بایستی صبر کنیم تا حرکت ابرها به اتمام برسد سپس پرنده ها وارد صحنه شوند و پس از آنکه حرکت پرنده ها تمام شد، شکارچی می تواند بدون آنکه نگران این مسئله باشد که ممکن است تیرهایش به خطا بروند اقدام به شکار پرنده نماید چرا که دیگر پرنده ها نمی توانند حرکت کنند. حال کاملاً مشخص است که بدون استفاده از Thread ها، بازی ها جذابیت خود را از دست خواهند داد.از سوی دیگر کاربر Thread ها صرفاً در طراحی بازی ها نیست بلکه در اپلیکیشن ها و برنامه های تحت وب و یا دسکتاپ نیز کاربردهای فراوانی دارند.

حال پس از آشنایی با مفهوم Thread در برنامه نویسی لازم است این نکته را نیز متذکر شویم که انجام هم زمان چند کار در زبان برنامه نویسی جاوا اصطلاحاً Concurrency ن امیده می شود.

مدرس : خانم مهندس داودی نژاد

آموزش اندروید فصل اول قسمت سوم

آموزش اندروید فصل اول قسمت پنجم

درباره نویسنده

مطالب مرتبط

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *