رفتن به مطلب

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


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

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

مثال ویکی :

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

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

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

ویرایش شده توسط areff
لینک به ارسال

سلام

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

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

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

لینک به ارسال

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

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

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

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

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

لینک به ارسال

سلام

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

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

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

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

لینک به ارسال

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

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

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

سلام

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

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

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

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

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

لینک به ارسال

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

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

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

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

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

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

لینک به ارسال

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

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

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

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

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

.....

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

لینک به ارسال

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

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

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

.....

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

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

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

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

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

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

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

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

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

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

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

لینک به ارسال

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

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

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

ویرایش شده توسط MrProgrammer
لینک به ارسال

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

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

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...