Forwarded from Parsa
2d8358-FL2903_Ex_Files_Learn_Java_Cryptography.zip
198.4 KB
اعضای کلاس استاتیک
هر شی از یک کلاس دارای کپی از تمام متغیر های نمونه متعلق به کلاس خود است. با این همه , در موارد مشخص, تمام شی های کلاس میتوانند کپی از یک متغیر خاص را به اشتراک در اورند . یک فیلد استاتیک , که متغیر کلاس نامیده میشود , چنین متغیری است, یک برنامه فقط حاوی یک کپی از این متغیر در حافظه است, تعداد شی های نمونه سازی شده از کلاس اهمیت ندارند و بر تعداد کپی های این متغیر در حافظه تاثیری نمیگذارند. یک متغیر استاتیک نشان دهنده ی اطلاعات و شی در مورد کلاس است. تمام شی های کلاس اطلاعات یکسانی را به اشتراک میگذارند. اعلان یک متغیر استاتیک با کلمه کلیدی static اغاز میشود.
برای توضیح اینکه چرا به کلاس استاتیکی نیاز است(کلاسی که دارای فیلد یا متد استاتیک باشد) , به بررسی یک بازی ویدیویی میپردازیم. فرض کنید که در این بازی , سفینه های مریخی که با کلاس Martian مشخص شده اند , مورد حمله سفینه های دیگر قرا گرفته اند. هر سفینه مریخی قادر به درگیری با سفینه های دشمن است به شرطی که هر سفینه مطمعن باشد حداقل چهار سفینه ی خودی در صحنه هستند. اگر مجموع Martian ها کمتر از پنج باشد, انگاه سفینه پا به فرار خواهد گذاشت.به همین دلیل هر سفیه باید از تعداد سفینه ها (martianCount) مطلع باشد . میتوانیم martianCount را به عنوان یک متغیر نمونه به هر کلاس Martian اعطا کنیم (متغیر نمونه یعنی متغیری که وابسته به نمونه های یا شی های ساخته شده از کلاس است). اگر چنین کاری انجام دهیم هر Martian یک نسخه (کپی ) جداگانه از داده نمونه خواهد داشت و هربار که یک Martian ایجاد میکنیم باید متغیر نمونه martianCount را در هر Martian بروز کنیم..کپی های اضافی موجب تلف شدن حافظه میشوند و به روز کردن این تعداد کپی , زمان زیادی مطلبد. بجای اینکار متغیر martianCount را بصورت استاتیک اعلان میکنیم, از اینرو این متغیر یک داده سراسری در کلاس خواهد بود. هر سفینه میتواند مقدار این متغیر را مشاهده کند , اما برنامه فقط یک کپی از این متغیر استاتیک را به منظور حفظ فضا در خود نگهداری میکند. در کنار اینکار در زمان هم صرفه جویی میشود چرا که سازنده martian فقط مقدار متغیر استاتیکی را افزایش میدهد
@this_java
هر شی از یک کلاس دارای کپی از تمام متغیر های نمونه متعلق به کلاس خود است. با این همه , در موارد مشخص, تمام شی های کلاس میتوانند کپی از یک متغیر خاص را به اشتراک در اورند . یک فیلد استاتیک , که متغیر کلاس نامیده میشود , چنین متغیری است, یک برنامه فقط حاوی یک کپی از این متغیر در حافظه است, تعداد شی های نمونه سازی شده از کلاس اهمیت ندارند و بر تعداد کپی های این متغیر در حافظه تاثیری نمیگذارند. یک متغیر استاتیک نشان دهنده ی اطلاعات و شی در مورد کلاس است. تمام شی های کلاس اطلاعات یکسانی را به اشتراک میگذارند. اعلان یک متغیر استاتیک با کلمه کلیدی static اغاز میشود.
برای توضیح اینکه چرا به کلاس استاتیکی نیاز است(کلاسی که دارای فیلد یا متد استاتیک باشد) , به بررسی یک بازی ویدیویی میپردازیم. فرض کنید که در این بازی , سفینه های مریخی که با کلاس Martian مشخص شده اند , مورد حمله سفینه های دیگر قرا گرفته اند. هر سفینه مریخی قادر به درگیری با سفینه های دشمن است به شرطی که هر سفینه مطمعن باشد حداقل چهار سفینه ی خودی در صحنه هستند. اگر مجموع Martian ها کمتر از پنج باشد, انگاه سفینه پا به فرار خواهد گذاشت.به همین دلیل هر سفیه باید از تعداد سفینه ها (martianCount) مطلع باشد . میتوانیم martianCount را به عنوان یک متغیر نمونه به هر کلاس Martian اعطا کنیم (متغیر نمونه یعنی متغیری که وابسته به نمونه های یا شی های ساخته شده از کلاس است). اگر چنین کاری انجام دهیم هر Martian یک نسخه (کپی ) جداگانه از داده نمونه خواهد داشت و هربار که یک Martian ایجاد میکنیم باید متغیر نمونه martianCount را در هر Martian بروز کنیم..کپی های اضافی موجب تلف شدن حافظه میشوند و به روز کردن این تعداد کپی , زمان زیادی مطلبد. بجای اینکار متغیر martianCount را بصورت استاتیک اعلان میکنیم, از اینرو این متغیر یک داده سراسری در کلاس خواهد بود. هر سفینه میتواند مقدار این متغیر را مشاهده کند , اما برنامه فقط یک کپی از این متغیر استاتیک را به منظور حفظ فضا در خود نگهداری میکند. در کنار اینکار در زمان هم صرفه جویی میشود چرا که سازنده martian فقط مقدار متغیر استاتیکی را افزایش میدهد
@this_java
آیا ++a و a++ در جاوا با یکدیگر تفاوت دارند؟
اگر عملگر ++ بعد از متغییر بیاید، یک واحد اضافه شدن پس از اتمام عملیات مقداردهی انجام می شود (یعنی محاسبات بر اساس مقدار قبلی انجام می شود):
int a = 1;
int b = a++;// b=1
int c = a; // c=2
اما اگر عملگر ++ قبل از متغییر بیاید، ابتدا یک واحد به متغییر اضافه می شود و سپس محاسبات انجام می شود:
int a = 1;
int b = ++a;// b=2
int c = a; // c=2
@this_java
اگر عملگر ++ بعد از متغییر بیاید، یک واحد اضافه شدن پس از اتمام عملیات مقداردهی انجام می شود (یعنی محاسبات بر اساس مقدار قبلی انجام می شود):
int a = 1;
int b = a++;// b=1
int c = a; // c=2
اما اگر عملگر ++ قبل از متغییر بیاید، ابتدا یک واحد به متغییر اضافه می شود و سپس محاسبات انجام می شود:
int a = 1;
int b = ++a;// b=2
int c = a; // c=2
@this_java
تفاوت مابین field وProperty در چیست؟
Field: یک متغیر خصوصی در یک کلاس است ...که اغلب برای استفاده ی داخلی کلاس در نظر گرفته شده است
Property:متغیر های خصوصی که دارای ستر و گتر هستند و برای دستکاری از بیرون کلاس نیز درنظر گرفته شده اند
@this_java
Field: یک متغیر خصوصی در یک کلاس است ...که اغلب برای استفاده ی داخلی کلاس در نظر گرفته شده است
Property:متغیر های خصوصی که دارای ستر و گتر هستند و برای دستکاری از بیرون کلاس نیز درنظر گرفته شده اند
@this_java
یافتن یک کاراکتر مشخص از یک رشته
متد indexOf و lastIndexOf مکان کاراکتر مربوطه در رشته را برگشت میدهند ... همانطور که میدانید اولین عضو رشته در صفرمین خانه قرار میگیرد...برای بدست اوردن یک کاراکتر با داشتن مکان مربوط به ان (درواقع برعکس متد lastindexof)
باید از متدی به نام charAt در کلاس String بهره ببریم :
String this_java= "this_java";
char c = this_java.charAt(0);
System.out.println(c);
خروجی;
t
برای اطلاع از چگونگی نحوه ی کارکرد indexOf و lastIndexOf پست زیر را در کانال مطالعه کنید:
https://t.me/this_java/610
@this_java
متد indexOf و lastIndexOf مکان کاراکتر مربوطه در رشته را برگشت میدهند ... همانطور که میدانید اولین عضو رشته در صفرمین خانه قرار میگیرد...برای بدست اوردن یک کاراکتر با داشتن مکان مربوط به ان (درواقع برعکس متد lastindexof)
باید از متدی به نام charAt در کلاس String بهره ببریم :
String this_java= "this_java";
char c = this_java.charAt(0);
System.out.println(c);
خروجی;
t
برای اطلاع از چگونگی نحوه ی کارکرد indexOf و lastIndexOf پست زیر را در کانال مطالعه کنید:
https://t.me/this_java/610
@this_java
Telegram
Learn Java
یافتن مکان کاراکتر ها و زیر رشته ها
در بسیاری از برنامه جستجو برای یافتن یک کاراکتر یا مجموعه ای از کاراکتر ها در یک رشته ضروری است. برای مثال , برنامه نویس یک برنامه پردازشگر لغت ایجاد میکند و مایل است تا این برنامه از ویژگی جستجو در میان مستندات برخوردار…
در بسیاری از برنامه جستجو برای یافتن یک کاراکتر یا مجموعه ای از کاراکتر ها در یک رشته ضروری است. برای مثال , برنامه نویس یک برنامه پردازشگر لغت ایجاد میکند و مایل است تا این برنامه از ویژگی جستجو در میان مستندات برخوردار…
Hospital.zip
67 KB
سورس کد برنامه ی مدیریت بیمارستان با استفاده از فریمورک محبوب hibernate و دیتابیس Postgresql
@this_java
@this_java
spring book.pdf
2 MB
کتاب فارسی اموزش Spring از سایت تحلیل داده
@this_java
@this_java