View Full Version : سوال: فرق بین کلاس و object
maryam_icon
یک شنبه 25 مهر 1389, 19:17 عصر
سلام
اساتید لطفا راهنمایی کنید
فرق بین کلاس و object
متد در جاوا چیست
با تشکر
jReihane
یک شنبه 25 مهر 1389, 21:40 عصر
وقتي كه يك سيستم رو تحليل مي كنين خصوصيت ها و رفتارهايي پيدا مي كنين كه به هم مرتبط هستند.
و همه به يك موجوديت خاص وابسته هستند. مثلا موجودات زنده رو درنظر بگيريد:
همه موجودات زنده غذا مي خورند، همه موجودات زنده به اندازه معيني غذا مي خورند ...
بنابراين شما يك مفهوم دارين كه خصوصيت و رفتار داره. اين مفهوم رو توي مباحث OO بهش مي گن object
غذا خوردن يك "رفتار" براي موجودات زنده است و "ميزاني كه موجود زنده ظرفيت خوردن دارد" يك خصوصيت براي موجود زنده مي شه.
حالا همه اين خاصيت ها و رفتارها رو تبديل مي كنين به چند خط كد! همه اين چند خط كد رو توي يك فايل مي نويسين و البته با رعايت syntax زباني كه استفاده مي كنين و مي شه يك كلاس
مثلا توي جاوا اينطوري يك كلاس تعريف مي كنين:
public class Alive{
// your methods and properties will be defined in here
}
به اين ترتيب شما يك "كلاس" دارين. تا اينجاي كار در هنگام اجراي برنامه اصلي، كلاس شما بود و نبودش هيچ فرقي نداره، چون هيچ حافظه اي بهش اختصاص داده نشده. -- فقط چند خط كده --
حالا چند تا كلاس مي سازين و توي يكي از اين كلاس ها، از كلاس Alive يك "نمونه" مي سازين. مثلا:
Alive a = new Alive()
به اين ترتيب در زمان اجرا، به اندازه مشخصي به اين نمونه از كلاس، حافظه اختصاص داده مي شه. به اين "نمونه" هم يك object گفته مي شه.
پس اگر درباره object-oriented صحبت مي كنين، object يك مفهوم و اگر درباره جاوا صحبت مي كنين object يك نمونه از كلاس هست.
اميدوارم منظور رو رسونده باشم:لبخندساده:
jReihane
یک شنبه 25 مهر 1389, 21:50 عصر
و اما درباره متد.
همونطور كه گفتم، هر موجوديت "رفتار" هاي خاصي داره. هركدوم از اين رفتارها رو (كه البته هركدوم رو به كد تبديل كردين) توي يك قسمت (يك بلاك كد) مي ذارين. درست عين function.
درواقع خيلي از جاها كه نگاه مي كنين مي گن متد همون function هست. اما فرقشون توي اينه كه function ها مي تونن مستقل باشن. مثلا توي c++ يا actionscript مي تونين function هاي global تعريف كنين كه به هيچ كلاسي مستقيماً وابسته نيستن. اما متد اينطوري نيست. شما نمي تونين يه متد رو بدون اينكه توي يه كلاس وجود داشته باشه بنويسين . حتي فكرشم نكنين! هر متد الزاماً متعلق به يك كلاسه و هيچ متدي متعلق به هيچ يا چند كلاس نيست.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.