نمایش نتایج 1 تا 5 از 5

نام تاپیک: فهم دقیق استفاده از متد های Static

  1. #1

    فهم دقیق استفاده از متد های Static

    سلام

    دلیل استفاده از متد های static چیه ؟ دوستان من تعریف متد های static رو کاملا می دونم ولی فقط می خوام و می دونم که در سطح کلاس تعریف می شن و نه در سطح شی . بذارین با یک مثال مشکلم رو بگم :

    کلاس Arry رو در نظر بگیرید . این کلاس یک متد static به نام Copy داره که اجازه می ده که محتویات یک آرایه رو در آرایه دیگه کپی کنیم . به صورت زیر

    Array.Copy(arrytest1, arrytest2, 3);


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

    arrytest1.CopyTo(arrytest2, 1);


    خوب حالا سئوال من اینه که وقتی می تونیم از طریق متدهای معمولی چنین عملیاتی رو پیاده سازی کنم ، چه دلیلی داره که از متد های Static استفاده بشه ؟

  2. #2

    نقل قول: فهم دقیق استفاده از متد های Static

    سلام
    یادمه اولین باری که مفهوم درست static رو یاد گرفتم وقتی بود که کار با پایگاه داده در برنامه نویسی رو یاد گرفتم. یادم اومد که وقتی استاد می خواست قبل از آموزش دادن پایگاه داده یک کتابخونه برامون پیاده سازی کنه، ورداشت لیست امانات و لیست کتابها و لیست افراد رو با static تعریف کرد. می دونی چرا؟ چون اولا برای هر شیئ که از این کلاس تولید کنی باید مقادیر ثابت باشن. مشخصه که لیست امانتها و اینکه چه کتابی به امانت رفته یا چه شخصی کتاب امانت گرفته یا نه باید همیشه در هربار استفاده از کتابخونه ثابت بمونه دیگه. بنابراین اونجا از static استفاده کرد.
    static یعنی هرجا بخوای به متغیر اون کلاست بدون اینکه ازش شیئ بوجود بیاری دسترسی داری. این می دونی کجا ها ارزش خودشو بیشتر نشون می ده(از نظر بنده). اونجایی که بخوای یه جایی تویه فرم مشخصات یک شیئ رو بگیری تویه فرم دیگه جای دیگه از برنامه ازش استفاده کنی. اما باید مواظب باشی که همین کار موجب اشتباهات دیگه نشه. چون هر شیئ دیگه ای بوجود بیاری از اون کلاس اگه مقدار دهی اولیه به اون متغیر static نکنی مقدارش همونیه که دفعه قبلش دادی.

    موفق باشی

  3. #3

    نقل قول: فهم دقیق استفاده از متد های Static

    نقل قول نوشته شده توسط maktoom مشاهده تاپیک
    سلام
    یادمه اولین باری که مفهوم درست static رو یاد گرفتم وقتی بود که کار با پایگاه داده در برنامه نویسی رو یاد گرفتم. یادم اومد که وقتی استاد می خواست قبل از آموزش دادن پایگاه داده یک کتابخونه برامون پیاده سازی کنه، ورداشت لیست امانات و لیست کتابها و لیست افراد رو با static تعریف کرد. می دونی چرا؟ چون اولا برای هر شیئ که از این کلاس تولید کنی باید مقادیر ثابت باشن. مشخصه که لیست امانتها و اینکه چه کتابی به امانت رفته یا چه شخصی کتاب امانت گرفته یا نه باید همیشه در هربار استفاده از کتابخونه ثابت بمونه دیگه. بنابراین اونجا از static استفاده کرد.
    static یعنی هرجا بخوای به متغیر اون کلاست بدون اینکه ازش شیئ بوجود بیاری دسترسی داری. این می دونی کجا ها ارزش خودشو بیشتر نشون می ده(از نظر بنده). اونجایی که بخوای یه جایی تویه فرم مشخصات یک شیئ رو بگیری تویه فرم دیگه جای دیگه از برنامه ازش استفاده کنی. اما باید مواظب باشی که همین کار موجب اشتباهات دیگه نشه. چون هر شیئ دیگه ای بوجود بیاری از اون کلاس اگه مقدار دهی اولیه به اون متغیر static نکنی مقدارش همونیه که دفعه قبلش دادی.

    موفق باشی
    مرسی دوست عزیز از راهنماییت
    موردی که شما توضیح دادین مربوط می شه به یکی از مشخص ترین دلایل استفاده از متد های static و من هم حرف شما رو قبول دارم . خوب در پست اول من یک مثال زدم از متد copy و copyTo که مربوط به آرایه ها هستن و یکیش Ststic هست و دیگری معمولی . خوب جفت این ها یک کاری انجام می دن یعنی کپی کردن مقادیر یک آرایه در دیگری ( اما در نحوه استفاده متفاوت هستن ) خوب چه دلیلی داره که متد copy از نوع ststic در نظر گرفته بشه ؟

  4. #4

    نقل قول: فهم دقیق استفاده از متد های Static

    خب شما می تونی هربار هر شیئ دیگه رو هم ساختی از این متد بریزی توش. با همون مقادیر.
    اصلا یه چیز مهمتر. چرا باید وقتی می تونیم یک شیئ نسازیم تا بتونیم یک متد مربوط به اون کلاس رو اجرا کنیم حتما یک شیئ بسازیم؟
    یه مثال : فرض کنید یه کلاس داریم برای مفهومی مثل مستطیل. که دارای متغرهای طول و عرض هستش. سازنده و مساحت و... . همچنین یک متد براش میذاریم که نوعی که برامون بر می گردونه از نوع خود کلاس مستطیل باشه و کارش این باشه که بررسی کنه هر شیئ از این کلاس که مساحت بیشتری داشت برامون برگردونه. خوب اگه از static استفاده نکنیم مجبور 3 تا شیئ داشته باشیم اگه از static استفاده کنیم با دو تا شیئ می تونیم مستقیما اونها رو به این متد بفرستیم و مشخص کنیم کدوم بزرگتر(و یا هرچیزه دیگه) است.

  5. #5

    نقل قول: فهم دقیق استفاده از متد های Static

    برای این سوال باید برگردی به تعریف static . توابع و صفات static بین تمامی نمونه های یک کلاس مشترک هستند . این یعنی اینکه شما برای استفاده از آنها نیازی به ساخت نمونه از کلاس مورد نظر ندارید . ضمن اینکه متدهای معمولی روی صفاتی کار می کنند که در نمونه های مختلف دارای مقادیر مختلف هستند . اما static ها برای صفاتی هستند که مشترکند و بین نمونه ها تفاوتی ندارند

تاپیک های مشابه

  1. سوال: تفاوت متدهای static و غیر static
    نوشته شده توسط mehrdad85 در بخش C#‎‎
    پاسخ: 6
    آخرین پست: یک شنبه 18 شهریور 1397, 00:41 صبح
  2. سوال: محاسبه سری e^x با استفاده از متد های سازنده
    نوشته شده توسط mohammad_king62 در بخش C#‎‎
    پاسخ: 8
    آخرین پست: دوشنبه 13 اردیبهشت 1389, 11:17 صبح
  3. پاسخ: 1
    آخرین پست: چهارشنبه 04 شهریور 1388, 19:06 عصر
  4. استفاده از متد های یک شی مثلا tedit
    نوشته شده توسط saeid99 در بخش برنامه نویسی با Borland C++‎ Builder
    پاسخ: 2
    آخرین پست: چهارشنبه 04 دی 1387, 20:57 عصر
  5. چند سوال در مورد متد های static و interface ها
    نوشته شده توسط unix_svr4 در بخش برنامه‌نویسی جاوا
    پاسخ: 1
    آخرین پست: چهارشنبه 29 اسفند 1386, 14:54 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •