Object در سی شارپ

Object در سی شارپ

Object

در DataType Object هر نوع متغیر یا مقدار ثابت از هر نوع DataType را ذخیره می نماییم مثلاً در Object می توانیم متغیر int ، String ، Double، Class ، Film ، image و..... ذخیره نماییم آخرین مقدار ذخیره شده جایگزین مقدار قبلی می شود ولی نوع متغیر همان Object می باشد.

نکته
جهت تشخیص Type درونی متغیر Object از if استفاده می شود.

Object-Oriented Designing Developing

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

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

اکنون می توانیم سیستم را تعریف کنیم سیستم به مجموعه اشیاء تعریف شده و ارتباط میان آن ها می باشد به این ارتباط پیام رسانی یا Messaging گفته می شود.

در Messaging یک شی متد های درون اشیاء دیگر را فراخوانی نموده و استفاده می کند در این حالت توانسته ایم یک مدل کامل تر نسبت به سیستم ساخت یافته ارائه دهیم به این کار Modeling گفته می شود. پس از ایجاد مدل از طریق یک زبان برنامه نویسی شی گرایی انتخاب نموده و اشیاء را پیاده سازی می کنیم.

نحوه پیاده سازی اشیاء

هر Object به یک کلاس تبدیل می گردد یعنی توسط کلاس می توانیم Objectها را پیاده سازی کنیم.
Objectها به سه بخش تقسیم می شوند:

خصوصیات Property

عملکرد Action

وضعیت Stat

خصوصیت ها می توانند خصیصه های یک شی را تعریف نمایند خصیصه ها جهت تعریف ظاهری قابلیت ها یا مفاهیم یک شی تعریف می شوند مثلاً خصوصین های شی Studet: نام ، نام خانوادگی ، شماره دانشجویی ، سال تولد ،رشته تحصیلی ، کد ملی و...

پس از شناسایی Objectو تعریف خصوصیت ها به ازاء هر Objectیک Classدر یک فایل مستقل ایجاد می کنیم
جهت تعریف خصوصیت ها می توان از متغیر استفاده نماییم به متغیرهایی که درون یک کلاس به صورت globalتعریف شده اندField گفته می شود.
کلاس یک تعریف می باشدبنابراین هیچ حافظه ای اشغال نکرده قابل استفاده نیست ، برای آنکه بتوانیم از یک کلاس استفاده نماییم باید یک نمونه (متغیر) از کلاس تعریف نماییم به که instance object گفته می شود.

Class Name instance =new Class Name();

New سبب می شود که در حافظه heepکلاس و اجزاء درون آن ذخیره گردند حافظه heep بزرگترین حافظه جهت ذخیره متغیر می باشد.

یک اشاره گر به نام instance در حافظه Stac ایجاد می گردد که به متغیر classدر حافظه heep اشاره می کند از این رو به آن ClassReferencetype گفته می شود.

جهت دسترسی به فیلد های درون یک instance پس ازنام instance نقطه(.)قرار داده پس می توانید در پنجره instanceفیلد های درونی را مشاهده نمایید.

Accesslevelormodifier

به صورت پیش فرض تمام فیلد ها در یک کلاس مخفی یا Privateمی باشند تا بتواند امنیت کلاس را تأمین کند در این حالت فیلد ها از بیرون کلاس قابل دسترس نمی باشند به دلیل اهمیت این موضوع اگر کلمه Privateجلوی متغیر قرار نگیرد به صورت پیشفرض Private خواهد بود اگر Access level را Public قرار دهیم فیلدها در خارج از کلاس قابل دسترس خواهند بود.

اگر بعد از () آکولاد باز وبسته قرار دهیم می توان متغیر های یک کلاس را درون آکولاد مقدار دهی initialize کرد.



نظرات کاربران



عبارت امنیتی : حاصل 1 × 1 می شود :
متن پیام :