فصل 12: مفاهیم برنامه نویسی شی گرا و قواعد نام گذاری در جاوا

23 مرداد 1397
java-oop

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

Simula اولین زبان برنامه نویسی شی گرا محسوب میشود. به الگوی برنامه نویسی که همه چیز یک شی به حساب می آید، زبان برنامه نویسی تماما شی گرا می گویند.

Smalltalk به عنوان اولین زبان برنامه نویسی تماما شی‌گرا شناخته می شود.

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

هدف اصلی الگوی برنامه نویسی شی گرا این است که مفاهیمی همچون کلاس، وراثت، شی، انتزاع و چندریختی را همانند دنیای واقعی پیاده سازی کرد.

OOPs (سیستم برنامه‌نویسی شی‌گرا)

شی یا Object یک جسم در دنیای واقعی همانند خودکار، صندلی، میز، کامپیوتر و غیره می باشد. برنامه نویسی شی‌گرا الگویی برای طراحی برنامه با استفاده از کلاس و اشیا است. الگو مذکور توسعه و نگهداری نرم‌افزار را با ارائه مفاهیم زیر ساده سازی می کند.

  • شی
  • کلاس
  • وراثت یا Inheritance
  • چندریختی یا Polymorphism
  • انتزاع یا Abstraction
  • کپسوله‌سازی یا Encapsulation

شی

هر جسم یا نهادی که دارای رفتار و وضعیت باشد، شی گفته می شود. برای مثال صندلی، خودکار، میز، کیبرد و دوچرخه. شی میتواند فیزیکی یا منطقی باشد.

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

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

کلاس

مجموعه‌ای از اشیا را کلاس می نامند. کلاس یک ماهیت منطقی است.

در واقع می توان کلاس را همچون الگویی دانست که می توان بی‌شمار شی از آن تولید کرد. کلاس فضایی اشغال نمی کند.

وراثت

وقتی یک شی تمام وضعیت و رفتار یک شی والد را دریافت می کند، از مفهوم وراثت استفاده شده است. وراثت باعث میشود که کد تکراری نوشته نشود و به چندریختی در زمان اجرا دست پیدا کرد.

چندریختی

اگر یک کار را بتوان به شکل های گوناگون انجام داد، به عنوان چندریختی شناخته می شود. به عنوان مثال برای کشیدن یک شی یا راضی کردن مشتری‌ها چندین روش وجود دارد.

در جاوا از مفاهیمی همچون Overload و Override برای دستیابی به چندریختی استفاده می شود.

انتزاع

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

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

کپسوله سازی

اتصال یا بسته‌بندی کد و دیتا کنار هم به گونه‌ای که یک واحد را تشکیل دهند را کپسوله سازی می گویند. مانند کپسول که داروهای مختلفی را داخل خود دارد.

کلاس جاوا مثالی از کپسوله سازی‌ست. جاوا بین (Java bean) از آنجایی که تمام اعضای آن خصوصی می باشند، یک کلاس تماما کپسوله‌سازی‌ شده است.

مزایای برنامه‌نویسی شی‌گرا نسبت به برنامه‌نویسی رویه‌ای

1- برنامه‌نویسی شی‌گرا توسعه و نگهداری کد را راحت‌تر میکند در حالی که با بزرگ شدن پروژه، کنترل کد در برنامه نویسی رویه‌ای کار ساده ای نیست.

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

در ادامه نمایش داده در زبان‌های برنامه‌نویسی شی‌گرا و رویه‌ای را می‌بینید.

 

تفاوت زبان‌های شی‌گرا و مبتنی بر شی (Object-Based)

زبان‌های مبتنی بر شی تمامی ویژگی های زبان‌های شی گرا را دارا می باشد غیر از وراثت. جاوا اسکریپت و VBScript از جمله این زبان‌ها می باشند.

مفاهیمی از شی‌گرایی که خواهیم آموخت:

  • مزایای شی‌گرایی
  • روش های نام‌گذاری
  • شی و کلاس
  • اورلود متد
  • کانستراکتر یا سازنده ها (Constructor)
  • کلمه کلیدی استاتیک
  • کلمه کلیدی this
  • وراثت
  • تجمع یا Aggregation
  • اورراید متدها
  • نوع بازگشت هم‌وردایی (Covariant Return Type)
  • کلمه کلیدی Super
  • بلوک آغازگر نمونه (Instance Initializer block)
  • کلمه کلیدی final
  • کلاس انتزاعی
  • اینترفیس
  • چندریختی در زمان اجرا
  • اتصال دینامیک و استاتیک
  • استفاده از اپراتور instanceof
  • پکیج
  • مشخص کنندگان سطح دسترسی
  • کپسوله سازی
  • کلون کردن شی (Object cloning)

قواعد نام‌گذاری در جاوا

از روش های نام‌گذاری برای نام گذاری کلاس ها، اشیا، متدها و ثابت‌ها استفاده می شود.

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

مزایای استفاده از قواعد نام‌گذاری

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

نام سنت
کلاس با  حرف  بزرگ آغاز می شود و اسم است مانند: String، Button، System
اینترفیس با حرف بزرگ آغاز می شود و باید صفت باشد مانند: Runnable، Remote و ActionListener
متد باید با حرف کوچک شروع شود و فعل باشد: actionPerformed,main,print,println
متغیر با حرف کوچک آغاز می شود: firstName، orderNumber
پکیج با حروف کوچک نوشته میشود: util، lang، java
ثابت با حروف بزرگ نوشته میشوند: RED، MAX_PRIORITY

استفاده از قاعده نام‌گذاری CamelCase

در جاوا از سینتکس نام گذاری CamelCase برای متغیرها، کلاس‌ها و متدها استفاده می شود.

در صورتی که اسم شامل چندین کلمه باشد، کلمات دوم به بعد حتما با حرف بزرگ آغاز می شوند مانند: ActionPerformed، firstName و ActionListener

 

نویسنده شوید

دیدگاه‌های شما

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.