کلمات کلیدی در جاوا ، در قسمت چهارم آموزش برنامه نویسی اندروید ، در ادامه آموزش مبحث برنامه نویسی جاوا یا آموزش زبان جاوا برای اندروید چندین بحث کلیدی را بررسی خواهیم کرد از جمله کلمات کلیدی در جاوا که بیشتر در ارث بری کارایی خواهند داشت.
یکی از مباحثی که تسلط به آن در رابطه با بکارگیری وراثت در زبان برنامه نویسی جاوا ضروری است نحوه به کارگیری کلمه کلیدی Super است.چنانچه بخواهیم به طور خلاصه کاربرد کلید واژه super را بیان کنیم، بایستی گفت که هر موقع که بخواهیم در کلاسهای Subclass یک متد , متغیر و یا Constructor را در Superclass فرابخوانیم می بایست از کلید واژه super استفاده کینم.
برای درک بیشتر به مثال زیر توجه بفرمایید:
public class SuperClass { int speed = 280; public void showLexusSpeed() { System.out.println("Lexus speed is " + speed); } } public class SubClass extends SuperClass { public void showSubClass() { System.out.println("This is the SubClass method"); super.showSuperClass(); } }
در کلاس SubClass که با کلیدواژه extends از کلاس SuperClass ارث بری میکند اما خط super.showSuperClass() به متد showSuperClass در کلاس ریشه اشاره دارد و مستقیما نتیجه همان متد را برمیگرداند و دیگر نیاز به تغییر بدنه نیست بلکه با استفاده از کلیدواژه super مستقیما از همان بدنه اصلی که در کلاس اصلی تعریف شده استفاده میکند.
در این قسمت قصد داریم تا با کلمه کلیدی Static در زبان برنامه نویسی جاوا آشنا شویم. معنای لغوی این کلید واژه معادل است با “ثابت” ، “ساکن”و “ایستا” و در حقیقت هر کجای برنامه خود که بخواهیم چیزی همچون یک متغیر را ثابت نگه داریم از این کلید واژه می بایست استفاده نماییم.
به عبارت دیگر هنگامی که از این واژه استفاده میکنیم برای فیلد یا متد و … دیگر نمیتوان در هیچ کجای برنامه آنها را فراخوانی کرد البته به طور مستقیم این کار غیرممکن است بلکه میتوان به روش های دیگری به صورت غیر مستقیم اینکار را انجام داد.
برای مثال به صورت زیر میتوان انواع مولفه ها را static کرد برای فیلد که به اصطلاح میگویند static Field
static int registrationNumber = 0;
برای متدها static Method
public static int showAllAthletes() { return x; } }
پس از آشنایی با کلمه کلیدی final در این قسمت قصد داریم تا کلید واژه final را مورد بررسی قرار دهیم. به طور کلی می توان گفت که از کلید واژه final می توان در سه موقعیت متفاوت بهره مند شد.
مورد اول استفاده از این کلید واژه برای کلاس ها است. در واقع زمانیکه یک کلاس را final کنیم دیگر امکان ایجاد Subclass از آن کلاس وجود نخواهد داشت. به عبارت دیگر با استفاده از final یک از مهم ترین قابلیت های زبان برنامه نوسی جاوا که یک زبان شیئ گرا است را از دست خواهیم داد و آن Inheritance است .
مورد دوم استفاده از کلید واژه final به همراه متدها است. در واقع زمانیکه یک متد final شود دیگر به هیچ وجه امکان بازنویسی آن متد برای ما وجود نخواهد داشت. به عبارت دیگر نوع کاری که آن متد انجام می دهد را نمی توانیم تغییر دهیم.
مورد سوم استفاده از کلمه کلیدی final در ارتباط با Local Variable ها، Instance Variable ها و پارامترها است. در حقیقت زمانیکه final را در کنار یک متغیری بنویسیم که دارای یک مقدار اولیه است ، مقدار اولیه آن متغیر نهایی شده و دیگر به هیچ وجه امکان اختصاص یک مقدار جدید به آن را نخواهیم داشت.
برای مثال متد ها را میتوان به شکل زیر final کرد:
public class WhatIsFinal { public final void showData() { String name = "iman"; String lastName = "raiesi"; int dateOfBirth = 1368; System.out.println(name + "\n" + lastName + "\n" + dateOfBirth); } }
پس از ایجاد متد final فوق در کلاس ایجاد شده دیگر نمیتوان هنگام ارث بری از این کلاس این متد را override کرد.
از این کلید واژه همانگونه که گفته شد میتوان برای فیلد ها و کلاس ها هم استفاده کرد برای مثال در تکه کد زیر ما در کلاسی که ایجاد کرده ایم فیلد زیر را ایجاد کرده ایم
final int N = 24;
حال دیگر نمیتوان در main یا هر جای دیگر برنامه مقدار این متغیر تغییر داد بلکه تنها میتوان از همین مقدار استفاده کرد
به طور کلی هر زمانیکه بخواهیم در زبان برنامه نویسی جاوا بیش از یک کار را به طور هم زمان پیش ببریم، بایستی از کلاسی تحت عنوان Thread استفاده نماییم. برای درک بهتر مفهوم Thread ها مثالی را مد نظر قرار خواهیم داد. اگر توجه کرده باشیم زمانیکه یک فایل ویدیویی را به صورت آنلاین تماشا می کنیم نیازی نیست که صبر کنیم تا فایل کاملاً بارگذاری شود بلکه به محض آنکه بخش ابتدایی فایل بار گذاری شد، قادر خواهیم بود تا به تماشای ویدیو بپردازیم تا ادامه بارگذاری صورت گیرد. به عبارت دیگر دو کار نمایش ویدیو و بارگذاری آن به صورت هم زمان صورت می گیرند. این دقیقاً کاری است که Thread ها برای انجام آن طراحی شده اند.
به عبارت دیگر به جای آنکه صبر کنیم تا یک کار تکمیل شود سپس کار بعدی آغاز گردد (که بالتبع زمان را از دست خواهیم داد) ، هر دو کار را به صورت هم زمان پیش خواهیم برد. اهمیت چنین مسئله ای در بازی هایی همچون بازی های اندرویدی بیشتر خود را نشان خواهد داد. فرض کنیم در یک بازی ابرها در آسمان در حال حرکت هستند (کار شماره یک) و در همان حال تعدادی پرنده نیز از دور دست ها وارد صحنه می شوند (کار شماره دو). حال شکارچی می بایست با شلیک به سمت پرنده ها آنها را شکار کند (کار شماره سه). در واقع این سه کار به طور هم زمان انجام می شوند.
این در حالی است که اگر در طراحی بازی از کلاس Thread استفاده نشود اول بایستی صبر کنیم تا حرکت ابرها به اتمام برسد سپس پرنده ها وارد صحنه شوند و پس از آنکه حرکت پرنده ها تمام شد، شکارچی می تواند بدون آنکه نگران این مسئله باشد که ممکن است تیرهایش به خطا بروند اقدام به شکار پرنده نماید چرا که دیگر پرنده ها نمی توانند حرکت کنند. حال کاملاً مشخص است که بدون استفاده از Thread ها، بازی ها جذابیت خود را از دست خواهند داد.از سوی دیگر کاربر Thread ها صرفاً در طراحی بازی ها نیست بلکه در اپلیکیشن ها و برنامه های تحت وب و یا دسکتاپ نیز کاربردهای فراوانی دارند.
حال پس از آشنایی با مفهوم Thread در برنامه نویسی لازم است این نکته را نیز متذکر شویم که انجام هم زمان چند کار در زبان برنامه نویسی جاوا اصطلاحاً Concurrency ن امیده می شود.
2 Comments
سلام
جاوا چه ورژنی رو نصب کنیم تا با اموزشهای شما پیش بریم ممنون
با سلام
ورژن 8
با احترام