آسمان هاست مهر هاست بازی آپ ایران وب

آخرین بسته‌ی MyBB: نسخه‌ی 1.8 MyBB منتشر شد


امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
برنامه نویسی شی گرا
#1
برنامه نویسی شی گرا:شیوه نوینی است که در آن می توان قطعاتی را ایجادودر برنامه های مختلف مورد استفاده قرارداد.
مزایای برنامه نویسی شی گرا:قابلیت خوانایی برنامه هایی که با این روش نوشته می شود بالاست وهمچنین تست وعیب یابی واصلاح آن آسان است.

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

برنامه نویسی شی گرا داده ها(صفات)وتوابع(رفتارها)را در بسته ای به نام اشیابسته بندی می کند.داده ها و توابع هرشی شدیدابه هم گره خورده انددربرنامه های ساختیافته به فعالیتهاتوجه می شود یعنی واحد برنامه نویسی تابع است اما در برنامه نویسی شی گرا واحد برنامه نویسی کلاسی است که اشیا سرانجام از آن نمونه سازی می شوند.

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

برنامه نویس می تواند با استفاده از انواع ابتدایی انواع دیگری را ایجاد کند که آنها را انواع جدید می نامیم.

متغیر نمونه ای از نوع کاراکتری Var ch: char میباشد.
baxe rapper
هر کلاس علاوه بر دادها توابعی داردکه داده ها را دستکاری می کند .قطعات داده ای کلاس را اعضای داده ای وقطعات قطعات تابعی کلاس را توابع عضو یا متد می گویند.
baxe rapper
مزایای دلفی:انعطاف پذیری دلفی بسیار زیاد است وکاربران به راحتی با دلفی ارتباط برقرار می کنندوهمچنین قابلیت اجرای برنامه هاوایجاد وبه کارگیری قطعات در برنامه ها بسیارزیاد است.

قطعات ویژوال :دلفی کتابخانه ای از قطعات ویژوال دارد برنامه نویس می تواند این قطعات را ایجاد و به کتابخانه بیفزاید.برنامه های دلفی مجموعه ای از این قطعات میباشد تمام قطعات موجود در این کتابخانه در نوار ابزار ظاهر می شود وبه راحتی قابل دسترسی اند.

برنامه نویسی شی‌گرا (OOP) شیوه‌ای ازتحلیل و طراحی نرم افزار است که بر تجزیه‌ی مسئله به اشیاء تاکید دارد. اشیاء صور انتزاعی از ماهیت‌های مطرح در مسئله هستند که دو جنبه دارند. اشیاء دارای حالت یا داده بوده و همچنین دارای عملیات بر روی داده‌ها می‌باشند. این نوع نگرش دارای مزایای بسیاری از جمله مدیریت پیچیدگی کاراتر و هزینه نگهداری کمتری است.

در برنامه نویسی شی‌گرا (Object Oriented) همه چیز یک شی (Object) است. هر شی ویژگی‌ها (Properties) و توابع و متدهای مربوط به خودش را دارد.

baxe rapper
یک مثال

مثلاً اگر گربه یک object باشد، ویژگی‌هایی مثل رنگ، نژاد، سن، وزن و ... دارد. متدهای گربه هم است از c نیز پشتیبانی کند، نمی‌توان برنامه‌های کاملاً شی گرا با این زبان نوشت)، شی گربه این گونه ساخته می‌شود:


public class Cat
{
// declaring private properties (_Color and _Age). These are used to store
// .
private string _Color;
private int _Age;
// declaring a pubic property (Color)
public string Color
{
get { return _Color; }
set { _Color = value; }
}
// declaring a pubic property (Age)
public int Age
{
get { return _Age; }
set { _Age = value; }
}
public void Eat(string Food)
{
// codes for eating
}
public string Voice()
{
return "Mio, mio"
}
}
#baxe rapper
//محمود خوشنویس

کد بالا تعریف شی گربه است و به هیچ گربه خاصی اشاره نمی‌کند. برای استفاده از این شی باید اشیایی از نوع گربه بسازیم:
Cat MyCat = new Cat();
MyCat.Color = "White";
MyCat.Age = 2;
MyCat.Eat("Mouse");

Cat Malous = new Cat();
Malous.Color = "Brown";
Malous.Age = 1;
string MalusVoice = Malous.Voice();


کد بالا یک گربه به نام MyCat و گربه دیگری به نام Malous می‌‌سازد. همان طور که می‌‌بینید استفاده ازObject‌ها مشابه استفاده از انواع داده پایه (Primary datatypes) است. اگر می‌‌خواستیم یک عدد از نوع عدد صحیح بسازیم از کد مشابهی (;int i) استفاده می‌‌کردیم. در حقیقت object‌ها نوع داده‌های غیر اولیه هستند.

شی گرا یا به طور کاملتر زبانهای برنامه نویسی شی گرا، زبانهایی هستند که در آن برنامه نویس می‌تواند اشیا مختلفی را تعریف نماید و از اشیاء تولید شده استفاده نماید. هر شی یک سری خصوصیت و قابلیت دارد، که اصطلاحا Properties و Methods خوانده می‌شوند. در این روش از برنامه نویسی دید برنامه نویس به سیستم دید شخصی است که سعی مینماید به پیدا کردن اشیاء مختلف در سیستم و برقراری ارتباط بین آنها سیستم را تولید نماید.
مثال

در این مثال سعی می‌شود مفهوم سیستم‌های شی گرا با چند مثال از دنیا خارجی بیان گردد. در اطراف ما اشیا زیادی وجود دارد و اصولا در طبیعت تنها اشیاء هستند و همه چیز از اشیاء ساخته شده است.
یک شی را در نظر میگیریم، مثلاً یک ماشین وانت را تجسم کنید.این ماشین یک سری خصوصیات دارد، مثلاً چهار چرخ، یک پدال ترمز، یک پدال گاز، یک فرمان و یک محل بزرگ برای قرار دادن اشیاء در آن والبته چیزهای دیگر! این وانت در صورتی که شما به پدال گاز آن فشار بدهید حرکت می‌کند، در صورتی که فرمان آن را بچرخانید تغییر مسیر می‌دهد. پس این شی علاوه بر یکسری خصوصیات، یک سری رفتار مشخص هم به شما نشان می‌دهد. ولی آیا فقط این وانت است که این کار را انجام می‌دهد؟ مسلما نه تمامی وانتها این کار را انجام میدهند. پس شما می‌توانید یک وانت را تعریف کنیدو بگویید:
وانت وسیله‌ای است که چهار چرخ، یک گاز، یک ترمز، یک فرمان یک محل برای حمل بار دارد و اگر پدال گاز آن فشار داده شود حرکت می‌کند. این تعریف وانت است ولی خود وانت نیست! شما هر موقع وانتی بخواهید به کارخانه تولید وانت می روید و از صاحب کارخانه میخواهید تا با توجه به این تعریف یک وانت به شما بدهد.
مفاهیم فوق دقیقا در زبانهای برنامه نویسی شی گرا پیاده سازی شده و مورد استفاده قرار میگیرند. در زبانهای برنامه نویسی شی گرا هم اشیاء زیادی وجود دارند که برنامه نویسان می‌توانند از آنها استفاده کنند. اگر در حال حاضر به صفحه کامپبوتر خود نگاه کنید، اشیاء برنامه نویسی مختلفی را مشاهده می‌کند. مثلاً همین برنامه مرورگر شما، دارای یک شی دگمه است که عنوان آن در بالای صفحه، با نامهای back، forward، stop و .. چیده شده است. این دگمه‌ها همه از نوع دگمه (ویا buttin)هستند و با هم تفاوتها و شباهتهایی دارند. مثلاً هر کدام داری تصویر متفاوت هستند و به کلیک روی آنها عمل متفاوتی انجام داده می‌شود. ولی در برخی از چیزها هم مشترکند، مثلاً روی همه آنها می‌شود کلیک کرد یا وقت ماوس را روی هر کدام میبرید، یک پیغام به شما نمایش میدهند. (دقت کنید که مثلاً تفاوت رنگ دو وانت باعث نمی‌شود که شما فکر کنید یکی از این دو ماشین وانت نیست!) برنامه نویسان شی گرا از اشیا موجود استفاده می‌کنند و یا اشیاء جدیدی را درست می‌کنند و با قرار دادن این اشیاء سیستم را پیاده سازی می‌کنند.


ارتباط اشیاء

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

می‌توانید تعریفهای عامتری پیدا کنید و اصطلاحا به طور انتزاعی تری به اطراف نگاه کنید.
در زبان برنامه نویسی شی گرا نیز اشیا مختلفی وجود دارند که تعریف آنها تکمیل کننده یکدیگر است، به عبارت دیگر اشیا از یکدیگر ارث بری می‌کنند. برخی از تعاریف کاملاً عام است و نمی‌توان از آنها شی ساخت و تنها تعریف هستند. به این تعاریف Interface گفته می‌شود.







شی گرایی در زبان C++



برنامه نویسی شی گرا چیست ؟



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



کپسوله سازی



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

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

درون یک شی ( کد و داده ها ) یا هر دو ممکن است برای آن شی محلی ( خصوصی / private ) یا عمومی (public ) باشند . کد یا داده های محلی فقط توسط بخش دیگری از شی شناخته شده و قابل دست یابی هستند .

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



چند ریختی



چند ریختی کمیتی است که به یک رابط امکان می دهد تا برای یک کلاس عمومی از عملیات مورد استفاده قرار گیرد . عمل خاص توسط ذات حقیقی شی تعیین می شود . یک مثال ساده از چند ریختی در فرمان اتومبیل است . فرمان اتومبیل برای تمام اتومبیل ها بدون توجه به مکانیزمی که مورد استفاده قرار می دهند یکسان است . فرممان برای اتومبیلی که به صورت دستی کار میکند یا با نیروی برق یا هر چیز دیگری عمل یکسانی را انجام میدهد . بنابراین بعد از اینکه شما چگونگی عمل کردن فرمان را یاد گرفتید میتوانید هر نوع اتومبیلی را برانید . همین هدف نیز می تواند در برنامه نویسی اعمال شود . به عنوان مثال یک پشته ( لیستی که در آن اولین ورودی آخرین خروجی است مثل تعدادی سکه که روی هم قرار می گیرند ) را در نظر بگیرید. ممکن است برنامهای داشته باشید که نیاز به سه نوع مختلف پشته داشته باشد یک پشته برای مقادیر اعداد صحیح . یک پشته برای اعداد اعشاری و یک پشته برای کاراکترها مورد استفاده قرار گیرد . در این صورت الگوریتمی که هر سه پشته را پیاده می کند یکسان است حتی اگر داده هایی که در آنها ذخیره می شود متفاوت باشند . در یک زبان غیر شی گرا نیاز خواهید داشت تا سه نوع مختلف از روال ها ی پشته را ایجاد کرده . به هر کدام نام متفاوتی قرار داده و برای هر کدام از روابط خاص خودش استفاده کنید . به دلیل وجود چند ریختی در C++ می توانید یک مجموعه روال عمومی از پشته ایجاد کرده و آن را برای هر سه نوع به کار ببرید . با این روش بعد از اینکه استفاده از یک پشته را یاد گرفتید می توانید همه انواع آن را به کار ببرید .

به طور کلی مفهوم چند ریختی اغلب توسط عبارت " یک رابط. چندین روش " بیان می شود . این بدین معنی است که امکان طراحی یک رابط عمومی برای گروهی از عملیات مرتبط وجود دارد .

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

زبان های برنامه نویسی شی گرای اولیه چون به صورت مفسری بودند از چند ریختی در زمان اجرا پشتیبانی می کردند . ولی چون C++ کامپایلری است پس هم در زمان اجرا و هم زمان کامپایل از چند ریختی پشتیبانی می کند.



وراثت



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

محمود خوشنویس
بدون استفاده از وراثت هرشی به طور مجزا بایستی تمام مشخصه های خودش

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

بنابراین . مکانیزم وراثت به یک شی امکان میدهد تا نمونه خاصا از یک حالت عمومی تر باشد .



C++ برنامه نویسی شی گرا را پیاده سازی می کند .



چندین ویژگی در C++ وجود دارد که از کپسوله سازی . چند ریختی و وراثت پشتیبانی می کنند. به خاطر داشته باشید که می توانید از C++ برای نوشتن هر نوع برنامه ای و با استفاده از هر نوع روشی استفاده کنید . این مطلب کهC++ از OOP پشتیبانی می کند بدین معنی نیست که فقط می توانید برنامه های شی گرا بنویسید . همانند پیشینه خود ( یعنیc ) یکی از قویترین مزایای C++ قابلیت انعطاف آن است .
پاسخ
 سپاس شده توسط Slim ، Night ، samet98 ، majid1605
آگهی
پی پال پی پال
#2
یك سوال ، برنامه نویسی شی گرا میتونه مانند آبجكتیو سی (Objective C) عمل كنه؟ منظورم اینه كه كارایی ها در اون حد هست؟
پاسخ
#3
با تشکر از نظرتون اما در بعضی از مرورگرها کدها به هم میریزه یا اسکرول کار نمیکنه شرمنده خلاصه میخوام برای همه قابل استفاده باشد Heart
پاسخ


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان