areff

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

13 پست در این موضوع قرار دارد

ارسال شده در (ویرایش شده)

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

مثال ویکی :

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

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

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

ویرایش شده در توسط areff
1

به اشتراک گذاری این پست


لینک به پست

سلام

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

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

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

3

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

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

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

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

ویرایش شده در توسط Mohammad Javad
1

به اشتراک گذاری این پست


لینک به پست

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

3

به اشتراک گذاری این پست


لینک به پست

سلام

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

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

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

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

0

به اشتراک گذاری این پست


لینک به پست

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

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

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

سلام

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

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

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

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

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

2

به اشتراک گذاری این پست


لینک به پست

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

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

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

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

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

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

1

به اشتراک گذاری این پست


لینک به پست

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

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

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

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

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

.....

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

1

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

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

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

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

.....

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

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

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

به اشتراک گذاری این پست


لینک به پست

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

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

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

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

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

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

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

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

3

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

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

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

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

ویرایش شده در توسط MrProgrammer
1

به اشتراک گذاری این پست


لینک به پست

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

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

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری