instance

پرسیده شده
فعالیت 1143 روز پیش
دیده شده 514 بار
1

instance ها خودشون هم میتونن یک classباشن زیرمجموعه class کلی؟مثلا Persian Cat میتونه یک کلاس باشه زیرمجموعه کلاس کلی که Cat هست؟

فایل پیوست

Mohsen shahi
Mohsen shahi

23 اسفند 99

1
حذف شده

سلام و احترام

 

instance یا object یا شی یا نمونه به معنای این هست که از یک کلاس مثلا Animal هر چند تا نمونه بسازیم 

مثلا یک نمونه به نام cat یک نمونه به نام dog یک نمونه به نام forg و غیره.

persianCat میتونه یک instance باشد از کلاس Cat.

یا اینکه 

PersianCat میتونه یک کلاس باشه که کلاس Cat رو ارث بری کرده باشه.(در جلو تر با مفهوم ارث بری اشنا میشید)

 

ویرایش :

ما یک کلاس داریم به نام Car که یک سری ویژگی های مشترک رو این کلاس داره مثلا تایر,سرعت,موتور 

این ویژگی ها در تمام ماشین ها یکسان هستن

اما میایم یه ماشین تولید میکنیم BMW که این BMW علاوه بر اون ویژگی ها یک ویژگی دیگه اضافه داره به نام دنده اتومات 

ما این ویژگی یعنی دنده اتومات رو نمیتونیم به Car نسبت بدیم چرا که سایر ماشین ها مثلا Pride این ویژگی رو ندارن

پس مجبور میشیم یک کلاس مجزا براش بسازیم .

یا در مورد سوال شما ما کلاس Cat رو داریم که که کلاس Cat یک سری ویژگی های مشترک بین تموم گربه ها داره مثلا رنگ,نژاد اما ممکنه PersianCat یک ویژگی داشته باشه که این نوع گربه رو از سایز گربه ها متمایز کنه پس برای PersianCat یک کلاس میسازیم که هم ویژگی های Cat رو داشته باشه و هم ویژگی های مختص PesianCat .

اما با این تفاوت ها برسیم به پاسخ اولین سوالتون ببینین PersianCat هم میتونه instance ی از Cat باشه persianCat که در این صورت نمیتونه ویژگی های خودشو بهش نسبت بدیم  ولی همونطور که در بالا گفتم PersianCat میتونه خودش یه کلاس مجزا باشه به نام PersianCat که علاوه بر ویژگی های خودش, ویژگی های Cat رو هم داره .

پس بله PersianCat خودش یک کلاس زیر مجموعه از Cat هست که ویژگی های بیشتری از Cat رو داراست.

نکته :

برای نام گذاری کلاس از روش UpperCase نام گذاری رو انجام میدهیم یعنی PersianCat 

اما برای نام گزاری instance از روش camelCase نام گذاری رو انجام میدهیم یعنی persianCat

این نکته رو گفتم چرا که در توضیحاتم این مورد رو رعایت کردم که با این دید بخونید.

در ادامه با ارث بری آشنا میشید که این مورد رو بهتر یاد خواهید گرفت

امیدوارم به خوبی براتون توضیح داده باشم.

موفق باشین

فایل پیوست

پوریا شفیعی

توسط

پوریا شفیعی

23 اسفند 99

حذف شده
درود بر شما.بله تا حدودی متوجه مفهوم instance شدم اما سوال چیز دیگه ای هست مرتبط با کلاس میشه.میگم ما یک کلاس مادر داریم که مثلا Cat هست اوکی؟ اینستنسی که از این کلاس گرفته شده مثلا Persian Cat خودش یک کلاس زیر مجموعه کلاس Cat هست؟ و اگه هست فرقشون چیه؟
Mohsen shahi

23 اسفند 99

حذف شده
ویرایش شد
پوریا شفیعی

23 اسفند 99

حذف شده
مرسی از توضیح درست و دقیقتون.سوال بعدی که پیش میاد اینه که کلاس instance به دلیل اینکه childclass هست واسه نامگذاریش از روش camelCase استفاده میشه یا دلیل دیگه ای داره؟
Mohsen shahi

23 اسفند 99

حذف شده
دقت کنین instance یک کلاس نیست بلکه یک نمونه از یک کلاس هست پس این جمله درست نیست : کلاس instance به دلیل اینکه childclass هست //// نه کلا این یک قرار داد در تمام زبان ها هست که کلاس ها رو UpperCase بنویسیم حال چه ChildClass باشد چه ParentClass /// اما instance های یک کلاس رو طبق استاندارد camelCase مینویسیم.
پوریا شفیعی

23 اسفند 99

حذف شده
احتمالا این جمله که نوشتم گمراهتون کرده : اما برای نام گزاری instance از روش camelCase نام گذاری رو انجام میدهیم یعنی persianCat => منظور من از persianCat در این جمله یک instance از کلاس Cat بود . به عبارتی اگر بخواهم این جمله رو خوانا تر بنویسم اینطور میشه : برای نام گزاری instance از روش camelCase نام گذاری رو انجام میدهیم یعنی pCat که یک instance از PersianCat هست .
پوریا شفیعی

23 اسفند 99

حذف شده
مرسی از توضیحاتتون ولی بازم جواب سوال اول رو نگرفتم.یک instance فقط یک نمونه از کلاس مادر هست یا اینکه یک کلاس نمونه از کلاس مادر هست؟
Mohsen shahi

24 اسفند 99

حذف شده
سلام , یک instance میتواند یک نمونه از هر کلاسی(چه ChildClass چه ParentClass) باشد . کلاس مادر = ParentClass و کلاس فرزند = ChildClass پس این جمله جمله درست تری هست "یک instance فقط یک نمونه از کلاس مادر هست" اما لزوما اون کلاس نباید ParentClass یا همان کلاس مادر باشه.
پوریا شفیعی

24 اسفند 99