برنامهنویسی شیءگرا: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
اصللح اشتباه نگارشی برچسبها: ویرایش همراه ویرایش از وبگاه همراه |
|||
خط ۳:
{{شیوههای برنامهنویسی}}
'''برنامهنویسی شیگرا''' (به [[زبان انگلیسی|انگلیسی]] ''Object-Oriented Programming'' مخفف:OOP) یک شیوه برنامهنویسی است که ساختار یا بلوک اصلی اجزای آن، [[شی (علوم رایانه)|شیها]] میباشند. در واقع در این شیوه
فلسفهای که منجر به شکلگیری ی زبانهای شی گرا شد، عبارت بود از این واقعیت که نحوهٔ عملکرد مغز و شیوهٔ دریافت اطلاعات از محیط پیرامون و پردازش آن اطلاعات (اندیشیدن)، شیوهای شی گراست، از همین روی میبایستی زبانی تعریف میشد که همین شیوه را مبنای کار خود قرار داده و بازتولید میکرد؛ و دقیقاً به همان شکل که اشیا در جهان خارج، دارای هویت و کارکرد مشخص و یگانه برای خود هستند و در عین حال با دیگر اشیا در ارتباطی تنگاتنگ و مستقیم اند، در [[زبانهای
مفاهیم عمده
== کلاس ==
کلاس نوع خاصی از [[آرایه (ساختمان دادهها)|آرایه]] است که امکان ذخیره و جمعبندی تعداد زیادی المان را (که شامل دادهها و توابع هستند) برای یک شی جدید فراهم آورده و تحت یک نام مشترک ذخیره میکند. اما بر خلاف آرایه که تنها قادر به ذخیرهٔ دادههایی هم جنس است، کلاس میتواند دادههایی از جنسهای مختلف را ذخیره نماید.<ref name="ReferenceA">Prof. Hanspeter Mössenböck, Sprechen Sie Java?, 3.Auflage, ISBN
<syntaxhighlight lang=Java>
خط ۱۸:
</syntaxhighlight>
حال در نظر بگیرید که نه فقط یک تاریخ، بلکه n تاریخ متفاوت مورد نیاز است. این بدان معنی ست که میبایستی به تعداد n بار، سه متغیر بالا، جداگانه تعریف شوند و تعریفِ تک تک و پیاپی متغیرها، نه فقط از لحاظ زمانی بسیار وقت گیر مینماید، بلکه از لحاظ میزان کد مورد نیاز نیز بسیار غیر عملی ست، چرا که هر بار میبایستی نام جدیدی برای متغیرها در نظر گرفته شود (دو متغیر متفاوت نمیتوانند هم نام باشند). در اینجاست که کلاسها به خوبی وارد عمل میشوند. با استفاده از کلاسها میتوان متغیرهای متعدد را زیر عنوان یک جنسیت مشترک جدید (بهطور مثال هر سه را در یک کلاس با نام Date)، تعریف و جمعبندی نمود؛ و بعد از آن، بدون نیاز به تعریف مجدد روز، ماه و سال، از کلاس Date به میزان مورد نیاز استفاده کرد:<ref name="ReferenceA" />▼
▲حال در نظر بگیرید که نه فقط یک تاریخ، بلکه n تاریخ متفاوت مورد نیاز است. این بدان معنی ست که میبایستی به تعداد n بار، سه متغیر بالا، جداگانه تعریف شوند و تعریفِ تک تک و پیاپی متغیرها، نه فقط از لحاظ زمانی بسیار وقت گیر مینماید، بلکه از لحاظ میزان کد مورد نیاز نیز بسیار غیر عملی ست، چرا که هر بار میبایستی نام جدیدی برای متغیرها در نظر گرفته شود (دو متغیر متفاوت نمیتوانند هم نام باشند). در اینجاست که کلاسها به خوبی وارد عمل میشوند. با استفاده از کلاسها میتوان متغیرهای متعدد را زیر عنوان یک جنسیت مشترک جدید (بهطور مثال هر سه را در یک کلاس با نام Date)، تعریف و جمعبندی نمود؛ و بعد از آن، بدون نیاز به تعریف مجدد روز، ماه و سال، از کلاس Date به میزان مورد نیاز استفاده کرد:<ref name="ReferenceA"/>
<syntaxhighlight lang=Java>
سطر ۴۰ ⟵ ۳۶:
مقالهٔ اصلی: [[کپسوله سازی (علم رایانه)]]
کپسوله سازی، مخفیسازی (Encapsulation)، یا لفافهبندی، به این مفهوم اشاره دارد که باید بعضی خصوصیات یا رفتارهای شیء را از دید دیگران پنهان کرد. فرض کنید شما به عنوان یک راننده میخواهید اتومبیل شخصی تان را روشن کنید و به محل کارتان عزیمت کنید سوییچ را
عمل مخفی سازی باعث میشود که اشیاء بدون آنکه از چگونگی کارکرد یکدیگر اطلاع داشته باشند با هم کار کنند.
سطر ۴۸ ⟵ ۴۴:
چند ریختی(Polymorphism)
چند ریختی، کمیتی است که به یک رابط امکان میدهد تا از عملیات یکسانی در قالب یک کلاس عمومی استفاده کند. عمل خاص کلاس را ذات حقیقی شیء تعیین میکند. مثال سادهای از چند ریختی، فرمان اتومبیل است. عمل فرمان اتومبیل برای تمام اتومبیلها بدون توجه به ساز و کاری که دارند، یکسان است. فرمان برای اتومبیل که بهطور مکانیکی کار میکند یا با نیروی برق یا هر چیز دیگری، عمل یکسانی را انجام میدهد؛ بنابراین، پس از اینکه شما عملکرد فرمان را
بهطور کلی، مفهوم چند ریختی، اغلب با عبارت
== انتزاع / تجرید ==
سطر ۵۷ ⟵ ۵۳:
== یک مثال کاربردی ==
در اطراف ما اشیاء زیادی وجود دارد و میتوان تمام مفاهیم موجود در طبیعت را با اشیاء تقلیل داد. مثلاً یک ماشین باربری. این ماشین یک سری خصوصیات دارد: چهار چرخ، یک پدال ترمز، یک پدال گاز، یک فرمان و یک محل بزرگ برای قرار دادن اشیاء در آن
''ماشین باربری وسیلهای است که چهار چرخ، یک گاز، یک ترمز، یک فرمان و یک محل برای حمل بار دارد و اگر پدال گاز آن فشار داده شود حرکت میکند. این تعریف این ماشین است ولی خود آن نیست. هر زمانی چنین ماشینی بخواهیم به کارخانه تولید آن میرویم و از فروشندگان میخواهیم تا با توجه به این تعریف یک ماشین به ما بدهند. ''
مفاهیم فوق در [[زبانهای
== ارتباط اشیاء ==
|