آموزش زبان جاوا برای اندروید ، در قسمت دوم آموزش برنامه نویسی اندروید ، مبحث جاوا که میتوان گفت پیش نیاز یادگیری برنامه نویسی اندروید محسوب میشود را آموزش خواهیم داد.البته قابل ذکر است که در این آموزش تنها مباحث کلیدی و اصلی شرح داده شده. امیدواریم که مثمر ثمر واقع شود.
بدون اغراق زبان برنامه نویسی جاوا به منزله یکی از معروف ترین زبانهای برنامه نویسی در دنیا است چرا که از این زبان برنامه نویسی علاوه برساخت برنامه های کامپیوتری ، در ساخت اپلیکیشن ها و بازی های اندروید نصب شده روی تلفن های همراه و تبلت ها و همچنین برنامه نویسی برای وب سایت های تعاملی مثل وب سایت بانک ها و موسسات بزرگ نیز استفاده می شود.
در حقیقیت یکی از علل میزان محبوبیت این زبان برنامه نویسی در میان میلیون ها برنامه نویس حرفه ای در سرتاسرجهان این است که این زبان برنامه نویسی غیرممکن ها را ممکن ساخته است.
هیچ جای شگفتی نیست که آشنایی با زبان برنامه نویسی پلتفرم محبوبی همچون اندروید که بیشتاز ۷۰ درصد سهم بازار جهانی را در میان تلفن های همراه به خود اختصاص داده است می تواند امید بخش آینده مالی خوبی نیز برای برنامه نویسان این حوزه باشد.زبان برنامه نویسی جاوا زبان ساده ای است مخصوصاً برای کسانیکه از پیشینه برنامه نویسی با C و C++ برخوردار باشند.
در زبان جاوا شی گرایی مورد استفاده قرار می گیرد به این شکل که هر چیزی در زبان جاوا یک شئی است و همین مسئله برنامه نویسی در محیط جاوا را بسیار ساده می سازد.
یکی از ویژگی های منحصر به فرد جاوا مدیریت حافظه است که حافظه تخصیص داده شده را مدیریت کرده و به موقع آزاد می کند.
جاوا این امکان را به ما می دهد تا در آن واحد چندین برنامه را به طور هم زمان اجرا کنیم. از دیگر مزایای این زبان برنامه نویسی می توان امنیت بالای برنامه هایی اشاره کرد که با جاوا نوشته می شوند چرا که جاوا با ایجاد یک Firewall مابین کامپیوتر شما و شبکه، از حمله ویروس ها به اطلاعات شخصی شما جلوگیری به عمل خواهد آمد.
برنامه های نوشته شده توسط جاوا قابلیت حمل دارند و روی هر سیستمی که جاوا روی آن نصب باشد قابل اجرا است.
همانگونه که گفته شد برای زبان برنامه نویسی اندروید بر پایه زبان برنامه نویسی جاوا میباشد پس طبیعتا برای برنامه نویسی اندروید باید با زبان جاوا اشنایی داشته باشیم که در اینجا ما توضیحات مختصر و مفیدی که ممکن است هنگام کدنویسی به آنها نیاز داشته باشید را خواهیم گفت.همانگونه که گفته شد زبان جاوا یک زبان شی گراست پس ما از کلاس ها و شی ها و .. استفاده خواهیم کرد.
اما نکته بسیار مهم در این زبان این است که هنگام اجرای کدهای نوشته شده جاوا در IDE هایی که از آن استفاده میکنیم (مانند eclipse ، android studio یا هر برنامه دیگر) کامپایلر برنامه ابتدا به سراغ تابع main برنامه می رود ، به عبارت دیگر تابع main(String [] args) به عنوان نقطه شروع زبان جاوا میباشد پس ما نیز طبق این قانون باید دستورات کلیدی و اصلی را درون این تابع قرار دهیم.
نکته دیگری که باید هنگام کدنویسی جاوا توجه داشته باشیم این است که این زبان به حروف بزرگ و کوچک حساس است و برخی دستورات و کلمات کلیدی باید با حروف بزرگ یا کوچک نوشته شود که در ادامه خواهیم گفت.
class FirstProgram {
public static void main(String[] args) {
//main Block
String text = "In the name of God";
System.out.println(text);
}
}
همانگونه که مشاهده میکنید در این زبان نیز مانند زبان سی شارپ از // قبل عبارت برای کامنت کردن استفاده میکنیم
و اگر چند خط را بخواهیم کامنت کنیم باید از دستورات */ و در خط اخر نیز /* استفاده کنیم.
دستور نمایش خروجی نیز System.out.println() میباشد اگر توجه کنید S ابتدای System به صورت بزرگ نوشته شده چون درصورت کوچک نوشته شدن با خطا مواجه خواهیم شد و با عبارت out حتما باید با حروف کوچک نوشته شوند.
نکته دیگری که باید توجه داشه باشیم این است که نام کلاسی که در برنامه ایجاد میکنیم باید با نام فایل که به صورت .java ذخیره میکینم یکی باشد.
مدیریت خطاها در زبان برنامه نویسی جاوا مبحث بسیار مهمی می باشد که ما در آموزش زبان جاوا برای اندروید به آن می پردازیم. مشکلات یا Error ها در زبان برنامه نویسی جاوا به چند دسته تقسیم می شوند: گروه اول Error هایی هستند که از نوع Compile-time Error می باشند. به طور مثال دستور system.out.println(); در مقایسه با System.out.println();
اشتباه است چرا که حرف اول واژه system به صورت کوچک نوشته شده است همین مسئله موجب می گردد که برنامه Compile نشود.
خبر امیدوار کننده اینجا است که این گروه از مشکلات توسط خود نرم افزاری که برنامه خود را با آن می نویسیم تشخیص داده شده و به ما اخطار داده می شوند و به سادگی می توان آن را رفع کرد.
نوع دیگر از Error ها تحت عنوان Unchecked Runtime Exception شناخته می شوند.در این صورت ما هیچ گونه Compile-time Error نداریم اما برنامه هم به طور کامل اجرا نمی شود.
در واقع برنامه ای که ما نوشته ایم کاری را از جاوا می خواهد انجام دهد که جاوا از انجام آن ناتوان است.به طور مثال فرض کنیم که ما یک متغییر از جنس int داریم که Value اختصاص داده شده به آن ۱,۰۰۰,۰۰۰ است.
در حین نوشتن برنامه ما با هیچ گونه مشکلی مواجه نخواهیم شد اما به محض اینکه اقدام به Compile کردن برنامه می کنیم Error دریافت می کنیم.
دسته دیگری از Error ها از نوع Logical یا منطقی هستند. در چنین مواقعی نرم افزاراکلیپس هیچ گونه خطایی را نشان نخواهد داد و برنامه هم به طور کامل اجرا خواهد شد اما پاسخی که نرم افزار قرار بود به ما بدهد صحیح نیست .
دسته آخر Error ها که بهتر است نام آن ها را Error نگذاریم بلکه Warning یا هشدار بنامیم تحت عنوان Compile-time Warning شناخته می شوند. به طور کلی این دسته از هشدار ها به مهمی Error ها نمی باشند.
مطلب مهم دیگری که در این بخش از آموزش زبان جاوا برای اندروید به آن می پردازیم کلاس Scanner هستش ، این کلاس یکی از مهم ترین کلاس ها در زبان جاوا است که به منطور دریافت ورودی از کاربر می باشد و صرفا با import کردن و ساخت یک شی میتوان از آن استفاده کرد بدین صورت که با ایجاد یک شی از این کلاس میتوان در ادامه برنامه با استفاده از آن شی مقادیری را از ورودی دریافت کرده و درون متغیری دیگر قرار داد. به صورت زیر:
import java.util.Scanner;
class Project {
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
Int x = myscanner.nextint();
}
}
حال براساس اینکه چه نوع ورودی میخواهیم از ورودی دریافت کنیم از تابع های مختلف مانند nextint() ، nextdouble() و دستوری مانند nextLine() همه نوع داده را ازورودی میگیرد تا زمانی که دکمه enter را فشار دهیم.
در مقابل تابع دیگری با عنوان next() نیز وجود دارد که این تابع نیز همه نوع داده را از ورودی میگیرد اما تا زمانی که دکمه space فشار داده شود.
یکی از زمان هایی که باعث میشود برنامه crash شود و از ادامه باز ماند زمانی است که مثلا ما در کدنویسی خود گفته ایم که باید داده ای از جنس integer وارد شود اما کاربر داده ای از جنس double وارد کرده ، خب در این زمان برنامه با خطا مواجه میشود و دیگر نمیتواند ادامه دهد اما این حالت مطلوبی نیست پس برای جلوگیری از این عمل میتوان به صورت زیر کد نوشت:
import java.util.Scanner;
class Project {
public static void main(String[] args) {
Scanner passwordInput = new Scanner(System.in);
System.out.print("Please enter your password: ");
int builltInPassword = 2244176;
if (passwordInput.hasNextInt() && passwordInput.nextInt() == builltInPassword) {
System.out.println("Thanks, you entered the right format"
+ " \nand also your password is correct");
} else {
System.out.println("Sorry, please enter the right format"
+ " \nor the right password");
}
}
}
همانطور که در کدهای فوق مشخص است ابتدا متغیری از نوع int و با نام و مقدار مشخص ایجاد شده سپس درون دستور if
دو شرط چک شده یکی اینکه نوع آن حتما int باشد که با استفاده از دستور hasNextInt() مشخص شده و دیگری اینکه مقدار برابر با مقداری باشد که خود برنامه نویس تعیین کرده و در ادامه نیز مقادیر مشخصی را به خروجی ارسال میکند.