PDA

View Full Version : سوال: برنامه نویسی شی گرا



mabbaszadegan
چهارشنبه 05 فروردین 1388, 03:28 صبح
سلام به همه مهندسان و استادان گرامی
من ++c رو تا سر برنامه نویسی شی گرا خیلی راحت یاد گرفتم ، اما از این به بعدش دیگه هیچی نمیفهمم ؛:گریه::گریه::گریه:
اگه کسی میتونه کمکم کنه تا بفهمم این شی گرا دیگه چیه؟:عصبانی++::گیج:
خیلی ممنون از مهندسین ، امیدوارم سال خوبی داشته باشید

javadyousefi
چهارشنبه 05 فروردین 1388, 16:52 عصر
چه كتابي ميخوني ؟

cups_of_java
چهارشنبه 05 فروردین 1388, 18:44 عصر
سلام به همه مهندسان و استادان گرامی
من ++c رو تا سر برنامه نویسی شی گرا خیلی راحت یاد گرفتم ، اما از این به بعدش دیگه هیچی نمیفهمم ؛:گریه::گریه::گریه:
اگه کسی میتونه کمکم کنه تا بفهمم این شی گرا دیگه چیه؟:عصبانی++::گیج:
خیلی ممنون از مهندسین ، امیدوارم سال خوبی داشته باشید


شی گرایی، یه نوع تفکر هستش! یه فلسفست! یه راه نوشتن برنامه هستش. تمام اصول پایه برنامه نویسی که یاد گرفتی سر جاشه. شی گرایی می آد بهشون اضافه می شه تا برنامه نویس بتونه برنامه های بزرگتر رو راحت تر بنویسه. تو برنامه های کوچک یا تکه برنامه ها، شی گرایی خودش رو نشون نمی ده. شی گرایی اصولی داره و یک اسلوب برنامه نویسیه. تو شی گرایی شما دیگه Record، Struct و تابع رو جدا جدا نمی بینی. همه چیز رو به صورت شی می بینی. هر شی جمع شده ی همون داده ها ( Recordها) و توابع هستش. شی گرایی داده و عملیات رو با هم در یک موجود جدید جمع کرده به نام شی! هر شی یک نوع داره! اون نوع می شه کلاس (طبقه)!
خلاصه تو شی گرایی دید به برنامه مثل دید توی دنیای واقعیه! یک انسان یک طبقه (کلاس) از موجودات هستش که هم داده (قد، سن، ...) داره هم عملیات (راه رفتن، خوابیدن، ...)


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

mabbaszadegan
پنج شنبه 06 فروردین 1388, 01:36 صبح
سلام دوباره به مهندسان عزیز ، خیلی ممنون از جواب قشنگتون ، ای کاش جعفرنژاد هم اینطوری توضیح میداد
ولی با این جوابتون ، یه سوال برام پیش اومد:

برنامه ای که با کلاسها و اشیا نوشته میشه راحت تره ، یا برنامه ساخت یافته؟
آیا یه برنامه ساخت یافته رو میشه با شی گرا نوشت؟(اگه میشه این دو تا برنامه چه فرقی باهم دارند؟)

در آخر هم اگه لطف کنید با مثال توضیح بدید ممنون میشم.

cups_of_java
پنج شنبه 06 فروردین 1388, 16:09 عصر
سلام دوباره به مهندسان عزیز ، خیلی ممنون از جواب قشنگتون ، ای کاش جعفرنژاد هم اینطوری توضیح میداد
ولی با این جوابتون ، یه سوال برام پیش اومد:

برنامه ای که با کلاسها و اشیا نوشته میشه راحت تره ، یا برنامه ساخت یافته؟
آیا یه برنامه ساخت یافته رو میشه با شی گرا نوشت؟(اگه میشه این دو تا برنامه چه فرقی باهم دارند؟)

در آخر هم اگه لطف کنید با مثال توضیح بدید ممنون میشم.


برای یادگیری مفهومی از کتاب های انگلیسی استفاده کنید نه فارسی. برای شی گرایی کتاب های Bruce Eckel خیلی مفید هستند.

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

برنامه نویسی شی گرا ساختار پیچیده تر و بزرگتری داره:
1. کلاس ها و اشیا و امکان تعریف انواع دسترسی برای اون ها (کپسول سازی و پنهان سازی)
2. وراثت و انواع و مفاهیم اون
3. پلی مورفیزم و رفتار های پیچیده

این مفاهیم تو ساخت یافتگی (به طور معمول) نبود و بعد ها شی گرایی آوردشون. برنامه شی گرا رو سخت تر می شه طراحی کرد و ساخت. کمی تشکیلات و تشریفات می خواد! اما این ها به برنامه نویس کمک می کنه تا برنامه های بزرگ تر رو بهتر درک کنه، بنویسه، و از همه مهمتر:
شی گرایی امکان ایجاد تغییرات (چه برای خطا یابی و رفع اون، چه برای افزودن امکانات و گسترش برنامون) تو برنامه های نوشته شده رو بالا می بره.

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