آموزش جاوا - قسمت سوم - طرز نگارش(syntax) پایه جاوا

خب یه برنامه جاوا رو با هم نوشتیم و اجرا کردیم هم در محیط کامند و هم در محیط IntelliJ IDEA، حالا بریم سراغ رسم الخط، طرز نگارش یا همون syntax جاوا (Java Syntax).

جواد : Syntax Java مگه همون دستوراتش نیست؟

پاسخ : خیر!

سینتکس جاوا شامل نحوه نامگذاری فایل ها، کلاس ها، طرز نوشتن تابع شروع کننده برنامه، نحوه تعریف شناسه ها(Identifiers)، اصلاح کننده ها(Modifiers)، متغیر ها، آرایه ها، Enums ها می‌باشد.

خب حالا ببینیم هر کدوم چی هستن

اول با چنتا اصطلاح توی جاوا آشنا بشیم. جاوا رو میشه مجموعه ای از اشیاء تعریف کرد که هر کدوم با صدا زدن متد های همدیگه با هم ارتباط برقرار می‌کنند.

جواد : شئ چیه؟

جواب : اینو توی مبحث شی گرایی مفصل توضیح میدم، فعلا چنتا تعریف رو خلاصه میگم و مابقی بماند تا بعد.

شئ: اشیا مشخصات یا رفتار هایی دارند، مثلا یک تلویزیون مشخصاتی مثل سایز صفحه، رنگ، نوع نمایشگر و ... داره و رفتار هایی مثل روشن شدن، تغییر محتوای نمایش(تغییر کانال)، تغییر صدا و...

کلاس: یک نقشه، الگو یا طرح هست که مشخصات یا رفتار هایی رو که یک شئ از اون کلاس داره یا از خودش نشون میده رو توصیف میکنه.

متد: همون رفتار هایی هستن که هر شئ توانایی انجامش رو داره. هر کلاس میتونه تعداد زیادی متد داشته باشه و روند ها و تغییرات در داده ها و مشخصات کلاس در داخل متد ها اتفاق میفته.

متغیر های نمونه(Instance Variables): هر شئ مجموعه ای از متغیر های نمونه یکتا دارد که مشخصاتش با مقدار دهی به آنها مشخص می شود. مثل سایز صفحه، رنگ، نوع نمایشگر که در شئ تلویزیون وقتی با عبارتی مقدار دهی می‌شود یکتا و مخصوص همان شی هست و اگر شئ دیگری بسازیم میتواینم مقدار دیگری به آن بدهیم و این متغیر های نمونه با مقادیرشان اشیا متمایزی از یک کلاس ره به نمایش می گذارند.

جواد: تعاریف یکم سنگین و نا مفهوم نیست؟

جواب: خیلی بهش دقت نکنین اگر نفهمیدین توی پست های بعدی و در عمل، مفاهیمش رو درک می‌کنید.

نکاتی که باید در برنامه نویسی جاوا همیشه در نظر داشته باشیم

حساسیت به بزرگی و کوکی حروف: جاوا به کوچک و بزرگی حروف حساس است و Hi و hi را متمایز در نظر می‌گیرد.

نام کلاس: نام کلاس باید با حروف بزرگ شروع شود و اگر از چند کلمه در نام کلاس استفاده شود بهتر است اول هر کلمه با حرف بزرگ نوشته شود. برای مثال : MyFirstClassName

نام متدها(توابع): نام توابع بهتر است با حروف کوچک شروع شود و اگر از چند کلمه تشکیل شده، از کلمه دوم به بعد باید حروف اول هر کلمه بزرگ باشد. برای مثال : myFirstMethodName

نام فایل: نام هر فایل باید با نام کلاس public داخل آن همسان باشد. برای مثال برای کلاس MyFirstClassName نام فایل باید MyFirstClassName.java باشد.

نکته: داشتن کلاس public در فایل اجباری نیست و اگر کلاس public در فایل نباشد امکان نامگذاری فایل به هر نام دلخواه وجود دارد.

نقطه شروع برنامه جاوا: هر برنامه جاوا از تابع main آغاز می شود و وجود آن اجباری بوده و به صورت زیر تعریف می شود.

 public static void main(String[] args)

شناسه ها یا Identifiers در جاوا

هر جزئی از جاوا با یک شناسه نامگذاری می‌شود. نام کلاس ها توابع، متغیر ها را شناسه می‌گویند.

  • تمامی شناسه ها با حروف کوچک و بزرگ انگلیسی (A-Z و a-z)، علامت دلار ($)، یا خط زیر یا همون Underline ( _ ) باید شروع شود.
  • بعد از اولین کاراکتر، شناسه با هر ترکیب دیگری قابل تعریف و استفاده است.
  • کلمات کلیدی رزرو شده در جاوا به عنوان شناسه قابل استفاده نیستند.
  • شناسه به بزرگ و کوچک بودن حروف حساس است و آنها را متمایز می داند.
  • مثال شناسه های معتبر:

_identifier , $identifier , Identifier , _123 , $_123

مثال شناسه های نا معتبر

123identifier , -identifier

اصلاح کننده ها یا Modifiers در جاوا

دو دسته اصلاح کننده یا Modifier در جاوا داریم که الان فقط یه توضیح کوچیک در موردش میدیم و بعدا مفصلا در موردش صحبت می کنیم:

اصلاح کننده های دسترسی یا Access Modifier: که دسترسی بین کلاس ها به شناسه ها و متد های همدیگر رو کنترل می‌کنند شامل : default, public, protected , private

اصلاح کننده های غیر دسترسی یا Non-Access Modifiers: که معمولا وضعیت شناسه را مشخص می‌کند مانند: final, abstract, stricktfp

متغیر ها در جاوا Java Variables

سه دسته متغیر در جاوا دارایم

- متغیر های محلی یا Local Variables

- متغیر های کلاس یا متغیر های ایستا (Class Variables or Static Variables)

- متغیر های نمونه یا متغیر های غیر ایستا (Instance Variables or Non-static Variables)

شمارش‌گر یا Enums در جاوا(Java Enums)

شمارش‌گر ترجمه صحیحی برای Enums نیست اما ترجمه بهتری هم پیدا نکردم براش اگر شما پیدا کردین کامنت بذارین تا استفاده کنیم

خب Enums متغیر هایی هستند که فقط به وسیله یک سری مقادیر ثابت مقدار دهی می شوند و از جاوا ۵ به جاوا افزوده شدند که در مطالب آینده در موردش صحبت میکنیم و نحوه استفاده از اون رو بیان می کنیم.

کلمات کلیدی در جاوا(Java Keywords)

کلمات کلیدی زیر هر کدام کارکرد خاصی دارند و در جاوا رزرو شده هستند و هیچ شناسه ای با این نام‌ها قابل تعریف نیست.

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 in Java)

کامنت های تک خطی یا single-line comment در جاوا با قراردادن دو اسلش پشت سر هم // آغاز شده و آن خط توسط کامپایلر پردازش نمی‌شود و برای نوشتن توضیحات و خوانایی کد است.

کامت های چند خطی یا multi-line comment در جاوا با قرار دادن /* در اول متن و */ در انتهای متن در فایل کد نوشته می‌شوند.

مثال:

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(&quotHello World&quot);
   }
}
نکته: در جاوا خطوط خالی و یا فقط شامل فاصله مانند کامنت‌ها توسط کامپایلر پردازش نمی‌شوند.

ارث بری

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

دو اصطلاح superclass و subclass به ترتیب برای کلاسی که از آن ارث بری شده(کلاس پدر) و کلاسی که توسط ارث بری ساخته شده(کلاس فرزند) به کار برده می‌شود.

رابط ها

رابط ها یا Interface ها در جاوا برای مشخص کردن نحوه ارتباط بین کلاس ها پیاده سازی و به کار برده می‌شوند. رابط ها در مباحث ارث بری نقش مهمی دارند که در مطالب بعدی به اون ها میپردازم.

رابط ها فقط نام متد ها و نوع ورودی آن‌ها را مشخص می‌کنند و تعریف تابع و کارکرد آن باید در داخل کلاسی که آن رابط(interface) را پیاده سازی(implement) می‌کند، انجام شود.