PDA

View Full Version : OOP کیست؟ چیست؟ کجاست؟



nasr
چهارشنبه 10 تیر 1383, 16:57 عصر
ببخشید که من وارد بحث شما شدم ولی

لطفا بفرمایید OPP اصلا چیه تا ماهم از این تاپیک یه استفاده ای بکنید

با تشکر

مهدی کرامتی
چهارشنبه 10 تیر 1383, 17:42 عصر
برنامه نویسی شیءگرا (Object Oriented Programming).

مهدی کرامتی
پنج شنبه 11 تیر 1383, 10:28 صبح
اینجوری نمیشه.

بهتره بحث ایجاد کامپوننت رو با بحث OOP قاطی نکنیم و هر کدوم رو در یک تاپیک جداگانه دنبال کنیم. بهتر نیست؟

برادر سپیدار: لطفا بحث OOP را شروع نمایید.

Sepidar
پنج شنبه 11 تیر 1383, 10:46 صبح
با عرض سلام
خدمت حاج مهدی گرانقدر :) و گرانسنگ :mrgreen: عرض شود که به 2 دلیل بنده دست و دلم سخت به شروع این بحث میره:
1. اساتید معظم زیادی هستند که قطعا خیلی قوی oop کار کرده‌اند و بنده جسارت نمی‌کنم در محضر آنها بی ادبی کنم. مخصوصا حاج کامبیز.
2. این مقاله های چت هم مونده که هنوز تایپشون نکردم. شاعر می‌فرماید: اینی رو که زاییدی بزرگش کن تا بعدی.


اما برای اینکه صحبت شما هم زمین نمونده باشه بحث رو شروع می کنم با این امید که اساتید از کمک فروگذار نفرمایند.

Sepidar
پنج شنبه 11 تیر 1383, 10:51 صبح
اما بعد.

بهتره با یه تاریخچه مختصر از سبکهای برنامه نویسی شروع کنیم.

1. برنامه نویسی سنتی: در برنامه نویسی سنتی (که معمولا در سطح ماشین انجام می‌شد) هر برنامه شامل یک سری دستورات انتساب، پرشهای ساده و یا شرطی میشد. در حقیقت کدهایی هم که هم اکنون می نویسیم در آخر به چنین دستوراتی ترجمه میشوند.
فرض کنید می خواهید یک برنامه سنتی بنوسید. برای اینکار سعی کنید فقط از کلمات کلیدی زیر استفاده کنید:
program
var
begin,end فقط یکیار در ابتدا و انتهای برنامه.
if
:=
goto
label
در این صورت شما احتمالا یک برنامه سنتی نوشته اید.

2. برنامه نویسی ساخت یافته: در برنامه نویسی ساخت یافته 3 فرایند همزمان اتفاق افتاد. قبل از اینکه به فرایندها بپردازم باید بگویم که پیشرفت این 3 فرایند بسیار تدریجی بود (و نه اینکه امشب یکی بخوابه و از فردا صبحش ساخت یافته برنامه بنویسه).
اما این 3 فرایند:

الف) ساختیافتگی کد: یادمه وقتی اولین بار از basic سراغ پاسکال اومدم،‌استادم بهم گفت اینجا از همه چیز میتونی استفاده کنی به غیر از goto! (الان من 9 ساله از این دستور استفاده نکرده ام!) عیب کار هم خیلی واضح بود: با بزرگ شدن برنامه ها تعداد gotoها هم زیاد میشد، تا جایی که واقعا نمیشد شخص ثالثی برنامه را بخواند و بفهمد. بنابر این این ایده قوت گرفت که به جای استفاده از دستورات goto نامفهوم از دستوراتی مانند while, for که خوانایی بیشتری به برنامه ها می دهند استفاده شود. (به نقل از حاج کامبیز: در کل پیاده سازی جاوا فقط 1 جا از دستور goto استفاده شده: در آن یک مورد استثنائا کد خواناتر می‌شده)

ب) کپسوله کردن کد:این قسمت شاید مهمترین ایده برنامه نویسی ساختیافته بوده است. برنامه نویسان همیشه میخواسته اند که اولا در یک برنامه کد تکراری نداشته باشند و در ثانی کدی را که یکبار نوشته‌اند در برنامه های مختلف به کار گیرند: کپسوله کردن کد این امکان را به شما می دهد.
کپسوله کردن کد در واقع همان نوشتن کد مرتبط در یک بخش از برنامه به نام روتین (=فانکشن) و سپس فراخوانی آن می باشد.

ج) کپسوله کردن داده: استفاده از یک مثال شاید گویاترین راه باشه. فرض کنید میخواهید شماره یک دانش‌آموز، قد، وزن و معدل او را در حافظه نگهداری کنید. فکر میکنید استفاده از کدام 2 ساختار زیر راحتتر باشد؟

var
StdInfo:array[1..4] of real;
یا
type
TStudInfo=record
Number:integer;
Average,Height,Weight:real;
end;

var
StudInfo:TStudInfo;

روش اول کلاسیک و روش دوم ساختیافته است.

3. برنامه نویسی شیئ‌گرا: در این سبک برنامه نویسی ایده کلی آنست که کد وداده با معرفی مفهوم شیئ یکجا کپسوله شوند. توضیحات بیشتر در مورد این سبک موضوع مقالات بعدی خواهد بود.