سلام.
می خواستم بدونم چه موقع باید یک متد رو در یک کلاس به صورت static تعریف کنیم و چه موقع به صورت instance؟
ممنون.
Printable View
سلام.
می خواستم بدونم چه موقع باید یک متد رو در یک کلاس به صورت static تعریف کنیم و چه موقع به صورت instance؟
ممنون.
وقتي متد رو به صورتinstance تعريف ميكنيد يعني به ازاي هر نمونه اي از آن كلاس كه New ميكنيد يك نمونه از آن متد هم ساخته ميشود ولي وقتي به صورت static تعريف كنيد به ازاي نمونه هاي مختلف از ان كلاس فقط همان متد وجود دارد،بسته به كاربرد ميتوان static یا instance تعريف كرد.اگر به صورت static تعريف كنيد متغيرهاي متد بايد static باشند
دوست عزیز. این مطالب رو بنده می دونستم. این "بسته به کاربرد" رو برای بنده تفسیر بفرمایید.
فرض کنید کلاسی داریم با عنوان Customer. اگر من متدی با نام AddCustomer رو یا به صورت static و یا به صورت instance تعریف کنم کنم، در هر دو حالت چه فرقی میکنه؟ آیا تنها فرق اینه که در حالت static نیاز به new کردن از کلاس Customer نیست؟ فرق دیگه ای از هر لحاظ وجود نداره؟ اگر فرقی وجود نداره پس چه موقع یک متد باید static و چه موقع باید instance باشه؟
ممنون.
متد AddCustomer کجاست؟ تو کلاس Customer؟
بله. در کلاس Customer هست.
درست یک پست قبل جواب سوالتان را داده ام:
اگر AddCustomer به صورت استاتیک باشد همه اشیاء میتوانند از آن استفاده کنند اما اگر instant باشد، هر شیء متد خودش را خواهد داشت و اشیاء دیگر به آن دسترسی نخواهند داشتنقل قول:
زمانی که میخواهید یک فیلد را بین چند شیء مختلف به اشتراک بگذارید ==> static
زمانی که میخواهید یک فیلد برای هر شیء منحصر به فرد بوده و داده اختصاصی خودش را داشته باشد ==> instant