نماد سایت تیک۴

مقدمه ای بر مبحث شی گرایی

جاوا اسکریپت، یک زبان برنامه نویسی شی گرایی یا ( Object Oriented Programming ) است . این زبان به برنامه نویس ، قابلیت استفاده از اشیای پیش ساخته و یا تعریف و ایجاد اشیای جدید مورد نیاز خود را می دهد.

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

مفهوم کلاس:

کلاس ( class )، اساسی ترین مفهوم شی گرایی است . یک کلاس یک الگو یا چهارچوب از پیش تعریف شده است که اشیا ( objects ) از روی آن ساخته می شوند . هر کلاس مجموعه ای از خواص ( Properties ) و متدها ( Methods ) است ، که کلاس آنها را به اشیایی که از رویش ساخته می شوند ، به ارث می دهد.

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

مثال ۲ : متغیرهای متنی یا string ، یکی از کلاس های پیش ساخته در جاوا اسکریپت است . در قسمت بعد با تمام خواص و متدهای آن آشنا خواهید شد.

مفهوم شی:

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

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

مثال : برای مثال ، هر دانشجو که از روی کلاس دانشجو ایجاد می شود ، دارای خاصیت های نام ، نام خواندگی ، شماره دانشجویی و … غیره مخصوص به خود است . گرچه مقدار این خواص در نمونه های مختلف دانشجوها ممکن است در برخی از آنها مثل نام یکسان و در برخی مثل شماره دانشجویی یکتا باشد ، ولی مقدار آن برای هر دانشجو جدا و متمایز است.

مفهوم متد:

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

مثال: برای مثال هر دانشجو که از روی کلاس دانشجو ساخته می شود ، دارای عملیات های یکسانی مثل ثبت نام ، انتخاب واحد و … است.

نحوه تعریف یک کلاس و ایجاد یک شی جدید در جاوا اسکریپت :

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

برای ایجاد یک کلاس ، از واژه کلیدی function به شکل کلی زیر استفاده می شود:

function  نام کلاس   ( Parameter1 , Parameter2 , ... )

  {

     this.نام خاصیت ۱  =  Parameter1 ;

     this.نام خاصیت ۲  =  Parameter2 ;

    .

    .

    .

  }

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

سپس در بدنه دستورات کلاس برای تعریف و مقدار دهی هر یک از خواص اشیای کلاس ، از وایه کلیدی this به شکل کلی زیر استفاده می شود:

this.نام پارامتر = نام خاصیت

واژه کلیدی this ، در هر لحظه به شی جاری از کلاس که در آن لحظه در حال ساخت یا ویرایش است ، اشاره می کند.

پس از تعریف ساختار کلاس ، برای ایجاد یک شی جدید از حالت کلی زیر استفاده می شود :

var نام شی جدید = function نام کلاس ( Parameter1 Value , Parameter2 Value , … ) ;

برای دسترسی و مقدار دهی هر یک از خواص یک شی از روش کلی زیر استفاده می شود :

نام خاصیت . نام شی

مثال: در مثال زیر یک کلاس به نام student ایجاد کرده ایم . هر شی این کلاس ۳ خاصیت نام ( Name ) ، نام خواندگی ( Family ) و شماره دانشجویی ( ID ) را خواهد داشت . در هنگام فراخوانی کلاس برای ایجاد یک شی جدید ، مقادیر این ۳ خاصیت به ترتیب به پارامترهای n , f و i ارسال خواهند شد.

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

<script type ="text/javascript">

  function Student ( n , f , i )

    {

      this.Name = n ;

      this.Family = f ;

      this.ID = i ;

    }

  var St1 = new Student ( "Mehrdad" , "Fattahi" , 122092 ) ;

  document.write ( "Name :" + St1.Name +"<br />");

  document.write ( "Family : " + St1.Family +"<br />");

  document.write ( "Studnet ID : " + St1 .ID +"<br />" );

  St1.ID = 299302 ;

  document.write ( "New Student ID : " + St1.ID ) ;

</script>
خروج از نسخه موبایل