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