menusearch
javapro.ir
جستجو
۱۳۹۵/۸/۱ شنبه
(10)
(0)
♨️ جلسه نهم - اشیا و کلاس ها
♨️ جلسه نهم - اشیا و کلاس ها

جلسه نهم - اشیا و کلاس ها


جاوایک زبان برنامه نویسی شی گرا (Object-Oriented) می باشد.
ویژگی که زبان جاوا را قدرتمند و متمایز می کند همین ویژگی شی گرایی آن می باشد.
زبان شی گرایی جاوا مفاهیم زیر را دنبال میکند:

در این فصل نگاهی به مفاهیم کلاس ها و شی ها می اندازیم.


شی (object)
اشیا مثل شی های دنیای واقعی ما حالت ها و رفتار هایی دارند!!!!


منظور از حالت ها و رفتار ها چیه؟!!!!!!! با یک مثال به این دو مفهوم پی می بریم!!!!

!
مثال: در دنیای واقعی هر چیزی یک شی در نظر گرفته می شود!!!!!!! مثل اتومبیل،موتورسیکلت،دوچرخه،خانه،اسلحه،هواپیما،جت،انواع حیوانات نظیر سگ،گربه،شیر،ماهی،مورچه و انسان ها و... شی حساب می شوند!!! درسته؟!!!!!!


خب حالا میخوایم به یکی از این شی ها مثلا سگ بپردازیم!!!


یک سگ حالت ها و رفتار های زیر را دارد!!!!!


حالت ها : هر سگ یک نام،رنگ،نژاد،سن،وزن،قد دارد.
رفتار ها: هر سگ واق واق میکند،غذا می خورد،آب می نوشید،حرکت می کند،می خوابد.


پس هر شی حالت ها و رفتار های مختص به خود را دارد.

  • حالت ها: به تمام ویژگی های یک شی که قابل مقدار دهی باشد گفته می شود. مثلا ما می توانیم به سن سگ مقدار بدهیم یا به نژاد سگ مقدار بدهیم و بگیم از کدام نژاد می باشد.

 

  • رفتار ها: به تمام اعمالی که یک شی می تواند انجام دهد رفتار می گوییم.مثلا سگ عمل حرکت کردن و راه رفتن را دارد،عمل غذا خوردن،عمل واق واق کردن و... را دارد.

 

خب تا اینجا با حالت ها و رفتار های یک شی آشنا شدیم!!!


 شی در برنامه نویسی چطور ساخته می شود؟!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


شی از کجا میاد؟!!!!!!!!!!!!!!!!!!!!


یادتون میاد ما در بخش متغیر ها می گفتیم فلان متغیر از چه نوعی هست؟!!!


مثلا متغیر a از نوع عدد صحیح می باشد. یا متغیر b از نوع عدد اعشاری می باشد به مثال زیر توجه کنید:


مثال :

 

int a;
char b;
float c;
double d;

 

•    متغیر a از نوع int (عدد صحیح) می باشد.

 

 

•    متغیر b از نوع char (کارکتر) می باشد.


•    متغیر c از نوع float (اعشاری)  می باشد.


•    متغیر d از نوع  double (اعشاری) می باشد.


    توجه کرده باشید یک متغیر هنگام تعریف ابتدا نوعش رو مشخص کردیم!!!! یعنی هر متغیر یکنوعی دارد!!!!


    خب حالا اینا چه ربطی به شی داره؟!!!!!!!!!!! صبر داشته باشید!!!!!!!! :-)


    شی هم یک نوع هست!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


   شی یک نوع از یک کلاس است!!!!!!!!!!!!


یعنی چی؟!!!!! یعنی شما هنگام ساختن یا تعریف یک شی مثل سایر متغیر ها که نوعش رو مشخص و برای مثال int,char,double  و....قرار می دادید شی  را از نوع یک کلاس تعریف میکنید یعنی می توانید نوعش رو نام یک کلاس قرار دهید!!!!


مثال تعریف یک شی:

className         objectName

 

  خب میدونم هنوز مفاهیم واضع نشده!!!! نگران نباشید ادامه آموزش رو دنبال کنید یواش یواش مفاهیم روشن می شود!

 

 

کلاس (Class)
در جلسات اولیه آموزش تا حدودی در مورد کلاس و روش ساختن و ساختارش آشنا شدیم.
این که یک کلاس حاوی تمام دستورات برنامه ما می باشد.
حالا با نگاهی موشکافانه تر کلاس را بررسی میکنیم:
یک کلاس قالبی است که تمام حالت ها و رفتار های یک شی را می تواند داشته باشد.!!!!
صبر داشته باشید!!!!! :-)


اشیا در جاوا (Objects in Java)
اجازه بدهید نگاهی عمیق به اشیا بیاندازیم.


در دنیای واقعی پیرامون ما تعداد زیادی اشیا یافت می شود.ماشین ها ، سگ ها ، انسان ها و...


همه این اشیا حالت و رفتار خاص خود را دارند.


اگر ما به یک سگ نگاهی بیاندازیم حالت هایش : رنگ ، نژاد ، نام و... رفتارهایش : راه رفتن ، غذا خوردن ، واق واق کردن و...می باشد.


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


اشیا نرم افزار نیز مانند اشیا دنیای واقعی حالت ها و رفتار هایی دارند.


حالت های اشیا یک نرم افزار درون متغیر ها (fields) ذخیره می شود و رفتار های آن با متدها (methods) نمایش داده می شود.


کلاس ها در جاوا (Classes in Java):
 تا حدودی با کلاس ها طریقه ایجاد کلاس و کد زنی در متد main کلاس و اجرای برنامه  در جلسات قبل آشنا شدیم.


حالا میخوایم جزیی تر به کلاس ها بپردازیم:
•    یک کلاس طرح یا نقشه منحصر به فرد اشیایی است که قرار بسازیم.


•    اگر خواستیم یک شی از دنیای واقعی رو بسازیم ابتدا کلاسش رو می سازیم که این کلاس حاوی حالت ها و رفتار های آن شی در دنیای واقعی می باشد.


•    همان طور که گفتیم حالت ها همان ویژگی ها و متغیر ها در کلاس می باشد و رفتار ها متد های درون کلاس.


بطور مثال اگر خواستیم یک سگ بسازیم!!!! بصورت زیر عمل میکنیم:


1.    ایجاد یک کلاس به نام سگ


2.    پیاده سازی ویژگی ها و متغیر ها (حالت های) سگ


3.    پیاده سازی رفتار ها(متد های) یک سگ


    💠یک نمونه از یک کلاس که در آن حالت ها(متغیرها) و رفتار ها(متدها) پیاده سازی شده در مثال زیر آورده شده است:

 

public class Dog{
       String breed;
       int age;
       String color;

       void barking(){
       }
       
       void hungry(){
       }
       
       void sleeping(){
       }
    }

 

•    کلاس یک سگ را مشاهده میکنید که در بدنه کلاس ویژگی ها(حالت ها) و متد ها (رفتار های ) آن پیاده سازی شده است.


•    حالت ها(ویژگی هایش) نوع نژاد ، سن ، رنگ و رفتارهایش (متدها) واق واق کردن ،گرسنگی ،خوابیدن می باشد.


•    String ها یا همون رشته ها(متن) رو در جلسات قبل یکم اشنایی هنگام چاپ بهش اشنایی داریم این رو بدونید که String (رشته) خود نوعی برای تعریف متغیر هست که یک جلسه مخصوص بهش میپردازیم.


•    چون رنگ ها در قالب رشته می گنجند مثل blue یک متن یا کلمه هست باید از نوع String یا رشته تعریف شوند.


•    سن هم که همه می دونیم یک عدد هست اینم عدد صحیح کسی نمی تونه سنش اعشاری باشه!!! به همین دلیل از نوع int تعریفش کردیم.


•    اگر توجه کرده باشید این بار متغیر ها رو در بدنه کلاس و بلافاصله بعد از این که بلوک } کلاس باز شده تعریف کردیم ، پس میشود متغیر ها رو علاوه بر درون متد main مستقیم در بدنه کلاس هم تعریف کنیم که جلوتر بهش می پردازیم که چرا و به چه دلیل این کار را انجام دادیم.


•    این سه متد  هم سری کار برامون انجام میدن فعلا در حد این که نوعش که void هست و اسمش  و محدودش مشخص کردیم ، جلوتر بهش می پردازیم.


•    در پایان همه این دستورات در بدنه کلاس ما قرار دارند.

 

💡 یک کلاس شامل انواع متغیر های زیر است:


متغیر محلی(Local variables):


متغیر هایی که داخل متد ها (methods)،سازنده ها (constructors) یا بلوک ها تعریف می شوند متغیر محلی(local variables) نامیده می شوند.


💡 نکته: جلوتر به مفهوم سازنده ها (constructors) می پردازیم.


🔵 این متغیر ها در داخل متد ها تعریف و سپس مقدار دهی اولیه می شوند.


🔵 عمر و کارایی این متغیر ها تنها در محدوده بلوک {} متد ها می باشد و خارج از متد کارایی ندارند ، به همین دلیل بهشون محلی می گویند یعنی تنها بومی اون متد ها هستند و زبون هیچ کی جز افراد درون متد حالیشون نیست 😊😊😊


متغیر های نمونه (Instance variables):
به متغیر هایی که در داخل یک کلاس و بیرون متدها تعریف می شوند متغیرهای نمونه (Instance variables) گفته می شود.


🔵 این متغیر ها در بدنه کلاس می توانند مقدار دهی اولیه شوند.


🔵 متغیر های نمونه در داخل هر متد ، سازنده (constructors) ، بلوک ها و سایر کلاس ها قابل دسترسی می باشد.

متغیر های کلاس (Class variables)


بدون مقدمه چینی و به زبان ساده بهتون بگم که همون متغیر های نمونه هستند تنها با این تفاوت که قبل تعریف نوعشون از کلمه کلیدی static استفاده میکنیم.


مثال:

 

static int a=50;


•    در جلسات آینده به تمامی کلمات کلیدی جاوا از جمله staticمی پردازیم.


•    دوستان جاوا خیلی مفاهیم زیاد داره هر جلسه جز به جز تمرین کنید مثال حل کنید و کمی صبر هم چاشنی کار قرار دهید راحت می تونید یاد بگیرید مفاهیم رو چون هیچ برنامه نویسی یک روزه برنامه نویس نشده!!!!


💡    هر کلاس می تواند به هر تعداد ، انواعی از متد ها داخلش پیاده سازی شود.

 

...ادامه این جلسه آموزشی را می توانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.



این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)

آموزش آسان و ساده زبان برنامه نویسی جاوا

لینک دانلود

 

 


نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا عضو کانال تلگرامما شوید.

 

instagram
نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

5 نظر
iman
شنبه یازدهم فروردین ۹۷
پاسخ
(1)
()
iman
جاي تشکر فراوان داره از شما وست عزيز.
میلاد
سه شنبه یکم اسفند ۹۶
پاسخ
(1)
()
میلاد
چقددددددر روون بود.خدا خيرتون بده تو هر سايتي رفتيم کلمات گنده گنده فقط استفاده ميکردن
ناشناس2
چهارشنبه نوزدهم مهر ۹۶
پاسخ
(1)
()
ناشناس2
خوب بود. سپاس
ابوالفضل شمس آبادی
سه شنبه چهاردهم شهریور ۹۶
پاسخ
(1)
()
ابوالفضل شمس آبادی
سپاس فراوان از زحماتتون...خیلی ساده و روان و مفید
پاسخ مدیر سایت
سلام.از نظر لطف شما سپاسگزارم
پاسخ مدیر سایت
سیما عطار
شنبه نهم اردیبهشت ۹۶
پاسخ
(1)
()
سیما عطار
این فصل رو شاهکار توضیح دادید . تبریک میگم به این ادبیات واضح و گیرا. ممنون از شما
پاسخ مدیر سایت
سلام.از نظر لطف و انرژی دادنتون ممنون و سپاسگزارم
پاسخ مدیر سایت
طراحی سایتطراحی سایتسایت سازسایت سازفروشگاه سازفروشگاه ساز