خوش آمدید به رمان ۹۸ | بهترین انجمن رمان نویسی

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

*KhatKhati*

مدیر بازنشسته رمان ۹۸
کاربر رمان ۹۸
  
عضویت
16/7/20
ارسال ها
2,693
امتیاز واکنش
9,215
امتیاز
233
محل سکونت
گلنمکستان
زمان حضور
63 روز 21 ساعت 58 دقیقه
نویسنده این موضوع
سنجش استفاده از زبان
مشکل است که مشخص کنیم کدام زبان برنامه‌نویسی بیشتر مورد استفاده‌است، و اینکه کاربرد چه معنی می‌دهد با توجه به زمینه تغییر می‌کند. یک زبان ممکن است زمان بیشتری از برنامه‌نویس بگیرد، زبان دیگر ممکن است خطوط بیشتری داشته باشد، و دیگری ممکن است زمان بیشتری از پردازنده را مصرف کند. برخی زبان‌ها برای کاربردهای خاص بسیار محبوبند. برای مثال: کوبول همچنان در مراکز داده متحد، غالباً روی کامپیوترهای بزرگ توانا است؛ fortran در مهندسی برنامه‌های کاربردی، C در برنامه‌های تعبیه شده و سیستم‌های عامل؛ و بقیه برنامه‌ها معمولاً برای نوشتن انواع دیگر برنامه‌ها کاربرد دارند. روش‌های مختلفی برای سنجش محبوبیت زبان‌ها، هر یک متناسب یا یک ویژگی محوری متفاوت پیشنهاد شده‌است:

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

این حقیقت که این دسته‌بندی ممکن است در راستای محورهای مختلف انجام شوند، این وظیفه را پیچیده‌تر می‌کند؛ برای مثال، جاوا هم یک زبان شیءگرا (چون به برنامه‌نویسی شیءگرا تشویق می‌کند) و زبان هم‌زمان (چون ساختارهای داخلی برای اجرای چندین جریان موازی دارد) است. پایتون یک زبان اسکریپتی شیءگرا است.

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

یک زبان برنامه‌نویسی ممکن است با فاکتورهای غیر مرتبط به مثال‌های برنامه‌نویسی دسته‌بندی شود. برای مثال، غالب زبان‌های برنامه‌نویسی کلمات کلیدی زبان انگلیسی را استفاده می‌کنند، در حالیکه تعداد کمی این کار را نمی‌کنند. سایر زبان‌ها ممکن است براساس داخلی بودن یا نبودن دسته‌بندی شوند.


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

 
  • تشکر
Reactions: SAEEDEH.T و Saghár✿

*KhatKhati*

مدیر بازنشسته رمان ۹۸
کاربر رمان ۹۸
  
عضویت
16/7/20
ارسال ها
2,693
امتیاز واکنش
9,215
امتیاز
233
محل سکونت
گلنمکستان
زمان حضور
63 روز 21 ساعت 58 دقیقه
نویسنده این موضوع
برنامه‌نویسی شیءگرا
شیوه‌های برنامه‌نویسی
  • زبان عملی
  • Agent-oriented
  • جنبه‌گرا
  • Automata-based
  • Concurrent computing
    • Relativistic programming
  • Data-driven
  • اعلانی (تضاد: دستوری)
    • Constraint
    • Dataflow
      • Flow-based
      • Cell-oriented (صفحه‌های گسترده)
      • Reactive
    • تابعی
      • Functional logic
    • منطقی
      • برنامه‌ریزی منطقی قیاسی
      • Answer set
      • Constraint logic
      • Functional logic
      • Inductive logic
    • Relational
  • End-user programming
  • رویدادمحور
    • سرویس‌گرا
    • رایانش بی‌درنگ
  • Expression-oriented
  • Feature-oriented
  • Function-level (تضاد: Value-level)
  • جنریک
  • دستوری (تضاد: اعلانی)
    • رویه‌ای
  • Language-oriented
    • Natural language programming
    • Discipline-specific
    • مختص به دامنه
    • Grammar-oriented
      • Dialecting
    • Intentional
  • Metaprogramming
    • Automatic
    • Reflective
      • Attribute-oriented
    • هم‌تمثیلی
    • Template
      • Policy-based
  • غیر ساخت‌یافته (تضاد: ساخت‌یافته)
    • Array
  • Nondeterministic
  • رایانش موازی
    • Process-oriented
  • Point-free style
    • Concatenative
  • Semantic
  • ساخت‌یافته (تضاد: غیر ساخت‌یافته)
    • Block-structured
    • پودمانی (تضاد: Monolithic)
    • شیءگرا (OOP)
      • By separation of concerns:
        • جنبه‌گرا
        • Role-oriented
        • Subject-oriented
      • برنامه‌نویسی مبتنی بر کلاس
      • بر پایه پیش‌نمونه
    • بازگشتی
  • Value-level (تضاد: Function-level)
  • Probabilistic
  • مفهوم
  • ن
  • ب
  • و


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

 
  • تشکر
Reactions: SAEEDEH.T و Saghár✿

*KhatKhati*

مدیر بازنشسته رمان ۹۸
کاربر رمان ۹۸
  
عضویت
16/7/20
ارسال ها
2,693
امتیاز واکنش
9,215
امتیاز
233
محل سکونت
گلنمکستان
زمان حضور
63 روز 21 ساعت 58 دقیقه
نویسنده این موضوع
برنامه‌نویسی شی‌گرا (به انگلیسی Object-Oriented Programming مخفف:OOP) یک شیوه برنامه‌نویسی است که ساختار یا بلوک اصلی اجزای آن، شی‌ها می‌باشند. در واقع در این شیوه برنامه‌نویسی، برنامه به شی گرایش پیدا می‌کند. به این معنا که داده‌ها و توابعی که قرار است بر روی این داده‌ها عمل کنند، تا حد امکان در قالبی به نام شی در کنار یکدیگر قرار گرفته، جمع‌بندی شده و یک واحد (شی) را تشکیل داده و نسبت به محیط بیرونِ خود، کپسوله می‌شوند و از این طریق، توابع بیگانهٔ خارج از آن شی، دیگر امکان ایجاد تغییر در داده‌های درون آن شی را ندارند.

به‌ عنوان مثال حساب بانکی شما که شامل مشخصات فردی شما و میزان سپردهٔ شما در بانک است، تشکیل یک شی را می‌دهند و به دلیل دارا بودن ویژگی کپسوله، امکان دستکاری در میزان سپرده یا مشخصات شما، توسط دیگران وجود ندارد.[۱] از دیگر ویژگی‌های برنامه‌نویسی شی گرا، پیچیدگی کم، هزینه کم، امکان گسترش سریع برنامه با خطای کمتر نسبت به سایر پارادایم‌های برنامه‌نویسی است.

فلسفه‌ای که منجر به شکل‌گیری ی زبان‌های شی گرا شد، عبارت بود از این واقعیت که نحوه عملکرد مغز و شیوهٔ دریافت اطلاعات از محیط پیرامون و پردازش آن اطلاعات (اندیشیدن)، شیوه‌ای شی گراست، از همین روی می‌بایستی زبانی تعریف می‌شد که همین شیوه را مبنای کار خود قرار داده و بازتولید می‌کرد؛ و دقیقاً به همان شکل که اشیا در جهان خارج، دارای هویت و کارکرد مشخص و یگانه برای خود هستند و در عین حال با دیگر اشیا در ارتباطی تنگاتنگ و مستقیم اند، در زبان‌های برنامه‌نویسی نیز می‌بایستی این اصول کلی برقرار می‌شد.[۲] تا به این شکل، برنامه‌نویس بتواند با بهره‌گیری از زبانی که به روش اندیشیدنش، نزدیکی بیشتری دارد، شی‌های مختلفی را تعریف نموده، این شی‌ها را در ارتباط با یکدیگر قرار داده و از شی‌های پویای تولید شده برای حل مسئله ی پیش روی استفاده نماید. امروزه اکثر زبان‌های دستوری برنامه‌نویسی از فنون شی‌گرایی پشتیبانی می‌کنند. زبان‌هایی مانند جاوا، سی پلاس پلاس(++)، سی شارپ، دلفی از جمله زبان‌های شی‌گرا هستند. حتی بسیاری از زبانهای روال گونه که ساختار برنامه‌ها در آن‌ها بلوک‌هایی با نام پروسیجر است امروزه از فنون شی‌گرایی نیز پشتبانی می‌کنند. زبان‌های سی++[۳] و پی‌اچ‌پی از این جمله هستند. هر شیء یک سری خصوصیت و قابلیت دارد، که اصطلاحاً Properties و Operation خوانده می‌شوند. در این پارادایم برنامه‌نویسی، دید برنامه‌نویس به سیستم دید شخصی است که سعی می‌نماید با پیدا کردن اشیاء مختلف در سیستم و برقراری ارتباط بین آن‌ها سیستم را تولید نماید. (مفهوم مدیریت دیداری)

لازم به ذکر است که تکنیک برنامه‌نویسی شی گرا به مراتب کارا و پیچیده تر از سبک برنامه‌نویسی مبتنی بر تابع (procedural) است.

دلایل برتری برنامه‌نویسی شی گرا :

  1. قابلیت سازمان دهی بهینه تر کدها
  2. قابلیت تقسیم برنامه به برنامه‌های کوچک تر اما مستقل. برنامهٔ اصلی به صورت یک exe در می آید که دیگر قسمت‌های مستقل برنامه را فراخوانی می‌کند (modularity).
  3. عدم نیاز به نوشتن کدهای تکراری و قابلیت‌هایی که قبلا پیاده‌سازی شده‌اند و صرف جویی در استفاده از منابع.
با این وجود، بسیاری از توسعه دهندگان سعی می‌کنند در پروژه‌های کوچک و ساده خود از سبک برنامه‌نویسی مبتنی بر تابع (procedural) بهره بگیرند.


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

 
  • تشکر
Reactions: SAEEDEH.T و Saghár✿

*KhatKhati*

مدیر بازنشسته رمان ۹۸
کاربر رمان ۹۸
  
عضویت
16/7/20
ارسال ها
2,693
امتیاز واکنش
9,215
امتیاز
233
محل سکونت
گلنمکستان
زمان حضور
63 روز 21 ساعت 58 دقیقه
نویسنده این موضوع
مفاهیم عمده
کلاس
کلاس نوع خاصی از آرایه است که امکان ذخیره و جمع‌بندی تعداد زیادی المان را (که شامل داده‌ها و توابع هستند) برای یک شی جدید فراهم آورده و تحت یک نام مشترک ذخیره می‌کند. اما بر خلاف آرایه که تنها قادر به ذخیرهٔ داده‌هایی هم جنس است، کلاس می‌تواند داده‌هایی از جنس‌های مختلف را ذخیره نماید.[۴] به‌طور مثال در نظر بگیرید که می‌خواهیم تاریخ ۱۳ نوامبر ۲۰۰۶ را که تشکیل شده از روز، ماه و سال است مورد استفاده قرار دهیم. برای این منظور سه نوع متغیر متفاوت مورد نیاز است:

int day;
String month;
int year;

حال در نظر بگیرید که نه فقط یک تاریخ، بلکه n تاریخ متفاوت مورد نیاز است. این بدان معنی ست که می‌بایستی به تعداد n بار، سه متغیر بالا، جداگانه تعریف شوند و تعریفِ تک تک و پیاپی متغیرها، نه فقط از لحاظ زمانی بسیار وقت گیر می‌نماید، بلکه از لحاظ میزان کد مورد نیاز نیز بسیار غیر عملی ست، چرا که هر بار می‌بایستی نام جدیدی برای متغیرها در نظر گرفته شود (دو متغیر متفاوت نمی‌توانند هم نام باشند).

اینجاست که کلاس‌ها به خوبی وارد عمل می‌شوند. با استفاده از کلاس‌ها می‌توان متغیرهای متعدد را زیر عنوان یک جنسیت مشترک جدید (به‌طور مثال هر سه را در یک کلاس با نام Date)، تعریف و جمع‌بندی نمود؛ و بعد از آن، بدون نیاز به تعریف مجدد روز، ماه و سال، از کلاس Date به میزان مورد نیاز استفاده کرد:[۴]

class Date{
int day;
String month;
int year;
}


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

 
  • تشکر
Reactions: SAEEDEH.T و Saghár✿

*KhatKhati*

مدیر بازنشسته رمان ۹۸
کاربر رمان ۹۸
  
عضویت
16/7/20
ارسال ها
2,693
امتیاز واکنش
9,215
امتیاز
233
محل سکونت
گلنمکستان
زمان حضور
63 روز 21 ساعت 58 دقیقه
نویسنده این موضوع
وراثت
مقالهٔ اصلی: وراثت (برنامه‌نویسی شی‌گرا)

وراثت یا ارث بری (Inheritance) از مفاهیم اساسی برنامه‌نویسی شیءگراست. هر شیء یک نمونه از یک کلاس است و هر کلاس می‌تواند از کلاس یا کلاسهای دیگری مشتق شده باشد (خواص متدها یا رویدادهای کلاس‌های دیگر را به ارث ببرد). در یک مثال ساده می‌توان اتومبیلی را در نظر گرفت که برای جلوگیری از بازنویسی خواص عمومی اتومبیل شامل: چهار چرخ، متدهای حرکت چرخ، متد چرخاندن فرمان، فرمان، بدنه، در و غیره، می‌توان یک کلاس پایه از اتومبیل ایجاد کرد سپس مثلاً برای اتومبیل سیتروئن مدل C۵ یک کلاس جدید ایجاد کرده که خواص، متدها و رویدادهای عمومی اتومبیل را داشته باشد و فقط برای خواص، متدها و رویدادهای جدید این اتومبیل کد نوشته شود. این ویژگی باعث صرفه‌جویی در نوشتن کد و تا حدودی تضمین صحت کد موجود می‌شود. به عنوان مثال اگر کلاس پایه مشکلی داشته باشد فقط کافی است کلاس پایه تغییر داده شود و در تمامی کلاس‌هایی که از این کلاس پایه ویژگی‌ای ا به ارث بـرده‌اند این تغییر اعمال خواهد شد.


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

 
  • تشکر
Reactions: SAEEDEH.T و Saghár✿

*KhatKhati*

مدیر بازنشسته رمان ۹۸
کاربر رمان ۹۸
  
عضویت
16/7/20
ارسال ها
2,693
امتیاز واکنش
9,215
امتیاز
233
محل سکونت
گلنمکستان
زمان حضور
63 روز 21 ساعت 58 دقیقه
نویسنده این موضوع
مخفی‌سازی
مقالهٔ اصلی: کپسوله‌سازی (علم رایانه)

کپسوله سازی، مخفی‌سازی (Encapsulation)، یا لفافه‌بندی، به این مفهوم اشاره دارد که باید بعضی خصوصیات یا رفتارهای شیء را از دید دیگران پنهان کرد. فرض کنید شما به عنوان یک راننده می‌خواهید اتومبیل شخصی تان را روشن کنید و به محل کارتان عزیمت کنید سوییچ را برمی‌دارید، استارت می‌زنید و با فشار آوردن به پدال‌های گاز و ترمز و چرخش فرمان و … به محل کارتان خواهید رسید. در طول این مسیر در اتومبیل شما به عنوان یک شیء اعمال مختلفی در حال انجام بود. مثلاً لنت ترمز به دیسک چرخ برخورد می‌کرد و باعث کم شدن سرعت می‌شد یا شمع‌ها شروع به جرقه زدن در زمانی بخصوصی می‌کردند. حال فرض کنید که عمل مخفی‌سازی وجود نداشت و شما مجبور بودید که جرقه زدن شمعها را کنترل می‌کردید و به سیستم سوخت‌رسانی در موقع لزوم دستور می‌دادید که سوخت را بداخل سیلندرها ارسال کند و… یا هیچ‌گاه به مقصد نمی‌رسیدید! یا سالم نمی‌رسیدید!

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


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

 
  • تشکر
Reactions: SAEEDEH.T و Saghár✿

*KhatKhati*

مدیر بازنشسته رمان ۹۸
کاربر رمان ۹۸
  
عضویت
16/7/20
ارسال ها
2,693
امتیاز واکنش
9,215
امتیاز
233
محل سکونت
گلنمکستان
زمان حضور
63 روز 21 ساعت 58 دقیقه
نویسنده این موضوع
چندشکلی
مقالهٔ اصلی: چندشکلی (علوم رایانه)

چند ریختی(Polymorphism) چند ریختی، کمیتی است که به یک رابط امکان می‌دهد تا از عملیات یکسانی در قالب یک کلاس عمومی استفاده کند. عمل خاص کلاس را ذات حقیقی شیء تعیین می‌کند. مثال ساده‌ای از چند ریختی، فرمان اتومبیل است. عمل فرمان اتومبیل برای تمام اتومبیل‌ها بدون توجه به ساز و کاری که دارند، یکسان است. فرمان برای اتومبیل که به‌طور مکانیکی کار می‌کند یا با نیروی برق یا هر چیز دیگری، عمل یکسانی را انجام می‌دهد؛ بنابراین، پس از اینکه شما عملکرد فرمان را یادگرفتید، می‌توانید فرمان هر اتومبیلی را کنترل کنید. همین هدف در برنامه‌نویسی نیز اعمال می‌شود. به‌طور کلی، مفهوم چند ریختی، اغلب با عبارت «یک رابط، چندین روش» بیان می‌شود. این بدین معنی است که امکان طراحی رابط عمومی برای گروهی از عملیات مرتبط وجود دارد. چند ریختی یا چندشکلی (Polymorphism) به این معنا است که اشیاء می‌توانند در موقعیت‌های مختلف، رفتارهای متفاوتی بروز دهند. مثلاً یک تابع در صورتی که بر روی نمونه‌ای از کلاس آ فراخوانی شود، رفتار ب را بروز دهد در حالی که اگر بر روی کلاس ج (که فرزند کلاس آ است) فراخوانی شود، رفتاری متفاوت انجام دهد.

انتزاع / تجرید
نوشتار اصلی: تجرید (رایانه)
به این معنا است که بخشی از یک موجودیّت یک مفهوم را که میان همهٔ وارثان مشترک است، پیش تعریف کنیم. این توانایی منجر به داشتن نگاه مشابه به موجودیّت‌های مشابه می‌گردد.


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

 
  • تشکر
Reactions: SAEEDEH.T و Saghár✿

*KhatKhati*

مدیر بازنشسته رمان ۹۸
کاربر رمان ۹۸
  
عضویت
16/7/20
ارسال ها
2,693
امتیاز واکنش
9,215
امتیاز
233
محل سکونت
گلنمکستان
زمان حضور
63 روز 21 ساعت 58 دقیقه
نویسنده این موضوع
یک مثال کاربردی
در اطراف ما اشیاء زیادی وجود دارد و می‌توان تمام مفاهیم موجود در طبیعت را با اشیاء تقلیل داد. مثلاً یک ماشین باربری. این ماشین یک سری خصوصیات دارد: چهار چرخ، یک پدال ترمز، یک پدال گاز، یک فرمان و یک محل بزرگ برای قرار دادن اشیاء در آن و… این ماشین در صورتی که ما پدال گاز آن را فشار دهیم، حرکت می‌کند. در صورتی که فرمان آن را بچرخانیم تغییر مسیر می‌دهد. پس این شیء علاوه بر یک سری خصوصیات، یک سری رفتار مشخص هم به ما نشان می‌دهد؛ ولی فقط این یک ماشین نیست که این کار را انجام می‌دهد. تمامی ماشین‌ها این کارها را انجام می‌دهند. پس می‌توانیم این ماشین را 'تعریف' کنیم و بگوییم:

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

مفاهیم فوق در زبان‌های برنامه‌نویسی شیءگرا گنجانده شده‌اند. در این زبان‌ها، اشیاء زیادی از پیش وجود دارند که برنامه‌نویسان می‌توانند از آن‌ها استفاده کنند.


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

 
  • تشکر
Reactions: SAEEDEH.T و Saghár✿

*KhatKhati*

مدیر بازنشسته رمان ۹۸
کاربر رمان ۹۸
  
عضویت
16/7/20
ارسال ها
2,693
امتیاز واکنش
9,215
امتیاز
233
محل سکونت
گلنمکستان
زمان حضور
63 روز 21 ساعت 58 دقیقه
نویسنده این موضوع
ارتباط اشیاء
مجدداً به مثال ماشین باربری بر می‌گردیم و این بار، یک ماشین سواری را تعریف می‌کنیم. ماشین سواری شیئی است که چهار چرخ، یک ترمز، یک پدال گاز و یک صندوق عقب دارد. این تعریف به تعریف ماشین باربری بسیار شبیه‌است. به عبارت دیگر ما به یک تعریف جدید می‌رسیم: خودرو. خودرو وسیله‌ای است که چهار چرخ، یک ترمز، یک پدال گاز دارد. پس از این به بعد تعریف ماشین باربری و ماشین سواری خیلی ساده‌تر می‌شود.

ماشین باربری، خودرویی است که محلی برای قرار دادن بار داشته باشد و ماشین سواری خودروییاست که صندوق عقب داشته باشد.

  • اگر کسی به درب کارخانه مراجعه کند و بگوید که 'خودرو' می‌خواهد، چیزی دریافت نمی‌کند. خودرو یک تعریف انتزاعی است، برای تعریف خودرو شیء وجود ندارد پس مشتری تنها می‌تواتند ماشین باربری یا ماشین سواری بخواهد.
  • کارواش را در نظر می‌گیریم. این کارواش خودرو را تمیز می‌کند و دیگر به‌طور جزئی عنوان نمی‌کند که کدام نوع خودرو را تمیز می‌کند. به عبارت دیگر نوع خودرو برای کارواش مهم نیست.
  • وقتی شخصی قصد اجاره خودرویی دارد، و می‌خواهد جنـ*ـسی را حمل کند در هنگام تماس با متصدی کرایه ماشین می‌گوید: «اگر خودرو شمااز نوع باربری است، برای من ارسال کنید»، ولی اگر قصد جابجا شدن را دارد می‌گوید: «برای من یک ماشین سواری بفرستید.»
در زبان‌های برنامه‌نویسی شیءگرا نیز اشیاء مختلفی وجود دارند که تعریف آن‌ها تکمیل‌کننده یکدیگر است، به عبارت دیگر اشیا از یکدیگر ارث بری می‌کنند. برخی از تعاریف کاملاً عام است و نمی‌توان از آن‌ها نمونه شیئی ساخت و تنها تعریف هستند. به این تعاریف Interface گفته می‌شود.


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

 
  • تشکر
Reactions: SAEEDEH.T و Saghár✿

*KhatKhati*

مدیر بازنشسته رمان ۹۸
کاربر رمان ۹۸
  
عضویت
16/7/20
ارسال ها
2,693
امتیاز واکنش
9,215
امتیاز
233
محل سکونت
گلنمکستان
زمان حضور
63 روز 21 ساعت 58 دقیقه
نویسنده این موضوع
کلاس (برنامه‌نویسی)

در مهندسی نرم‌افزار و مهندسی دانش کلاس نقشهٔ نوعی و مشترک برای گروهی از اشیاء[۱] است که ویژگی‌های[۲] مشترکی داشته، و رفتارهای مشترکی از خود نشان می‌دهند. درواقع، کلاس‌ها انواعی هستند که شخص برنامه‌نویس، خود می‌تواند، آن‌ها را برای حل مسئله‌های دنیای واقعی طراحی کند، و حاوی تعریف‌های لازم برای دو عنصر اساسی زیر می‌باشند:

  • داده‌ها، یا صفات
  • عملیات، یا روش‌ها
اشیاء نمونه‌هایی هستند که به هنگام اجرا از روی نقشهٔ ارائه شده به‌وسیلهٔ کلاس ایجاد می‌شوند. می‌توان گفت همان‌طور که متغیر نمونه‌ای از انواع اولیه است، شیء نمونه‌ای از کلاس است. (۱)

یک کلاس، یک مفهوم بسط‌یافته از ساختمان است که به جای این که، فقط داده‌ها را نگه‌داری کند، می‌تواند هم داده‌ها و هم توابع را با هم نگه‌داری کند[۳].

[1]. class

برنامه‌نویسی شیءگرا، داده‌ها (خواص) و متدها (رفتارها) را در بسته‌هایی به نام کلاس محصور می‌کند.[۴] کلاس‌ها دارای خاصیت کپسوله سازی[۴] هستند. این بدان معناست که اشیاء می‌دانند که چگونه از طریق رابط‌های تعریف‌شده با یکدیگر ارتباط برقرار کنند. معمولاً، اشیاء نباید از چگونگی پیاده‌سازی اشیاء دیگر مطلع باشند، به‌عبارت دیگر، جزئیات پیاده‌سازی در داخل خود اشیاء پنهان شده‌اند.

مثال: رانندگی خودرو بدون اطلاع از خصوصیات طرز کار داخلی موتور و سیستم‌های اگزوز و جعبه‌دنده امکان‌پدیر است. در مهندسی نرم‌افزار ضرورت پنهان‌سازی اطلاعات امری بسیار مهم هست. [نیازمند منبع]

در زبان‌های رویه‌ای[۵] برنامه‌نویسی، مثل زبان سی (C)، برنامه‌نویسی، بیشتر عملگرایانه[۶] است. درحالی‌که، زبان‌های برنامه‌نویسی سی‌پلاس‌پلاس (++C)، جاوا (Java)، و سی‌شارپ (#C) دارای پارادایم شیءگرایانه هستند. واحد برنامه‌نویسی در زبان‌های رویه‌ای تابع است، ولی، زبان‌های شی گرا دارای کلاس‌ها - که اشیاء نهایتاً از آنها ایجاد می‌شوند (یا اصطلاحاً نمونه‌سازی می‌شوند) - به عنوان واحد برنامه‌نویسی هستند. توابع نیز در داخل کلاس‌ها به عنوان متدهایی پیاده‌سازی می‌شوند.

برنامه‌نویسان C بیشتر بر روی نوشتن توابع متمرکز هستند. گروه‌هایی از اعمال که وظیفهٔ خاصی را بر عهده دارند، توابع را تشکیل می‌دهند و توابع گروه شده و برنامه را تشکیل می‌دهند. البته در زبان c داده‌ها نیز مهم هستند، اما نگرش اصلی در اینگونه زبان‌ها این است که داده‌ها بیشتر برای پشتیانی اعمالی که توابع انجام می‌دهند به کار می‌روند.


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

 
  • تشکر
Reactions: SAEEDEH.T و Saghár✿
shape1
shape2
shape3
shape4
shape7
shape8
بالا