PDA

View Full Version : آموزش: سوال : برنامه نويسي شي گرا



poplook
یک شنبه 14 اسفند 1390, 17:52 عصر
سلام
من مي خواستم بدونم برنامه نويسي شي گرا اصلا يعني چي ؟
من چند جاي در موردش خوندم ولي بازم به طور كامل متوجه نشدم .
اگه مي شه چند تا مثال هم بزنيد .(اگه برنامه هم باشه خوبه )

ممنون . متشكر

poplook
پنج شنبه 25 اسفند 1390, 09:04 صبح
يعني اينجا هيچ كس اطلاعات پايه اي نداره؟:عصبانی++:

lvlaziar
پنج شنبه 25 اسفند 1390, 10:27 صبح
به طور خلاصه:
یعنی اول ظاهر برنامتو میسازی بعد با توجه به این ظاهر عملیات ها رو انجام میدی! که واسه انجامشون این اشیا ( باتن هاو لیست ها .... ) احتیاج داری!:لبخند:
خوش باشید!:قلب:

mehdi zanjani
پنج شنبه 25 اسفند 1390, 10:43 صبح
به طور خلاصه:
یعنی اول ظاهر برنامتو میسازی بعد با توجه به این ظاهر عملیات ها رو انجام میدی! که واسه انجامشون این اشیا ( باتن هاو لیست ها .... ) احتیاج داری!:لبخند:
خوش باشید!:قلب:

بیشتر مطالعه کنید دوست عزیز!!!

مقاله زیر رو مطالعه کنید!! مختصر و مفید!

Pouyan2010
پنج شنبه 25 اسفند 1390, 13:18 عصر
سلام دوست عزیز
مباحث شی گرایی، یک مبحث نیست که کسی بخواد اینجا در یک جمله برای شما توضیحش بده.
باید مباحث را درک کنید، به طور خلاصه شی و موجودیت به اینصورت میشه تعریفش کرد که: یک شی هم دارای خصوصیات هست و هم رفتار مختص به خودش ، مثلا ماشین: خصوصیات اون رنگشه و .. و رفتاری مثلا حرکت کردنه، یا انسان را یک شی در نظر بگیرید! خصوصیاتش مثلا یکیش رنگ چشمشه، و رفتارش مثلا حرف زدنه، ببینید جهانی که ما در آن زندگی می کنیم جهان شی گراست، یعنی دلیل اینکه این جهان توانسته این همه سال دووم بیاره بخاطر شی گرا بودنه اونه. لحظه ای که طراحان کامپایلر خواستند تمام مشکلات و هرج و مرج های برنامه نویسی را حل کنند، برخوردند به مفهوم شی. برات مثال می زنم: فرض کنیم نشستیم تووی کلاس درسی! یهو میشنویم که یه صدایی داره میاد بعد میریم در کلاس را باز می کنیم و می بینیم که بله کسی داره با تلفن همراش صحبت می کنه! حالا جهان غیر شی گرا را در نظر بگیرید! نشستیم تو کلاس یه صدایی میاد! هرچی می گردیم عاملش را پیدا نمی کنم! می بینیم که یه نفر رفتار حرف زدنش را اینجا جا گذاشته و رفته! اصلا غیر قابل قبوله و در واقع جهان شی گرا جهانی که هر رفتاری وابسه به شی او داره. یا یه مثال دیگه فرض کنید شما یه خودکار به من بدید. من می بینم که رنگ نداره، میگید بیا این رنگش، می گم این که نمی نویسه! می گید ببخشید یادم رفته بود،اینم رفتار نوشتنش !!!!!!! اصلا در ذهن شما چنین چیزی قرار می گیره و درکش می کنید که جهان غیر شی گرا باشه؟ مطمئنا "نه". خوب تا اینجا گرفتید شی چیه، حالا براتون یه مثال دیگه می زنم، اگه یادتون باشه در محیط برنامه نوسی ++C ما یه main داشتیم که برنامه از اونجا آغاز می شد، و بعد اگه می خواستیم می رفتیم یه شی که همون Class بود را تعریف می کردیم و ازش تو main استفاده می کردیم، ولی در زبان #C میبینیم که حتی خود main هم شده زیر مجموعه و در واقع رفتار یک کلاس، این رویکرد دوگانه که اول مین باشه و بعد کلاس یا اول کلاس باشه و بعد مین به خاطر اینه که در ++C تمرکز بر اجرا بود نه ساختار ولی در سی شارپ تمرکز روی ساختاره به همین خاطر هم هست که برنامه نویس سی شارپ 3 روزه که داره کد می نویسه ولی هنوز هیچ اجرایی از برنامه نگرفته چون می دونه که ساختارش را باید اول بسازه! مثل این می مونه که شما بخواید یه خونه بسازید، بعد وقتی می خواید بسازیدش تا یه اتاق ساختید برید توش بخوابید حالا اگه خوب بود بعد دوباره برید حمام اونا بسازید اگه باز تست کردید و خوب بود به همین ترتیب! اما به این صورت نیست، شما قبول می کنید که عناصر چیده بشه رنگم بشه و ... بعد میرید توی اون خونهه. درسته؟ اوکی تا اینجا فهمیدیم شی چیه ساختار چیه رفتار یک شی چیه و همچنین خصوصیت شی، مثال سادش برای تعریف شی همون Class میشه اگه متدی در اون بنویسید میشه رفتارش و اگه مثلا Properte توی اون کلاس تعریف کنید میشه خصوصیت اون شی. اوکی؟ خوب یه دنیا حرف هست برای شی گرایی مثلا ارث بری از یک کلاس و عقیم کردن یک کلاس و... ، امیدوارم متوجه شده باشد شی چیه، خواستید بیاید روی ID شخصی من تا بیشتر راهنماییتون کنم، با تشکر از مهندس کیانیان که خیلی دوستش دارم و یکی از بزرگان برنامه نویسی اصفهانه، من اینا رو از ایشون یادگرفتم.
یه نمونه کلاس و رفتار هم برات میزارم ببینش


Class Car{
Color c;
Public void Harekat(){
}}
موفق باشید
FEEL GOOD, Thanks GOD

Pouyan2010
پنج شنبه 25 اسفند 1390, 13:24 عصر
به طور خلاصه:
یعنی اول ظاهر برنامتو میسازی بعد با توجه به این ظاهر عملیات ها رو انجام میدی! که واسه انجامشون این اشیا ( باتن هاو لیست ها .... ) احتیاج داری!:لبخند:
خوش باشید!:قلب:

این استدلال شما دوست عزیز اشتباست، Button یا TextBox مفهموم شی گرایی نیست، بله یک TextBox شی هست و در واقع یک کلاسه ولی اینکه زبانی این کامپوننت ها را داشته باشه بشه شی گرا این کلا اشتباست، این موارد کامپوننت هستند. حتی یک فرم هم یک کلاسه که از Form شرکت مایکروسافت ارث برده شده، و شده فرم که مثلا default رنگ پس زمینه اون خاکستریه و...

poplook
یک شنبه 28 اسفند 1390, 20:03 عصر
ممنون از توضيحاتتون .
اقاي Pouyan2010 درسته كه دنياي ما يك دنياي شي گرا هست و ما اين رو درك مي كنيم .
ام قبول كنيد كه وقتي وارد برنامه نويسي مي شيم( انم ما كه از اول زبان c رو ياد گرفتيم ) يه مقدار سخته .
حالا ببينيد اين توصيح ساده درست هست يا نه ؟ البته غلط يا ناقص هست لطف كنيد درستش كنيد .
فرض كه ما يه صندلي داريم به عنوان يه كلاس در برنامه . در برنامه نويسي ساخت يافته ما مي تونيم هر ميزان كه بخواهيم از اين صندلي استفاده كنيم ولي نمي تونيم چند تا ازش داشته باشم
ولي در برنامه نويسي شي گرا علاوه قابل استفاده بودن به هر ميزان ما مي توانيم به راحتي از اين صندلي چند تا داشته باشيم و هر جا و هر زمان كه مي خواهيم از ان استفاده كنيم .


این استدلال شما دوست عزیز اشتباست، Button یا TextBox مفهموم شی گرایی نیست، بله یک TextBox شی هست و در واقع یک کلاسه ولی اینکه زبانی این کامپوننت ها را داشته باشه بشه شی گرا این کلا اشتباست، این موارد کامپوننت هستند. حتی یک فرم هم یک کلاسه که از Form شرکت مایکروسافت ارث برده شده، و شده فرم که مثلا default رنگ پس زمینه اون خاکستریه و...

اره من اينو مي دونم . درسته كامپوننت ها شي هستند ولي دليل نميشه شي ها حتما كامپوننت باشن .

lvlaziar
یک شنبه 28 اسفند 1390, 20:45 عصر
اگه دقت کرده باشین!
ک نکردین!
اون بالاش نوشتم به طور خلاصه!
مفهوم شی گرایی تو یه خط:
شما اول باید شی معرفی کنید بعد برنامتونو بنویسید!
مفهوم شی:
هر ان چه ک میبینید و فابل اندازه گیری باشه بش شی میگن ( په تو فیزیک چه اینجا )
دیگه موضوع رو نیاز نیست اینقدر پیچیده کنید ک کاربرای ک سوال دار اینقدر بحث به این سادگی پیچیده شه ک نا امید شن!

543310
یک شنبه 28 اسفند 1390, 20:52 عصر
به طور خلاصه:
یعنی اول ظاهر برنامتو میسازی بعد با توجه به این ظاهر عملیات ها رو انجام میدی! که واسه انجامشون این اشیا ( باتن هاو لیست ها .... ) احتیاج داری!:لبخند:
خوش باشید!:قلب:

به نظر من هم این استدلال شما اشتباه هستش

واقعا هم نمیشه تو یه سطر در مورد برنامه نویسی شی گرا توضیح داد. به نظر من بهتره که چند تا مثال رو برسی کنید