sunyboy
09-25-2008, 01:49 AM
در زبان های برنامه سازی ساخت یافته مثل c، برنامه ها به فعالیت ها توجه دارند. در حالی که در زبان ++c و سایر زبان های شی گرا (http://iranictnews.ir/tags/42524/T______شی-گرا.htm) به اشیا توجه می شود.
در c واحد برنامه نویسی تابع است و در ++c واحد برنامه نویسی، کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm)ی است که اشیا سرانجام از آن نمونه سازی و ایجاد می شوند. برنامه نویسان c، روی نوشتن توابع متمرکز می شوند.
گروهی از فعالیت ها که کار مشترکی را انجام می دهند، به شکل تابع در می آیند و گروهی از توابع، برنامه را ایجاد می کنند. داده ها نیز در c اهمیت دارند. ولی فرض می شود داده های مورد نیاز فعالیت هایی که تابع انجام می دهد، مهیاست.
مشخصات سیستم و افعال موجود در صورت مساله به برنامه نویس c کمک می کند، توابعی را تعیین کند که باید با هم کار کنند تا سیستم را پیاده سازی کنند.برنامه نویس++c روی ایجاد انواع جدیدی به نام کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) متمرکز می شود. در هر زبان انواع داده (http://iranictnews.ir/tags/254062/T______انواع-داده.htm) ای مشخصی وجود دارد که به آنها انواع ابتدایی گفته می شود.
به عنوان مثال نوع داده ایint مشخص کننده داده عددی صحیح، float داده عددی اعشاری، double داده عددی اعشاری بزرگ، char (http://iranictnews.ir/tags/90605/T______char.htm) داده کاراکتر (http://iranictnews.ir/tags/68607/T______کاراکتر.htm)ی وbool داده دو مقداری درست یا غلط است. برنامه نویس می تواند با استفاده از انواع ابتدایی، انواع دیگری را ایجاد کند که به آنها انواع جدید گفته می شود.توابع و اعضای داده ای داخل هر کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm)، تعدادی داده وجود خواهد داشت که به آنها اعضای داده ای کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) گفته می شود. علاوه بر اعضای داده ای، توابعی درون کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) وجود دارد که داده ها را دستکاری می کنند.
به این توابع به اصطلاح متدهای کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) یا توابع عضو گفته می شود.لازم است بدانیم که نمونه ای از هر نوع ابتدایی را یک متغیر گوییم. یک متغیر در واقع مقدار مشخصی از حافظه اصلی (http://iranictnews.ir/tags/255752/T______حافظه-اصلی.htm) (ram (http://iranictnews.ir/tags/20366/T______ram.htm)) است که برای نگهداری یک مقدار رزرو می شود. اندازه هر متغیر در حافظه (http://iranictnews.ir/tags/1352/T______حافظه.htm) به نوعی داده اولیه بستگی دارد. به عنوان مثال در ++c ، متغیری از نوع داده ای char (http://iranictnews.ir/tags/90605/T______char.htm) یک بایت (http://iranictnews.ir/tags/90604/T______بایت.htm) از حافظه (http://iranictnews.ir/tags/1352/T______حافظه.htm) را برای ذخیره (http://iranictnews.ir/tags/88287/T______ذخیره.htm) یک کاراکتر (http://iranictnews.ir/tags/68607/T______کاراکتر.htm) رزرو می کند و یا متغیری از نوع int ، بسته به نوع کامپایلر (http://iranictnews.ir/tags/86430/T______کامپایلر.htm) 2 یا 4 بایت (http://iranictnews.ir/tags/90604/T______بایت.htm) از حافظه (http://iranictnews.ir/tags/1352/T______حافظه.htm) را برای نگهداری یک عدد صحیح رزرو می کند. در صورتی که نوع int به اندازه 2 بایت (http://iranictnews.ir/tags/90604/T______بایت.htm) باشد به این معنی است که می تواند عددی بین 32768- تا 32767 را در خود نگه دارد.
کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) در واقع یک نوع جدید از انواع داده (http://iranictnews.ir/tags/254062/T______انواع-داده.htm) اولیه است که به نمونه ای از آن شی گفته می شود. هر شی نیز مانند متغیر، فضایی از حافظه (http://iranictnews.ir/tags/1352/T______حافظه.htm) را رزرو می کند. میزان این فضا نیز مجموع اندازه های متغیرهای تعریف شده درون آن کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) است.
در این جا ذکر یک نکته ضروری به نظر می رسد. می دانیم که درون یک کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) علاوه بر اعضای داده ای توابعی نیز تعریف می شوند. این توابع گاهی ممکن است توابعی بزرگ و پیچیده باشند. باید دقت داشت که اندازه یک شی به اندازه توابع تعریف شده داخل کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) مربوط ربطی نخواهد داشت و این توابع در زمان های نیاز به صورت مرجع از همان کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) مربوطه فراخوانی می شوند. بنابراین اندازه یک شی، مستقل از تعداد و اندازه توابع تعریف شده داخل کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) مربوطه، تنها به تعداد و نوع اعضای داده ای آن بستگی خواهد داشت.
در زبان ساخت یافته، افعال موجود در صورت مساله به برنامه نویس برای پیاد ه سازی سیستم کمک می کند. اما در برنامه نویسی شی گرا (http://iranictnews.ir/tags/42524/T______شی-گرا.htm) مثل ++c اسامی موجود در صورت مساله به برنامه نویس کمک می کند تا کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) هایی را تعیین کند که با ایجاد اشیایی از آنها با یکدیگر کار می کنند سیستم را پیاده سازی کند.اگر نرم افزار (http://iranictnews.ir/tags/256/T______نرم-افزار.htm) از کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) ساخته شود، از این کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) ها می توان در برنامه های دیگر نیز استفاده کرد. به همین دلیل، کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) ها قابلیت استفاده مجدد را دارند.
در c واحد برنامه نویسی تابع است و در ++c واحد برنامه نویسی، کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm)ی است که اشیا سرانجام از آن نمونه سازی و ایجاد می شوند. برنامه نویسان c، روی نوشتن توابع متمرکز می شوند.
گروهی از فعالیت ها که کار مشترکی را انجام می دهند، به شکل تابع در می آیند و گروهی از توابع، برنامه را ایجاد می کنند. داده ها نیز در c اهمیت دارند. ولی فرض می شود داده های مورد نیاز فعالیت هایی که تابع انجام می دهد، مهیاست.
مشخصات سیستم و افعال موجود در صورت مساله به برنامه نویس c کمک می کند، توابعی را تعیین کند که باید با هم کار کنند تا سیستم را پیاده سازی کنند.برنامه نویس++c روی ایجاد انواع جدیدی به نام کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) متمرکز می شود. در هر زبان انواع داده (http://iranictnews.ir/tags/254062/T______انواع-داده.htm) ای مشخصی وجود دارد که به آنها انواع ابتدایی گفته می شود.
به عنوان مثال نوع داده ایint مشخص کننده داده عددی صحیح، float داده عددی اعشاری، double داده عددی اعشاری بزرگ، char (http://iranictnews.ir/tags/90605/T______char.htm) داده کاراکتر (http://iranictnews.ir/tags/68607/T______کاراکتر.htm)ی وbool داده دو مقداری درست یا غلط است. برنامه نویس می تواند با استفاده از انواع ابتدایی، انواع دیگری را ایجاد کند که به آنها انواع جدید گفته می شود.توابع و اعضای داده ای داخل هر کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm)، تعدادی داده وجود خواهد داشت که به آنها اعضای داده ای کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) گفته می شود. علاوه بر اعضای داده ای، توابعی درون کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) وجود دارد که داده ها را دستکاری می کنند.
به این توابع به اصطلاح متدهای کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) یا توابع عضو گفته می شود.لازم است بدانیم که نمونه ای از هر نوع ابتدایی را یک متغیر گوییم. یک متغیر در واقع مقدار مشخصی از حافظه اصلی (http://iranictnews.ir/tags/255752/T______حافظه-اصلی.htm) (ram (http://iranictnews.ir/tags/20366/T______ram.htm)) است که برای نگهداری یک مقدار رزرو می شود. اندازه هر متغیر در حافظه (http://iranictnews.ir/tags/1352/T______حافظه.htm) به نوعی داده اولیه بستگی دارد. به عنوان مثال در ++c ، متغیری از نوع داده ای char (http://iranictnews.ir/tags/90605/T______char.htm) یک بایت (http://iranictnews.ir/tags/90604/T______بایت.htm) از حافظه (http://iranictnews.ir/tags/1352/T______حافظه.htm) را برای ذخیره (http://iranictnews.ir/tags/88287/T______ذخیره.htm) یک کاراکتر (http://iranictnews.ir/tags/68607/T______کاراکتر.htm) رزرو می کند و یا متغیری از نوع int ، بسته به نوع کامپایلر (http://iranictnews.ir/tags/86430/T______کامپایلر.htm) 2 یا 4 بایت (http://iranictnews.ir/tags/90604/T______بایت.htm) از حافظه (http://iranictnews.ir/tags/1352/T______حافظه.htm) را برای نگهداری یک عدد صحیح رزرو می کند. در صورتی که نوع int به اندازه 2 بایت (http://iranictnews.ir/tags/90604/T______بایت.htm) باشد به این معنی است که می تواند عددی بین 32768- تا 32767 را در خود نگه دارد.
کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) در واقع یک نوع جدید از انواع داده (http://iranictnews.ir/tags/254062/T______انواع-داده.htm) اولیه است که به نمونه ای از آن شی گفته می شود. هر شی نیز مانند متغیر، فضایی از حافظه (http://iranictnews.ir/tags/1352/T______حافظه.htm) را رزرو می کند. میزان این فضا نیز مجموع اندازه های متغیرهای تعریف شده درون آن کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) است.
در این جا ذکر یک نکته ضروری به نظر می رسد. می دانیم که درون یک کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) علاوه بر اعضای داده ای توابعی نیز تعریف می شوند. این توابع گاهی ممکن است توابعی بزرگ و پیچیده باشند. باید دقت داشت که اندازه یک شی به اندازه توابع تعریف شده داخل کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) مربوط ربطی نخواهد داشت و این توابع در زمان های نیاز به صورت مرجع از همان کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) مربوطه فراخوانی می شوند. بنابراین اندازه یک شی، مستقل از تعداد و اندازه توابع تعریف شده داخل کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) مربوطه، تنها به تعداد و نوع اعضای داده ای آن بستگی خواهد داشت.
در زبان ساخت یافته، افعال موجود در صورت مساله به برنامه نویس برای پیاد ه سازی سیستم کمک می کند. اما در برنامه نویسی شی گرا (http://iranictnews.ir/tags/42524/T______شی-گرا.htm) مثل ++c اسامی موجود در صورت مساله به برنامه نویس کمک می کند تا کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) هایی را تعیین کند که با ایجاد اشیایی از آنها با یکدیگر کار می کنند سیستم را پیاده سازی کند.اگر نرم افزار (http://iranictnews.ir/tags/256/T______نرم-افزار.htm) از کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) ساخته شود، از این کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) ها می توان در برنامه های دیگر نیز استفاده کرد. به همین دلیل، کلاس (http://iranictnews.ir/tags/253992/T______کلاس.htm) ها قابلیت استفاده مجدد را دارند.