آموزش جاوا - نوشتار پایه
وقتی یک برنامه جاوا را در نظر میگیریم، میتوانیم آن را به عنوان یک مجموعه از اشیا تعریف کنیم که از طریق فراخوانی متدهای همدیگر با یکدیگر ارتباط برقرار میکنند. در اینجا به طور خلاصه به معنی کلاس، شیء، متدها و متغیرهای نمونه میپردازیم.
-
شیء (Object) − اشیاء دارای وضعیت و رفتار هستند. مثال: یک سگ وضعیتهایی مانند رنگ، نام، نژاد را دارا میباشد و همچنین رفتارهایی مانند تکان دادن دم، واقع و خوردن را دارا میباشد. یک شیء نمونهای از یک کلاس است.
-
کلاس (Class) − یک کلاس میتواند به عنوان یک الگو/قالب/طرحبرنامه تعریف شود که رفتار/وضعیتی را که شیء نمونهای از نوع آن پشتیبانی میکند، توصیف میکند.
-
متدها (Methods) − یک متد به طور اساسی یک رفتار است. یک کلاس میتواند شامل بسیاری از متدها باشد. محاسبات دادهها، تغییر دادهها و اجرای کلیه عملیاتها درون متدها صورت میگیرد.
-
متغیرهای نمونه (Instance Variables) − هر شیء دارای مجموعهای منحصر به فرد از متغیرهای نمونه است. وضعیت یک شیء توسط مقادیر اختصاص داده شده به این متغیرهای نمونه ایجاد میشود.
اولین برنامه جاوا
یک کد ساده را در نظر بگیرید که کلمات Hello World را چاپ میکند.
مثال
public class MyFirstJavaProgram {
/* This is my first java program.
* This will print 'Hello World' as the output
*/
public static void main(String []args) {
System.out.println("Hello World"); // prints Hello World
}
}
هم اکنون به نحوه ذخیره فایل، کامپایل و اجرای برنامه نگاهی بیندازیم. لطفاً مراحل زیر را دنبال کنید
-
notpad را باز کنید و کد را به شکل بالا اضافه کنید.
-
فایل را با نام MyFirstJavaProgram.java ذخیره کنید
-
یک پنجره دستور پیدا کنید و به دایرکتوریای بروید که فایل را در آن ذخیره کردهاید. فرض کنید مسیر آن C:\ است.
-
'javac MyFirstJavaProgram.java' را تایپ کنید و دکمه Enter را فشار دهید تا کد شما کامپایل شود. اگر هیچ خطا در کد شما وجود ندارد، خط فرمان شما را به خط بعدی میبرد (فرض: متغیر مسیر تنظیم شده است).
-
اکنون ' java MyFirstJavaProgram ' را تایپ کنید تا برنامه شما اجرا شود.
-
شما میتوانید ببینید که ' Hello World ' در پنجره چاپ میشود.
خروجی
C:\> javac MyFirstJavaProgram.java
C:\> java MyFirstJavaProgram
Hello World
سینتکس اولیه
درباره برنامههای جاوا، مهم است که نکات زیر را به خاطر داشته باشید.
-
حساسیت به بزرگی و کوچکی حروف (Case Sensitivity) − جاوا حساس به بزرگی و کوچکی حروف است، به این معنی که شناسههای Hello و hello در جاوا معنای متفاوتی خواهند داشت.
-
نامهای کلاس − برای همه نامهای کلاس، حرف اول باید با حروف بزرگ نوشته شود. اگر چندین کلمه برای تشکیل نام کلاس استفاده میشود، حرف اول هر کلمه داخلی باید با حروف بزرگ نوشته شود.
مثال: class MyFirstJavaClass
-
نامهای متد − همه نامهای متد باید با حرف کوچک شروع شوند. اگر چندین کلمه برای تشکیل نام متد استفاده میشود، هر کلمه داخلی باید با حروف بزرگ شروع شود.
مثال: public void myMethodName()
-
نام فایل برنامه − نام فایل برنامه باید دقیقاً با نام کلاس مطابقت داشته باشد.
هنگام ذخیره فایل، باید آن را با نام کلاس ذخیره کنید (توجه کنید که جاوا حساس به بزرگی و کوچکی حروف است) و '.java' را به انتهای نام اضافه کنید (اگر نام فایل و نام کلاس مطابقت نداشته باشد، برنامه شما کامپایل نخواهد شد).
اما لطفاً یادداشت کنید که در صورت عدم وجود کلاس عمومی در فایل، نام فایل ممکن است با نام کلاس متفاوت باشد. همچنین، داشتن یک کلاس عمومی در فایل الزامی نیست.
مثال: فرض کنید 'MyFirstJavaProgram' نام کلاس است. پس فایل باید به عنوان 'MyFirstJavaProgram.java' ذخیره شود.
-
public static void main(String args[]) − پردازش برنامه جاوا از متد main() شروع میشود که قسمت اجباری هر برنامه جاوا است.
شناسههای جاوا
تمام مؤلفههای جاوا نیاز به نام دارند. نامهای استفاده شده برای کلاسها، متغیرها و متدها را شناسهها مینامند.
در جاوا، چند نکته درباره شناسهها وجود دارد که به خاطر بسپارید. آنها به شرح زیر است −
-
تمام شناسهها باید با یک حرف (از A تا Z یا از a تا z)، نماد ارز ($) یا زیرخط (_) شروع شوند.
-
بعد از حرف اول، شناسهها میتوانند هر ترکیبی از حروف را داشته باشند.
-
از کلمه کلیدی نمیتوان به عنوان شناسه استفاده کرد.
-
مهمترین نکته آن است که شناسهها حساس به بزرگی و کوچکی حروف هستند.
-
مثالهای شناسههای قانونی: age، $salary، _value، __1_value.
-
مثالهای شناسههای غیرقانونی: 123abc، -salary.
مودیفایرهای جاوا
مانند زبانهای دیگر، با استفاده از مودیفایرها میتوان کلاسها، متدها و غیره را تغییر داد. دو دسته مودیفایر وجود دارد −
-
مودیفایرهای دسترسی (Access Modifiers) − default، public، protected، private
-
مودیفایرهای غیردسترسی (Non-access Modifiers) − final، abstract، strictfp
متغیرهای جاوا
نوعهای مختلفی از متغیرها در جاوا وجود دارند −
- متغیرهای محلی (Local Variables)
- متغیرهای کلاس (متغیرهای استاتیک) (Class Variables (Static Variables))
- متغیرهای نمونه (متغیرهای غیر استاتیک) (Instance Variables (Non-static Variables))
آرایههای جاوا
آرایهها اشیاءای هستند که متغیرهای چندگانهای از یک نوع مشخص را ذخیره میکنند. با این حال، خود آرایه یک شیء در حافظه است. در فصلهای آتی، به نحوه اعلام، ساخت و مقداردهی آرایه خواهیم پرداخت.
Enums جاوا
Enums در جاوا 5.0 معرفی شدند. Enums یک متغیر را محدود به یکی از چند مقدار از پیش تعیین شده میکنند. مقادیر در این لیست مشخص شده Enums نامیده میشوند.
با استفاده از Enums، تعداد خطاها در کد شما را میتوان کاهش داد.
به عنوان مثال، اگر یک برنامه برای یک فروشگاه آبمیوه تازه را در نظر بگیریم، ممکن است اندازه لیوان را محدود کنیم به اندازههای کوچک، متوسط و بزرگ. این مطمئن میشود که هیچ کسی نتواند سفارشی به جز اندازههای کوچک، متوسط یا بزرگ را بدهد.
مثال
class FreshJuice {
enum FreshJuiceSize{ SMALL, MEDIUM, LARGE }
FreshJuiceSize size;
}
public class FreshJuiceTest {
public static void main(String args[]) {
FreshJuice juice = new FreshJuice();
juice.size = FreshJuice.FreshJuiceSize.MEDIUM ;
System.out.println("Size: " + juice.size);
}
}
مثال بالا نتیجه زیر را تولید خواهد کرد:
خروجی
Size: MEDIUM
توجه − Enums میتوانند به صورت خودمانی یا در داخل یک کلاس تعریف شوند. متدها، متغیرها و سازندهها نیز میتوانند در داخل Enums تعریف شوند.
کلمات کلیدی جاوا
لیست زیر کلمات رزرو شده در جاوا را نشان میدهد. این کلمات رزرو شده نمیتوانند به عنوان ثابت یا متغیر یا هر نام شناسه دیگری استفاده شوند.
abstract | assert | boolean | break |
byte | case | catch | char |
class | const | continue | default |
do | double | else | enum |
extends | final | finally | float |
for | goto | if | implements |
import | instanceof | int | interface |
long | native | new | package |
private | protected | public | return |
short | static | strictfp | super |
switch | synchronized | this | throw |
throws | transient | try | void |
volatile | while |
Commentsدرجاوا
جاوا ازComments یک خطی و چند خطی پشتیبانی میکند که بسیار شبیه به C و C++ است. تمام کاراکترهای موجود در هر نظریه توسط کامپایلر جاوا نادیده گرفته میشوند.
مثال
public class MyFirstJavaProgram {
/* This is my first java program.
* This will print 'Hello World' as the output
* This is an example of multi-line comments.
*/
public static void main(String []args) {
// This is an example of single line comment
/* This is also an example of single line comment. */
System.out.println("Hello World");
}
}
خروجی
Hello World
استفاده از خطوط خالی
یک خط حاوی تنها فضای سفید، با احتمالاً یک توضیح، به عنوان یک خط خالی شناخته میشود و جاوا کاملاً آن را نادیده میگیرد.
ارثبری
در جاوا، کلاسها میتوانند از کلاسهای دیگر مشتق شوند. به طور کلی، اگر نیاز به ایجاد یک کلاس جدید داشته باشید و در حال حاضر یک کلاس وجود داشته باشد که برخی از کدهای مورد نیاز شما را دارد، پس امکان مشتق کردن کلاس جدید خود از کد موجود در حال حاضر وجود دارد.
این مفهوم به شما امکان میدهد فیلدها و متدهای کلاس موجود را بدون نیاز به نوشتن مجدد کد در یک کلاس جدید مجدداً استفاده کنید. در این سناریو، کلاس موجود به عنوان کلاس پدر شناخته میشود و کلاس مشتق شده به عنوان کلاس زیرمجموعه شناخته میشود.
رابطها
در زبان جاوا، رابط را میتوان به عنوان یک قرارداد بین اشیاء در مورد چگونگی ارتباط با یکدیگر تعریف کرد. رابطها نقش حیاتی در مفهوم ارثبری دارند.
یک رابط متدهایی را تعریف میکند که یک کلاس مشتق شده (زیرکلاس) باید استفاده کند. اما پیادهسازی متدها کاملاً به عهده زیرکلاس است.