مفاهیم اساسی شیء گرایی:
اشیاء (objects)
کلاس ها (classes)
چکیده اطلاعات و با هم قرار دادن اطلاعات (data abstraction and encapsulation)
وراثت ( inheritance)
چندشکلی بودن (polymorphism)
پیغام رسانی (messaging)
اشیاء (objects):
اشیاء آیتم هایی واقعی یا منطقی (real/logical) هستند که شامل اطلاعات ( داده یا مشخصات) برای تعریف خود شیء و متدهایی (functions) که قادر به بکار انداختن آن اطلاعات هستند، می باشند. در نتیجه اشیاء ترکیبی از اطلاعات و متدها هستند.
کلاس ها (classes):
کلاس مجموعه ای از اشیاء است که از یک نوع هستند (مجموعه ای از اشیاء هم نوع)
کلاس، الگو یا template یا blueprint ، مورد استفاده دسته ای از آیتمها قرار می گیرد که دارای ساختاری یکسان هستند. آیتمهایی که با استفاده از کلاس ایجاد می شوند، instance (نمونه) نامیده می شوند.
کلاس مجموعه ای است که شامل الگو و نیز مکانیزمی برای ایجاد آیتم ها بر اساس همان الگو می باشد.
کلاس مجموعه ای از تمام آیتم های ایجاد شده با استفاده از یک الگو و نمونه مشخص می باشد.
کپسول کردن (کنار هم قرار دادن اطلاعات در محیطی بسته) اطلاعات (encapsulation):
در اصطلاح به بسته بندی کردن اطلاعات و توابع در یک واحد انفرادی (کلاس)، encapsulation می گویند.
بسته بندی اطلاعات یکی از مهمترین خواص کلاس است. اطلاعات کپسول شده قابل دسترس توسط دنیای خارج از کپسول نیستند و فقط توابعی که با همین اطلاعات درون کلاس بسته بندی (پیچیده) شده اند قابلیت دسترسی به آنها را دارند. این توابع واسطه ای میان اطلاعات شیء و برنامه فراهم می کنند. به عمل جداسازی اطلاعات از بقیه قسمتهای کد، کپسول کردن (بسته بندی) اطلاعات (data encapsulation) گفته می شود.
چکیده اطلاعات ( data abstraction):
چکیده اطلاعات به بیان موارد و امکانات ویژه اشیاء، بدون در نظرگرفتن جزییات و توضیحات، می پردازد.
چکیده یا خلاصه اطلاعات، توسط کلاس ها مورد استفاده قرار می گیرند.
عمل خلاصه کردن یا چکیده کردن اطلاعات، لیستی از مشخصات خلاصه شده مثل: سال، هزینه، وزن و … را فراهم می کند و توابعی برای به راه انداختن این خواص، تعریف می کند. این چکیده ها تمام مشخصات ضروری اشیاء را در خود نگه می دارند.
وراثت (Inheritance):
وراثت ویژگی ای است که از طریق آن، یک کلاس بوسیله کلاسی دیگر با قرار دادن متدها و/یا متغیرهای اضافی، گسترش می یابد. به عبارتی به ارث بردن متدها و متغیرهای اضافه کلاسی از کلاس دیگر. کلاس اولیه (اصلی)، فوق کلاس (super class) نامیده می شود و کلاس گسترش یافته (وارث)، زیر کلاس (subclass) نامیده می شود.
چون subclass شامل تمام اطلاعات و متدهای super class بعلاوه منابع اضافی می باشد، بنابراین خاص تر و کاملتر است.
چند شکلی بودن (polymorphism):
چند شکلی بودن یکی از مهمترین مفاهیم O.O.P (برنامه نویسی شیء گرا) است. پلی مورفیسم یک کلمه یونانی است که به معنای” قابلیتِ بیشتر از یک فورم را داشتن” می باشد. مثلا یک عمل ممکن است رفتارهای متفاوتی برای نمونه های متفاوت ارائه دهد. رفتارها بستگی دارد به نوع داده هایی که در عملکرد (operation) استفاده شده است.
فرآیندی که باعث می شود که یک عملگر (operator) رفتارهای متفاوتی در مورد نمونه های متفاوت داده ارائه دهد، operator overloading ( بیش از حد کار کشیدن از عملگر) نامیده می شود.
پیغام رسانی (messaging):
یک سیستم شیءگرا شامل مجموعه ای از اشیاء است که با یکدیگر در ارتباطند. روند سیستم شیءگرا شامل مراحل اصلی زیر می باشد:
ایجاد کلاس ها به همراه داده ها، به عبارتی تعریف اشیاء و متدها و عملکرد متدها
ایجاد اشیاء برای کلاس ها
ایجاد ارتباط در میان اشیاء
اشیاء از طریق ارسال و دریافت پیغام با یکدیگر ارتباط بر قرار می کنند، دقیقا همانطور که مردم به یکدیگر پیام می دهند.
یک پیام برای شیء، درخواستی برای اجرای یک متد است و در نتیجه یک متد، در شیء دریافت کننده پیام، بکار گرفته می شود تا نتیجه مورد نظر را حاصل کند.
دیدگاهها بسته شدهاند.