کلاس در جاوا چیست و چه کاربردی دارند؟
تعریف کلاس ها در برنامه نویسی جاوا
اجزای سازنده هر کلاس عبارت اند از صفات و رفتار ها
صفات به صورت داده ها (data) و رفتار ها به صورت متد (method) پیاده سازی می کنیم.
بنابراین متد ها عملیاتی هستند که بر روی داده ها انجام می گیرند.
زمانی که در جاوا برنامه نویسی می کنید، در واقع دسته ایی از اشیا را تعریف می کنید.
برای مثال کلاس دانشجو دارای متغییر ها برای نگهداری داده های مربوط به آن و متد هایی برای دستکاری داده ها می باشد.
تعریف کلاس
بعد از دانستن این موضوع که برنامه جاوا از کلاس ها تشکیل شده است حالا باید نحوه تعریف کلاس را بدانیم.
- اعلان (یا تعریف) کلاس
- آکولاد باز (})
- اعضای کلاس
- آکولاد بسته ({)
دستور اعلان یک کلاس در جاوا
modifier class ClassName
modifier همان کنترل دستیابی است. مشخص می کند کلاس در چه جاهایی قابل استفاده است. برای کلاس ها دو مقدار public و private را می توان استفاده کرد.
اگر نوع دستیابی public باشد آن کلاس توسط کلاس های موجود دیگر، در برنامه قابل دستیابی است.
اگر نوع دستیابی private باشد سایر کلاس ها به آن دستیابی ندارند.
کلمه کلیدی class (با حرف کوچک نوشته می شود) که یک کلمه رزرو شده در جاوا می باشد و از آن برای تعریف کلاس استفاده می شود.
ClassName نام کلاس می باشد که از طریق نام آن ها می توانید به آن ها دستیابی داشته باشیم. نام گذاری کلاس ها از قانون نامگذاری شناسه ها در جاوا تبعیت می کند.
یک نمونه از اعلان کلاس در جاوا
public class MyFirstClass {
// class variables and methods
}
در کد بالا کلاسی با کنترل دستیابی public و نام MyFirstClass ایجاد کردیم.
توجه : در نامگذاری کلاس ها همیشه حرف اول کلمات را با بزرگ بنویسید. اگر نام کلاس شما از دو یا چند کلمه به هم چسبیده هستند، حروف اول آن ها با حرف بزرگ نوشته شود، مانند MyFirstClass.
اعضای کلاس
- ثوابت و متغییر ها
- متد ها
- سازنده ها یا constructor
- کلاس های دیگری که درون فایل و یا درون کلاس می توانند قرار گیرند
داده های کلاس را اصطلاحا فیلد (field) می گویند.
اعضای کلاس دارای سه نوع دستیابی زیر هستند
- public
- private
- protected
- static
همانطور که گفتیم کنترل دستیابی public باعث می شود کلاس یا فیلد یا متدی که آن را تعریف می کنیم برای سایر کلاس ها در خارج از کلاس جاری قابل دستیابی باشد.
با نسبت دادن کنترل دستیابی به یک فیلد، متد یا کلاس آن را در خارج از کلاس غیر قابل دستیابی خواهیم کرد.
نوع دستیابی protected و static را بعدا مورد بحث قرار خواهیم داد چون نیازمند مباحثی هستند که باید ابتدا توضیح داده شوند.
در حال حاضر تعریف متد ها و متغییر ها به صورت غیر static می باشد. زمانی که در تعریف آن ها از کلمه کلیدی static استفاده نشود یعنی غیر استاتیک هستند.
حالا با استفاده از کدنویسی جاوا یک کلاس جاوا را طراحی می کنیم
public class MyClass {
private String name;
private int age;
private String field;
public int grade;
public void method1() {
. . .
}
private void method2() {
. . .
}
}
همانطور که در کد بالا مشاهده می کنید کلاسی با نام MyClass ایجاد کردیم.
اعضای کلاس چهار متغییر و دو متد می باشد.
سه متغییر با نوع دستیابی private می باشند و فقط در همین کلاس قابل دستیابی هستند.
نوع متغییر ها از نوع رشته (String) و عدد صحیح (int) هستند.
دو متد private و public از نوع void تعریف کرده ایم. یعنی متد ها چیزی را بر نمی گردانند. بدنه متد ها می تواند دستورات مورد نظر شما برای دستکاری متغییر های کلاس باشد.
توضیحات تکمیلی
در واقع شما بنا به نیاز خودتان مشخص خواهید کرد که متد یا متغییر یا کلاس شما چه نوع دستیابی داشته باشد.
هر فایل جاوا حداقل باید دارای یک کلاس public همنام با نام فایل جاوای شما داشته باشد.
برای مثال فایلی به نام Test.java ایجاد می کنید. این فایل حتما باید دارای یک کلاس public با نام Test باشد. وگرنه فایل شما توسط کلاس های دیگر غیر قابل دسترس می باشد و عملا باید یک فایل اجرایی باشد، یعنی برنامه ایی که دارای یک فایل است که این کار امکان پذیر نیست.
حالا، چرا یک متغییر را با نوع private تعریف می کنیم؟
جواب این سوال می تواند پاسخ های متفاوتی داشته باشد. مثلا نمی خواهید کلاس های دیگر در محتوای آن تغییر ایجاد کنند.
شما می خواهید کلاس های دیگر فقط بتوانند مقدار متغییر کلاس شما را درخواست بدهند. بنابراین نوع دستیابی متغییر را private تعیین می کنید.
حالا، شاید بپرسید زمانی که نوع دستیابی متغییر private می باشد چطور کلاس های دیگر به مقدار آن دستیابی داشته باشند؟
اینجاست که شما از متد ها استفاده می کنید. کلاس شما یک متد public دارد که مقدار متغییر مورد نظر شما را برمی گرداند.
به کد زیر توجه کنید
public class Test {
private int myVariable = 12;
public int getMyVariable() {
return myVariable;
}
}
خب هر کلاس دیگری مقدار متغییر myVariable را بخواهد باید متد getMyVariable را فراخوانی کند.
بنابراین شما به عنوان برنامه نویسی این قواعد رو مشخص می کنید.
شما برای استفاده از اعضای یک کلاس باید از آن یک نمونه ایجاد کنید. در بخش بعدی آموزش شما خواهید آموخت که چگونه از یک کلاس نمونه سازی کنید (ایجاد متغییر های مرجع) و به اعضای موجود در آن کلاس دسترسی پیدا کنید...
با it3du همراه باشید.
می توانید انتشار قسمت ها جدید آموزش برنامه نویسی و به روز رسانی های جدید سایت را از کانال تلگرام ما دنبال کنید و یا از قسمت انتهایی سایت ، آدرس it3du را در سایر شبکه های اجتماعی پیدا کنید