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

نام تاپیک: مفهوم static

  1. #1

    Question مفهوم static

    سلام دوستان خسته نباشید
    من مفهوم استاتیک و این که استاتیک بودن یه ویژگی‌ یعنی‌ اون مربوط به کل کلاس هست متوجه شدم.ولی‌ راستش اینکه یه تابع استاتیک هست و این چه معنی‌ میده درست برام جا نیفتاده. ممنون میشم راهنمایی‌ کنید.کلاس هم همینطور.اینکه یه کلاس استاتیک می‌شه چه معنی‌ میده؟یک سال دیگه هم اینکه آیا می‌شه یک constructor استاتیک داشته باشی‌؟اگه می‌شه چه مفهومی‌ داره؟

  2. #2
    کاربر دائمی آواتار vahid-p
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران
    پست
    1,140

    نقل قول: مفهوم static

    بهتر بود قبلش سرچ میکردید. بخشی از جواب سوالاتتون در این تاپیک بحث کردم: https://barnamenevis.org/showthread.php?545254
    اما متد استاتیک به شی ساخته شده از کلاس وابسته نیست، بلکه فقط میتونه از فیلدهای استاتیک استفاده کنه که برای یک کلاس همواره یک مقدار وجود داره. ولی وقتی وارد حالت غیر استاتیک میشیم، به ازای هر شی مقادیر اون شی ساخته شده از کلاس تغییر میکنه و در نتیجه متدهای غیراستاتیک به مقادیر فیلدهای غیراستاتیک دسترسی دارن و جواب های مختلفی برای اشیا مختلف ممکنه داشته باشند. همچنین برای متدهای استاتیک نیازی به ساختن شی (new کردن) نیست. در کل اینکه بحث متدهای استاتیک و غیراستاتیک تو تاپیک به نظرم به خوبی مطرح شده.

    در مورد کلاس استاتیک نمیدونم تو اون تاپیک توضیح دادم یا نه ولی در این پست توضیح داده شده تا حدودی https://barnamenevis.org/showthread.php?290161

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

    در مورد سازنده (constructor) استاتیک، نمیتونیم بگیم سازنده استاتیک داریم (چون برای استاتیک شی ای ساخته نمیشه که بخواد سازنده داشته باشه) ولی میتونیم بلاک استاتیک داشته باشیم. بلاک استاتیک عملکردش فقط مقدار دهی اولیه به فیلدهای استاتیکمون هست.
    مثلا به جای اینکه بنویسیم:
    static int i=2;

    میتونیم بنویسیم:
    static int i;
    static{
    i=2;
    }

    تفاوتش اینه که در حالت دوم میتونیم از حلقه و شرط و... استفاده کنیم و فیلدهای استاتیک رو به روش پیچیده تری مقدار دهی اولیه کنیم.

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

  1. مفهوم ۲ واژه static و final
    نوشته شده توسط slr560 در بخش برنامه‌نویسی جاوا
    پاسخ: 3
    آخرین پست: دوشنبه 27 مرداد 1393, 11:55 صبح
  2. مفهوم کلاس از نوع static چیه؟
    نوشته شده توسط ordebehesht در بخش C#‎‎
    پاسخ: 4
    آخرین پست: چهارشنبه 08 آبان 1392, 01:29 صبح
  3. مفهوم win32Error. code:87 چیست؟
    نوشته شده توسط Mahdiseif در بخش برنامه نویسی در Delphi
    پاسخ: 0
    آخرین پست: پنج شنبه 08 آبان 1382, 12:24 عصر

برچسب های این تاپیک

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

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