۱۳۸۹ اردیبهشت ۲۶, یکشنبه

مقدمه ای بر کلاس ها و اشیاع (ترجمه درس های Fred Swartz)

اهداف این درس
کلاس ها شامل اطلاعات و متد ها هستند.
یک کلاس یک نوع داده را تعریف می کند.
مزیت: کلاس ها مرتبط با مفاهیم در قلمرو مسئله هستند.
مزیت: کلاس ها باعث کاهش پیچیدگی بوسیله افزایش ارتباط و کاهش جفت شوندگی می شوند.
معرفی کلاس ها به عنوان ذخیره سازی اطلاعات در اشیاع .
واژه نامه
متغیر نمونه Instance variable : متغیری که در داخل کلاس ولی در خارج از متد اعلان می شود. معمولآ private.
میدان Field: مترادف متغیر نمونه ، صفت - وازه ی غیر رسمی ولی متداول.
ویژگی
Attribute: مترادف متغیر نمونه ، میدان . اغلب در مرحله طراحی به کار می رود.
ویژگی
Property: مترادف متغیر نمونه ، میدان. واژه ای متداول است اگر میدان به صورت public شناخته شود.

مفاهیم برنامه نویسی شیء گرا:
کلاس = اطلاعات + متد ها. هر چیزی ( اطلاعات و متد ها در جاوا در کلاس ها قرار داده می شوند. در گذشته هم ما از کلاس ها برای نگهداری متد ها استفاده کردیم ( متد main و شاید چند متد استاتیک دیگر) . این متد ها از متغیر های محلی استفاده می کنند، که کاملآ اختصاص به متد دارند ( private هستند) و وقتی متد بر می گردد آنها ناپدید می شوند.

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


یک کلاس قالبی است که تعیین می کند که یک شی چه ویژگی هایی می تواند داشته باشد. شما ابتدا یک کلاس تعریف می کنید سپس با استفاده از لغت کلیدی new یک شی ایجاد می کنید. یک کلاس تعیین می کند چه میدان هایی یک شی خواهد داشت زمانی که آن را ایجاد می کنیم.
وقتی یک شی جدید ایجاد می شود یک بلوک از حافظه به آن اختصاص می یابد که به اندازه کافی بزرگ است تا این سه میدان را در بر گیرد.
برای ایجاد یک شی جدید از عبارت new استفاده می کنیم و به دنبال آن نام کلاس و به دنبال آن پرانتز قرار می گیرد.

مقادیر پیش فرض میدان ها (متغیر های نمونه) null, zero, false
بر خلاف متغیر های محلی در متد ها، متغیر های نمونه مقادیر پیش فرض دارند. (مثل مقادیر پیش فرض در آرایه ها). اشیاع null ، اعداد zero و مقادیر بولی false هستند.
دسترسی عمومی به میدان ها (فیلد ها ، متغیر های نمونه) با نقطه ، نشان گذاری
همه میدان های عمومی می توانند با نقطه نشان گذاری قابل دسترس شوند ( در آینده روش های بهتری خواهیم آموخت)
برای ارجاء یک میدان ، نام شی را بنویسید سپس نقطه بگذارید و نام فیلد را بنویسید.

تعیین یک کلاس قالبی است برای ایجاد اشیاع:
یک کلاس تعیین می کند که کدام میدان های یک شی در آن است. شما به عبارت new احتیاج دارید تا یک شی جدید در کلاس بسازید تا مقداری از حافظه به آن اختصاص یابد و یک مقدار به هی میدان واگذار شود.