PDA

View Full Version : سوال:برنامه نویسی شی گرا چیست ؟شی چیست؟ارتباطش با کلاس چیه؟



abbasrahmati
یک شنبه 01 خرداد 1390, 13:03 عصر
سلام من راستش درست نفهمیدم برنامه نویسی شی گرا چیه ؟ میخوام بدونم آیا مثلا دکمه ها در برنامه جز اشیا اند یا نه ؟
اصلا شی چیه ؟ و کلاس چیه ؟ در آخر هم چه ارتباطی بین کلاس و شی وجود داره؟
هر کسی میتونه خیلی راحت توضیح بده ممنون میشم

abbasrahmati
دوشنبه 02 خرداد 1390, 11:01 صبح
جالبه ایت سایت اسمش برنامه نویسیه ولی این جور که معلوم هنوز کسی از مفاهیم پایه ای سر در نمیاره!!!
نمیخوام توهین کنم ولی . . . . . . . فکر کنم باید همتون که در برنامه نویسی مدعی هستید یه بار دیگه از اول شروع به خوندن برنامه نویسی کنید . . . . .
با خودم گفته بودم این سوالات برای شماها اسونه ولی. . . . .
(البته من اینترنتو گشتم ولی خیلی خوب توضیح نداده بودن. . . . . . )

tooraj_azizi_1035
دوشنبه 02 خرداد 1390, 11:12 صبح
سلام،
اینترنت خوب توضیح می ده شما باید تسلط کافی بر درک مطلب انگلیسی داشته باشید تا متوجه توضیحات در مورد شیءگرائی بشید.

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

class Material
{
int mass;
void Move (3DPoint From, 3DPoint To);
}

Move همان حرکت است و mass همان جرم. mass یک خاصیت است و Move یک رفتار.
من فقط یکی از خواص مواد را که جرم است در این دسته یا طبقه یا کلاس تعریف کردم هر چیزی که علم فیزیک به وجود آن قائل است را می توانیم به این کلاس اضافه کنیم. تا اینجا مفهوم کلاس معلوم شد. کلاس یعنی دسته یا طبقه ای خاص از پدیده ها که دارای خواصی هستند که همان خواص باعث شده آنها در طبقه ای منحصر به فرد قرار گیرند.
اگر بیاییم کلاس مایعات را تعریف کنیم چون مایعات ضمن اینکه خودشان خصوصیات خاصی دارند جزو کلاس مواد هستند پس ماده بودن را از کلاس ماده یا Material به ارث می برند یعنی مفهوم توارث یا Inheritance:
class Water:Material
{

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


معنی برنامه نویسی شیء گرا این است که در این نوع برنامه نویسی تمام چیزی که ما با آن سر و کار داریم شیء است یعنی متعلق به طبقه ای خاص است. فواید آن را در منابع فراوانی می توانید پیدا کنید.

مفهوم بعدی مفهوم کپسوله کردن یا Encapsulation است. Encapsulation بدین معنی است که یک کلاس مکانیزم عملکرد داخلی اش را از جهان خارج پوشیده نگه می دارد مانند جعبه سیاه هواپیما یا موتور پژو 206. هر کدام از اعضاء یک کلاس (منظور فیلد ها، متدها و سایرین) دارای یک سطح دسترسی هستند:
public عمومی
private محرمانه یا خصوصی
protected محافظت شده
internal داخلی

اگر عضوی از یک کلاس محرمانه باشد جهان خارج به آن دسترسی نخواهد داشت. این یعنی کپسوله کردن آن عضو.

مفهوم بعدی چندریختی یا Polymorphism است به این معنی که یک متد می تواند تحت عنوان یک نام رفتارهای متفاوتی داشته باشد که البته معیار تفکیک نوع پارامترهای ورودی متد است که نباید دقیقاً نمونه ای از آن وجود داشته باشد مانند تابع Sum در اکسل که تحت یک نام هم داده های اعشاری را جمع می کند و هم صحیح.

توضیحات بیشتر را سعی کن از گوگل بدست بیاری مثل جستجو با کلید واژه Fundamentals of Object Oriented Programming

بعد از سوال کردن چند روز صبر کنید اگر جواب ندادند بعد تمام سایت رو به رگبار ببندید!

abbasrahmati
دوشنبه 02 خرداد 1390, 12:27 عصر
اولا تشکر میکن از اقا تورج . . . . . من چون میخوام شی گرایی رو کاملا بفهمم این قدر حساس شدم. . . . . و نمیخوام مثل خیلی از برنامه نویسها که هنوز نمیدونن شی گرایی چیه و فقط میدونن مثلا اساس کار وی بی شی گراییه باشم . . . . . مثل کسی که بدونه اساس ریاضی جمع و تفریق و ضرب و تفسیمه ولی هنوز جدول ضربو بلد نیست. . . . . مرسی از توضیحاتت . . . . راستش من توضیحات ویکی پدیا در مورد شی گرایی خوندم و یه چیرایی فهمیدم . . . . . از یه جا هم پرسیدم آیا دکمه ها و جعبه متنها در برنامه نویسی یه جور شی به حساب میاد که متاسفانه بین اساتید اونجا اختلاف پیش اومد . . . . . یه عده میگفتن اصلا ربطی نداره ولی یه عده گفتن مثلا دکمه ها تا زمانی که روی فرم نیومدن کنترل نام دارن ولی زمانی که روی فرم میان شی حساب میشن . . . . .ممنون میشم کمی توضیح بدید!!!

javooneh
دوشنبه 02 خرداد 1390, 13:01 عصر
برنامه نویسی شی گرا همون برنامه نویسی مبتنی بر شی هست یعنی شما واسه پیاده سازی یک سیستم باید اول بگردی اشیا یا موجودیت های یک سیستم پیدا کنی مثل کارمند مثل مشتری - کاربر و .... بعد هرکدام از این موجودیت ها یک سری توابع و متغییر های دارند مثل واسه یک کارمند تابع درج مشخصاتش توی بانک اطلاعاتی .بعد اینا رو که رو کاغذ پیاده سازی کردی میای مثلا یک کلاس به نام کارمند ایجاد میکنی این توابع و متغییر ها رو به همراه شاید یک سری پارامتر توی این کلاس تعریف میکنی .بعد مثلا برای هر کارمند یک شی از این کلاس ایجاد میکنی که میتونی از متغییر هاش استفاده کنی - اونا رو مقدار دهی کنی و یا توابعش صدا بزنی و....
انگار یک شی کمک میکنه یک کارمند جدید رو شبیه سازی کنی و یک کلاس یک الگو از یک کارمندمیشه در نظر گرفت

tooraj_azizi_1035
سه شنبه 03 خرداد 1390, 08:32 صبح
خود Component یک کلاس هست من گفتم همه چیز کلاسه.
این سینتکس کلاس کامپوننت هست.
public class Component : MarshalByRefObject, IComponent, IDisposable
به استیدتان این منبع رو نشون بدید:
http://msdn.microsoft.com/en-us/library/system.componentmodel.component(v=vs.80).aspx

dr3dr3
سه شنبه 10 خرداد 1390, 12:07 عصر
سلام جناب
شي گرايي چيزي نيست كه بشه اينجا توضيح داد يعني خيلي سخته وقت هم زياد ميبره ولي ي ي.......
شي گرايي چند بخش مهم داره كه دنبال اونا باش
1-نحوه تعريف كلاس ها
2-فهم مفهوم شي (صفت ها(attribute or properties) و رفتارها(متد يا همان تابع))
3-انواع فراخواني و استفاده شي براي كلاس
5-انواع اعلان تابع در براي براي كلاس
6-سطوح دسترسي (private-public-protected)
7-سازنده و مخرب
8-سر بار گذاري(ابزار پياده سازي چند ريختي)
9-ارث بري
يك pdfبه زبان انگليسي هم ميزارم كه اگه به خواي كاملا حرفه اي درك كني حتما دانلودش كن
به چند تا سرور اپلود ميكنم كه مشكلي نباشه:چشمک:
Object-Oreinted Programking in c
.:: دانلود از سرور 1 (http://www.usaupload.net/d/3fdmy14uqhi) ::.
.:: دانلود از سرور 2 (http://up.iranblog.com/images/kkeci8vkb2kl3qg5merh.rar) ::.
.:: دانلود از سرور 3 (http://www.upload.iran-forum.ir/uploads/1306912093.rar)

abbasrahmati
پنج شنبه 12 خرداد 1390, 10:58 صبح
خیلی ممنون ازتون . . . .شرمنده که در اول پست بد حرف زدم با این توضیحات و اون پی دی اف اخر خیلی از مطالب شی گرایی رو فهمیدم . . . .بازم ازتون عذر میخوام

morrning
جمعه 13 خرداد 1390, 11:03 صبح
اگه یه فایل داشته باشی و روی چند تا سی دی رایتش کنی . اون فایله حکم کلاس و فایل هایی که روی سیدی رایت شده همراه با خود سی دی ها حکم شی رو دارن فکر کنم مثال خوبی بود...:کف:

haniyehghassami
یک شنبه 13 شهریور 1390, 00:56 صبح
سلام
ممنون
چه توضیحات کامل و جامعی بودن خدا وکیلی کلی فکم بسته شد

واقعا ممنون

Ramin2097
شنبه 04 آبان 1392, 16:00 عصر
سلام جناب
شي گرايي چيزي نيست كه بشه اينجا توضيح داد يعني خيلي سخته وقت هم زياد ميبره ولي ي ي.......
شي گرايي چند بخش مهم داره كه دنبال اونا باش
1-نحوه تعريف كلاس ها
2-فهم مفهوم شي (صفت ها(attribute or properties) و رفتارها(متد يا همان تابع))
3-انواع فراخواني و استفاده شي براي كلاس
5-انواع اعلان تابع در براي براي كلاس
6-سطوح دسترسي (private-public-protected)
7-سازنده و مخرب
8-سر بار گذاري(ابزار پياده سازي چند ريختي)
9-ارث بري
يك pdfبه زبان انگليسي هم ميزارم كه اگه به خواي كاملا حرفه اي درك كني حتما دانلودش كن
به چند تا سرور اپلود ميكنم كه مشكلي نباشه:چشمک:
Object-Oreinted Programking in c
.:: دانلود از سرور 1 (http://www.usaupload.net/d/3fdmy14uqhi) ::.
.:: دانلود از سرور 2 (http://up.iranblog.com/images/kkeci8vkb2kl3qg5merh.rar) ::.
.:: دانلود از سرور 3 (http://www.upload.iran-forum.ir/uploads/1306912093.rar)
سلام.ببخشید این لینکا دیگه معتبر نیس.ممنون میشم اگه فایلو دارید آپلود کنید و لینکشو بهم در همین تاپیک بدید.

hamedjon
جمعه 01 اسفند 1393, 18:19 عصر
این فابل برنامه نویسی به سبک شیگرایی را به نحو احسن توضیح داده http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=10&cad=rja&uact=8&ved=0CGkQFjAJ&url=http%3A%2F%2Ffaculties.sbu.ac.ir%2F~a_mansouri %2FAP%2FLecture8.pdf&ei=ik3nVIa2IoS4UYbPgtAL&usg=AFQjCNGpQbs21TndyBQ4zOQTr1dUC5DXfw&sig2=P2N3VftNXyG5PNc-peT_Lw:خجالت:

Bahman_8088
پنج شنبه 05 شهریور 1394, 14:04 عصر
کل مفاهیم شی گرایی
در این آدرس است
http://s6.picofile.com/file/8184157392/Session2_introduction.rar.html

ehsanxxx
دوشنبه 14 تیر 1395, 18:15 عصر
برای یادگیری مفهوم شی گرایی هم از مطالب این سایت میونی استفاده کنی هم چندتا لینک برای میزارم که مطالب خوبی دارن:
http://stackoverflow.com/questions/3356464/is-c-sharp-a-100-object-oriented-programming-language

امیدوارم بدردت بخوره