PDA

نسخه کامل مشاهده نسخه کامل : صفت استاتيك و متد استاتيك



mnss
25-04-2008, 22:54
سلام دوستان.
صفت استاتيك و متد استاتيك چيست؟ نمونه هاي واقعي از آن را در برنامه ها مثال بزنيد.

martin_superhuman
26-04-2008, 12:47
سلام دوست عزیز
کلا اجزای استاتیک (متدها، خاصیتها و ...) برای استفاده نیاز به نمونه سازی ندارند.
یعنی وقتی شما مثلا یک متد را در یک کلاس به صورت Static تعریف کنید، برای دسترسی به آن نیازی به نمونه سازی آن کلاس ندارید و میتوانید با استفاده از نام آن کلاس به متد دسترسی داشته باشید. در مثال زیر یک کلاس رو می بینید که یک متد استاتیک و یک متد معمولی در اون تعریف شده. بعد هم که طریقه دسترسی به این متد رو می بینید(کدها به زبان سی شارپ است). متد Write1 بدون نیاز به نمونه سازی و با استفاده از نام کلاس قابل دسترسی است اما متد Write2 برای استفاده حتما باید کلاس را نمونه سازی کنید :




برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

mnss
28-04-2008, 21:33
ممنوناز راهنماييتون.
ممكنه مثال هاي كاربردي بزنيد. مثلا در يك سيستم ثبت نام كجا از متد يا صفت استاتيك استفاده مي شه؟ يه نمونه واقعي از كاربرد.

martin_superhuman
30-04-2008, 01:14
ممنوناز راهنماييتون.
ممكنه مثال هاي كاربردي بزنيد. مثلا در يك سيستم ثبت نام كجا از متد يا صفت استاتيك استفاده مي شه؟ يه نمونه واقعي از كاربرد.

متدهای Static به طور مستقیم از کلاس قابل دسترسی هستند درحالی که متدهای Non-Static (که متدهای نمونه هم گفته میشن) فقط از یک نمونه از آن کلاس قابل دسترسی هستند.
در OOP ، متغیرهای Static برای مقادیری که با متغیرهای نمونه قادر به ذخیره آنها نیستیم استفاده می شود.
برای مثال : فرض کنید میخواین یک شمارنده برای تعداد نمونه های ایجاد شده به وسیله یک کلاس داشته باشید. به نظرتون ذخیره این مقدار در یک عضو نمونه امکان پذیره؟
متدها هم مثل مورد بالا باید در مواردی استفاده بشن که با یک متد نمونه امکان پذیر نیست.
یه نکته دیگه این که مقادیر در یک متغیر Static تا پایان برنامه پایدار هستند ولی در یک متغیر non-Static مقادیر محدود به تابع یا حلقه ای هستند که در آن تعریف شده اند.
به هر حال اینکه از کدوم استفاده بشه بستگس به شرایط داره و این که ببینید کدوم بیشتر در اون موقع بدرد میخوره.

موفق باشید