یادگیری جاوا ساده و جالب است، مهم نیست که چه پیش زمینهای داشته اید. با استفاده از این راهنمای جامع، با تمام منابعی که برای یادگیری و کار کردن با جاوا لازم است، آشنا خواهید شد.
جاوا یک زبان برنامهنویسی قدرتمند، شی گرا و دارای پلتفرم مستقل خود است. کدهای نوشته شده به زبان جاوا، در ماشین مجازی Java اجرا میشوند. ماشین مجازی جاوا، کدهای جاوا را به زبانی که برای سیستم عامل قابل درک باشد ترجمه میکند. تمامی این خصوصیات، جاوا را به یکی از زبانهای برنامهنویسی تاپ در ۲۰۱۹ تبدیل میکند. (دوره جامع آموزش جاوا – صفر تا صد)
هیچ راه کوتاه و بریدهای برای یادگیری هر چیزی وجود ندارد و یادگیری جاوا هم از این قاعده مثتسنی نیست. اگر دوست دارید که استاد زبان برنامهنویسی جاوا شوید (که واقعا ارزش دارد)، باید آنرا روی سیستم خود نصب کرده و شروع به یادگیری و تمرین کنید.
JDK (کیت توسعه جاوا) و JRE (محیط اجرای جاوا) و همچنین یک IDE باکیفیت برای جاوا دانلود و نصب کنید. برای مثال IDE هایی مانند نت بینزو Easy Eclipse بخوبی برای برنامهنویسی و ساخت اپلیکیشن با جاوا کار میکنند. در دوره جامع آموزش جاوا در کدفرند از صفر تا صد به آشنایی و کار کردن با جاوا میپردازیم.
بسیار خب، قبل از اینکه بریم سراغ یادگیری Core و پایه و اساس زبان برنامهنویسی جاوا، باید به نکات زیر توجه داشته باشید:
نه تنها در برنامهنویسی جاوا، بلکه در تمام زبانهای برنامهنویسی انواع مختلفی از دادهها وجود دارند. برای مثال شماره تلفن همراه شما از نوع عددی (Integer) و نام شما از نوع رشتهای (String) میباشد، تاریخ تولد شما از نوع Date بوده و به همین شکل دادههای دیگری نیز وجود دارند. متغیرهاحافظهای در سیستم برای ذخیره انواع مختلف دادهها میباشند و همانطور که از اسمشان معلوم است، مقادیر ذخیره شده در آنها قابل تغییر هستند. به مثال زیر توجه کنید::
1
2
3
4
String driverName;
int telephoneNo;
float petrolPrice;
boolean isRegular;
یکی از بهترین تمرینها در برنامهنویسی استفاده از کنوانسیون های صحیح نام گذاری متغیرها است. به متغیرهای فوق (driverName, telephoneNo, petrolPrice, isRegular) توجه کنید. یکی از روشهای استاندارد نام گذاری متغیرها، شروع نام متغیر با حرف کوچک و استفاده از حرف بزرگ در کلمه بعدی است.
در مثال بالا نوع داده boolean برای برگرداندن یک مقدار True یا False و نوع داده Float برای ذخیره اعداد اعشاری استفاده میشود.
مزیت ذخیره دادهها در متغیرها این است که میتوانیم از متغیر در هر کجای کد که خواستیم استفاده کنیم. محدوده استفاده از یک متغیر با توجه به دامنه آن تعریف میشود که میتواند local، static یا global باشد. بسیار خب، تا به اینجا با متغیرها آشنا شدیم، اما آنها چه کاربردی دارند؟ ما عملیاتی را روی آنها انجام میدهیم.
دستور if بررسی میکند که یک چیز خاص صحیح است یا غلط و بر اساس نتیجه بررسی، کدهایی را اجرا میکند. معمولا همراه با دستور if، از دستورات else و else if هم استفاده میشود که برای هندل کردن دستورات شرطی بیشتر و پیچیده بکار میروند.
1
2
3
4
5
6
if(marks < 23)
grade = ‘F’;
else if(marks > 23 && marks < 60)
grade = ‘D’;
else
grade = ‘B’;
توجه داشته باشید که علامتهای && بدان معنی هستند که هر دو عبارت در دستور if صحیح باشند تا کدهای درون بلاک if اجرا شوند.
بیشتر کدهایی که نوشتهایم را میتوانیم در بلاکهای کد با نامهای مختلف بصورت جداگانه فرار دهیم تا در قسمتهای مختلف برنامه قابل استفاده باشند. به این بلاکهای کد تابع (Functions) گفته میشود. کدی که بر اساس توابع نوشته شده باشد، تمیزتر و استانداردتر میباشد. استفاده از توابع موجب کاهش کدهای برنامه و در نتیجه حجم برنامه میشود؛ زیرا بوسیله توابع میتوانیم کدی که یک بار نوشتیم را چند بار در جاهای مختلف اپلیکیشن بکار ببریم.
تمامی نکات و استانداردهای نام گذاری متغیرها در جاوا، برای نام گذاری توابع هم وجود دارند. نام تابع با حرف کوجک شروع شده و کلمه بعدی با حرف بزرگ نوشته میشود.
برای شروع کافیست بدانید که در برنامهنویسی شئ گرا هر چیزی به عنوان یک آبجکت شناخته میشود؛ برای مثال مداد یک آبجکت است، خودرو، گیاه، حیوان، میز و صندلی، خانه و حتی راننده خودرو نیز هر کدام یک آبجکت میباشند.
فرض کنید ما یک آبجکت خودرو داریم. خصوصیاتی مانند: مدل خودرو، کمپانی سازنده، سال ساخت، تعداد چرخ، حجم موتور، تعداد سرنشین، ظرفیت باک بنزین و … هر کدام بصورت جفت کلید مقدار اطلاعات خودرو را تعریف میکنند. به این معنی که میتوانیم یک کلاس به نام car ایجاد بکنیم و این خصوصیات را در آن تعریف بکنیم. سپس هر موقع که نیاز داشتیم میتوانیم یک آبجکت از کلاس car بوسیله کلمه کلیدی new ایجاد کنیم و از آن اطلاعات استفاده کنیم.
1
Driver driver = new Driver();
برنامهنویسی شئ گرا (OOP) مبحث بسیار پیچیده و طولانی است و نیاز به تمرین و تکرار بسیار زیاد و کاربردی دارد؛ طوری که نمیتوانیم در این مطلب آن را بطور کامل یاد بگیریم و مسلط شویم. میتوانید برای یادگیری برنامهنویسی شئ گرا در جاوا استفاده کنید.
ساختمان دادههای بسیاری در زبان برنامهنویسی جاوا مانند آرایه، لیست، map ،tree و .. وجود دارند. به غیر از آرایه، تمامی این ساختمان دادهها به همراه فریمورک Collection می آیند اما آرایه بخشی از پکیج java.util میباشد. یادگیری Collection به شما رضایت بزرگی از ذخیره و بازیابی داده را میدهد.
به طور کلی، آرایهها در زبان جاوا به منظور ذخیره و نگهداری مجموعهای از دادههایی با دیتا تایپ یکسان همچون دادههایی از جنس int یا String به کار میروند. در واقع، میتوانیم با استفاده از آرایهها به جای تعریف چندین متغیر و اختصاص دادههای مورد نیاز به هر یک از آنها، یک متغیر تعریف کرده و مجموعۀ دادههای مورد نظر خود را بدان اختصاص دهیم که در چنین شرایطی یک متغیر قادر بر نگهداری گروهی از دادههایی با دیتا تایپیکسان میباشد. در کد زیر یک مثال ساده از آرایهها در جاوا نوشته شده ::
1
Driver[] drivers = new Driver[5];
فرض کنید در آرایه drivers اطلاعات ۵ راننده را ذخیره کردیم. حالا میخواهیم با استفاده از جلقه تکرار for برای هر کدام از این رانندهها حقوقی (Salary) را تائین کنیم.
1
2
3
4
5
for(int i=0; i<5; i++)
{
if(driver[i].isRegular && driver[i].salary < 4000)
driver[i].salary += 200;
}
توجه داشته باشید که اطلاعات هر راننده را بدست میاوریم و سپس بررسیهایی روی هر یک از رانندگان انجام میدهیم. پس از آن، مقداری به عنوان حقوق تعیین میکنیم. در این مثال ما بصورت hardcoding مقدار Driver را ۵ تعریف کردهایم، اما در یک اپلیکیشن واقعی، این اطلاعات را از یک دریتابیس دریافت خواهیم کرد.
راه های مختلفی برای دریافت ورودی وجود دارد که در ادامه برخی از آنها را نام می بریم و نحوه استفاده از آنها را نیز بیان می کنیم.
در این مثال به بررسی کلاسهای Scanner و Console خواهیم پرداخت.
1
2
3
4
5
import java.util.Scanner;
Scanner scan = new Scanner(System.in);
String s = scan.next();
int i = scan.nextInt();
در بالا ابتدا کلاس Scanner را import کردیم سپس یک شئی یا Instance از Scanner ساختیم سپس با استفاده از متد next مقدار آن را دریافت می کنیم.
1
2
3
4
import java.io.Console;
Console console = System.console();
String s = console.readLine();
int i = Integer.parseInt(console.readLine());
یکی از مبتدی ترین روش برای خواندن داده در بیشتر زبان های برنامه نویسی از قبیل C# و Java استفاده از کلاس Console است در این روش با استفاده از کلاس Console این کار انجام می شود.
در تمامی کالاس های بالا از System.in استفاده شده است به منظور دریافت ورودی در بیشتر موارد باید از این کلاس استفاده کرد.
برای اتصال به دیتابیس با جاوا، ابتدا نیاز به import کردن درایور JDBC داریم. دیتابیسهای مختلف درایورهای متفاوتی دارند. برای مثال دیتابیس mysql از درایور com.mysql.jdbc.Driver استفاده میکند. سپس باید به URL دیتابیس (محل قرارگیری دیتابیس) متصل شویم. برای دسترسی به دیتابیس، به username و password هم نیاز داریم. پس از اتصال به دیتابیس، میتوانیم دستورات و کوئریهای خود را با استفاده از کد جاوا، روی دیتابیس اجرا کنیم.
File Handling در جاوا با استفاده از دو کلاس FileWriter و FileReader صورت میگیرد. در مستندات جاوا سایت Oracle تمامی متدها و سازندههایی که این کلاسها دارند توضیح داده شدند و میتوانند برای شما بسیار مفید واقع شوند. قبلا کلاسهای FileInputStream و FileOutputStream استفاده میشدند اما کلاسهای FileWriter و FileReader بسیار قدرتمندتر هستند.
جاوا زبان بسیار انعطاف پذیری است؛ اما به عنوان یک توسعهدهنده، باید بدانیم که در صورت صحیح کار نکردن کد و گرفتن نتیجه نادرست، چه کاری باید انجام دهیم. یکی از این مواقع، ورود اطلاعات غلط توسط کاربر است. برای مثال اگر شما driverName را به عنوان یک String ست کرده باشید، و کاربر اعداد و کارکترهای تصادفی وازد کند، ما باید بتوانیم این استثنا را هندل کنیم یا به عبارت دیگر اعتبار سنجی کنیم.
معمولا در سمت کلاینت، این اعتبارسنجی براحتی با استفاده از Javascript انجام میشود، اما ممکن است جاوا اسکریپت به تنهایی کافی نباشد. پس به عنوان توسعهدهنده نیاز داریم تا این اعتبارسنجی در سمت سرور هم انجام شود. برخی از Exception های معمول NullPointerException (زمانی که میخواهیم روی یک آبجکت خالی null عملیاتی انجام دهیم)، NumberFormatException (زمانی که سعی میکنیم String را یه عدد تبدیل کنیم و این عملیات معتبر نیست)، ArrayIndexOutOfBoundsException (زمانی که سعی داریم به یک المنت که خارج از سایز لیستمان است دسترسی داشته باشیم) هستند.
در این پست به آشنایی با مباحث و اصطلاحات ابتدایی برنامهنویسی به زبان جاوا پرداختیم. امیدوارم این پست در یک شروع قدرتمند با جاوا برایتان مفید باشد.