رفتن به مطلب

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


پست های پیشنهاد شده

سلام استاید و دوستان من یک مشکل دارم کاربرد شی گرایی رو درک نمیکنم چرا شی گرایی استفاده میکنیم ؟ مثال هایی دیدم که شی گرایی استفاده کردند در حالی که با تابع هم میشد در آوردش. ممنون میشم بفهمونین کاربردش رو ب من :D

مثال ویکی :

به این معنا که داده‌ها و توابعی که قرار است بر روی این داده‌ها عمل کنند، تا حد امکان در قالبی به نام شی در کنار یکدیگر قرار گرفته، جمع‌بندی شده و یک واحد (شی) را تشکیل داده و نسبت به محیط بیرونِ خود، کپسوله می‌شوند و از این طریق، توابع بیگانهٔ خارج از آن شی، دیگر امکان ایجاد تغییر در داده‌های درون آن شی را ندارند. به طور مثال حساب بانکی شما که شامل مشخصات فردی شما و میزان سپردهٔ شما در بانک است، تشکیل یک شی را می‌دهند و به دلیل دارا بودن ویژگی کپسوله، امکان دستکاری در میزان سپرده یا مشخصات شما، توسط دیگران وجود ندارد

ما هم ، یک متغیر برای تابع میفرستیم که تابع باهاش کار کنه هم برای کلاس میفرستیم کار میکنه روش اما این که میگه کلاس کپسوله میکنه نمیفهم مگه تابع کپسوله نیست ؟

مثلا من همین چند وقت پیش یک کلاس دانلود کردم که لینک همه عکس های موجود صفحه رو داخل یک آرایه به من میداد که با کلاس نوشته بودن در حالی ک داشتم فکر میکردم با یک تابع ساده هم میشه نوشت... بعد از تحقیق دیدم خیلیا تو درک شی گرایی مشکل دارن مثل من :D

ویرایش شده توسط areff
  • امتیاز 1
لینک به ارسال

سلام

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

مثل فرمون می نه. همه فرمون ها کارشون هدایت وسیله نقلیه ست، ولی فرمون کشتی یه شکله، فرمون هواپیما یه شکل دیگه و مال ماشین هم به همین صورت..

امیدوارم منظورم رو به خوبی رسونده باشم.

  • امتیاز 3
لینک به ارسال

من هم شی گرایی رو متوجه نمیشم :D

میشه یه مثال ساده از شی گرایی بزنید تا ما هم بفهمیم ( منظورم با php هست )

یعنی یه مثال بزنید که حتما باید از شی گرایی استفاده بشه و بدون شی گرایی نشه اون کار رو انجام داد

ویرایش شده توسط Mohammad Javad
  • امتیاز 1
لینک به ارسال

تابعی هم که به شی خاص دلالت داره جزو شی گراییه برای درک شی گرایی لازمه با زبانهای سطح متوسط و پایین کار کرده باشید تا تفاوتش را درک کنید

  • امتیاز 3
لینک به ارسال

سلام

من الان مقدماتی پی اچ پی رو بلدم و کد ها رو میفهمم

اما شی گرایی رو باد نمیگیرم

میشه یه مثال ساده از شی گرایی بزنید تا ما هم بفهمیم ( منظورم با php هست )

یعنی یه مثال بزنید که حتما باید از شی گرایی استفاده بشه و بدون شی گرایی نشه اون کار رو انجام داد

لینک به ارسال

قرار نیست کاری باشه که بدون شی گرایی نشه انجامش داد

کل قوانین برنامه نویسی مثل فرمولهای ریاضی می مونند جواب مسائل رو بدون داشتن فرمول هم می شه حساب کرد ولی وقتی پاسخ فرموله می شه استفاده از فرمول راحت ترش می کنه

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

سلام

من الان مقدماتی پی اچ پی رو بلدم و کد ها رو میفهمم

اما شی گرایی رو باد نمیگیرم

میشه یه مثال ساده از شی گرایی بزنید تا ما هم بفهمیم ( منظورم با php هست )

یعنی یه مثال بزنید که حتما باید از شی گرایی استفاده بشه و بدون شی گرایی نشه اون کار رو انجام داد

عرض کردم برای درک شی گرایی باید با زبانهای سطح پایین کار کنید تا نیازش رو احساس کنید

  • امتیاز 2
لینک به ارسال

قرار نیست کاری باشه که بدون شی گرایی نشه انجامش داد

کل قوانین برنامه نویسی مثل فرمولهای ریاضی می مونند جواب مسائل رو بدون داشتن فرمول هم می شه حساب کرد ولی وقتی پاسخ فرموله می شه استفاده از فرمول راحت ترش می کنه

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

عرض کردم برای درک شی گرایی باید با زبانهای سطح پایین کار کنید تا نیازش رو احساس کنید

ممنون از راهنمایی استاد

بیشتر کجاها لازمه که از شی گرایی استفاده کنیم؟

  • امتیاز 1
لینک به ارسال

ممنون از راهنمایی استاد

بیشتر کجاها لازمه که از شی گرایی استفاده کنیم؟

ما تو دانشگاه شی گرایی ک خوندیم همه مثال هاش اینجوری بود :

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

اسم کتاب ، تاریخ انتشار ، ناشر و ... بگیره (تعداد نامشخصی) هرکتابی که تاریخ انتشارش جدیدتره اسمش رو نشون بده

.....

همه مثال هاش یادمه همینطوری بود. حالا دنبال جزوه هام میگردم پیدا نمیکنم :ph34r:B)

  • امتیاز 1
لینک به ارسال

ما تو دانشگاه شی گرایی ک خوندیم همه مثال هاش اینجوری بود :

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

اسم کتاب ، تاریخ انتشار ، ناشر و ... بگیره (تعداد نامشخصی) هرکتابی که تاریخ انتشارش جدیدتره اسمش رو نشون بده

.....

همه مثال هاش یادمه همینطوری بود. حالا دنبال جزوه هام میگردم پیدا نمیکنم :ph34r:B)

همین مورد رو کداش رو بذار ببینم جربانش چیه

اسم کتاب ، تاریخ انتشار ، ناشر و ... بگیره (تعداد نامشخصی) هرکتابی که تاریخ انتشارش جدیدتره اسمش رو نشون بده
ویرایش شده توسط Mohammad Javad
لینک به ارسال
  • 2 هفته بعد...

ببینین شیی گرایی یک راه حل هست

قدیم کد نویسی به صورت functional بود یعنی شما کدهایی که در چند جای پروژه استفاده میشد یا یک مجموعه کد که خیلی بلند میشد و اشکالزدایی اون سخت بود به چند تابع شکسته میشد تا روند کد نویسی راحتر انجام بشه

با پیشرفت برنامه نویسی مشکلات جدید و نیازهای جدید پیدا شد اینکه یک سری از توابع باید با هم در ارتباط باشن-یک سری از توابع نباید توسط برنامه نویسان سطوح بالاتر قابل رویت باشه -و وقتی پروژه بزرگ باشه و تعداد توابع زیاد بشه دسته بندیشون و نام گذاریشون و مدیریتشون با مشکل مواجه میشد و خیلی دلایل دیگه و راه حل اون ایجاد چیزی بنام شیی بود

یک شیی از مجموعه ای از توابع تشکیل میشه که میتونن با هم مرتبط یا جدا باشن(کپسوله سازی) - میتونن دیتاها رو براحتی بین توابع خودشون به اشتراک بزارن(private-public-protected) و همچنین برای اون شیی خاصیت تعریف کنید و بعضی چیزها رو از دید پنهان کنید مثلا تعریف یک خاصیت private و پاس دادن اطلاعات بین توابع

مثلا شما میتونین یک خاصیت بنام savepath درون شیی قرار بدید و با قرار دادن ادرس محل ذخیره درونش

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

این خاصیت savepath فقط و فقط اجزای شیی در درون شیی بهش دسترسی دارن و از بیرون شیی قابل دسترسی و تغییر نیست

در صورتی که اگر برای یک مجموعه تابع از یک متغییر global استفاده کنید توسط توابع و کدهای دیگر قابل دسترسی و تغییر خواهد بود

  • امتیاز 3
لینک به ارسال

در واقع شی گرای برای بسته بنده یک سری توابع و متغییری های مربوط به هم استفاده میشه که در این صورت امکان ویرایش و اضافه کردن کد راحت تره

در زبان جاوا بحث بالا تر گرفته و کلاس های مربوط به هم در یک بسته به نام پیکج قرار گرفته که امکان مدیریت بهتری بر کلاس های مربوط به هم باشه

خلاصه قضیه تو در تو هستش :D

ویرایش شده توسط MrProgrammer
  • امتیاز 1
لینک به ارسال

ممنون از توضیحات

ایا اموزشی رو دارید که شی گرایی رو به صورت واضح اموزض داده باشه

لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید



ورود به حساب کاربری
×
×
  • اضافه کردن...