روز 16: متغیرهای جاوا: مستندات جامع

1) متغیرها تعریف:
متغیرها ظروف هستند که مقادیر داده را در هنگام اجرای برنامه در حافظه ذخیره می کنند.
2) طبقه بندی متغیرها
A. بر اساس نوع داده
1) انواع داده های اولیه
Data Type Default Value Size (bits) Range/Example
byte 0 8 -128 to 127
short 0 16 -32,768 to 32,767
int 0 32 -2³¹ to 2³¹-1
long 0L 64 -2⁶³ to 2⁶³-1
float 0.0f 32 3.4e-038 to 3.4e+038
double 0.0d 64 1.7e-308 to 1.7e+308
char '\u0000' 16 'A', '1', '$'
boolean false 1 (JVM-dependent) true or false
2) انواع داده های غیر حساس (مرجع)
Data Type Default Value Example
String null "Hello"
Arrays null int[] arr = {1, 2, 3};
Classes null Tourist tourist = new Tourist();
3) دامنه متغیر
الف) متغیرهای محلی
Declared inside methods/constructors/blocks.
No default value (must be initialized before use).
Lifetime: Exists only while the method executes.
مثال:
public void calculate() {
int localVar = 10; // Local variable (must be initialized)
System.out.println(localVar);
}
B. متغیرهای جهانی (زمینه ها)
Declared inside a class, outside methods.
Have default values (if not initialized).
Two types:
Static (static keyword) → Class-level (shared).
Non-Static (no keyword) → Instance-level (object-specific).
مثال:
public class Tourist {
static int globalStaticVar = 1000; // Static (class-level)
int globalNonStaticVar = 500; // Non-static (instance-level)
}
4) مقادیر پیش فرض
Variable Type Default Value
Global (Static/Non-Static) Yes (e.g., 0, null)
Local No (Compiler Error if Uninitialized)
سوال مصاحبه:
❓ “آیا متغیرهای محلی مقادیر پیش فرض دارند؟”
➡ نه! فقط متغیرهای جهانی مقادیر پیش فرض را دریافت می کنند.
5) درگیری های نامگذاری متغیر
مورد 1): متغیر متغیر محلی متغیر جهانی
If a local variable has the same name as a global variable, the local variable takes precedence.
مثال:
public class Tourist {
static int amount = 100000; // Global static
public void havingDinner() {
int amount = 2000; // Local variable (shadows global)
System.out.println(amount); // Prints 2000 (local)
}
public static void main(String[] args) {
System.out.println(Tourist.amount); // 100000 (global)
Tourist t = new Tourist();
t.havingDinner(); // 2000 (local)
}
}
مورد 2): دسترسی به متغیر جهانی در داخل (با استفاده از این برای غیر استاتیک)
public class Example {
int value = 100; // Non-static global
public void printValue() {
int value = 50; // Local variable
System.out.println(value); // 50 (local)
System.out.println(this.value); // 100 (global)
}
}
6) بهترین روشها
✔ از نامهای معنی دار استفاده کنید (به عنوان مثال ، کاربر به جای A).
✔ متغیرها را قبل از استفاده (به خصوص محلی) اولیه کنید.
✔ از سایه زدن خودداری کنید مگر اینکه لازم باشد (می تواند خوانایی را کاهش دهد).
✔ برای ثابت های کلاس از استاتیک استفاده کنید (به عنوان مثال ، دو برابر نهایی استاتیک PI = 3.14 ؛).
Summary Table
Feature Local Variables Global Variables
Scope Inside method/block Class-level
Default Value ❌ No (must initialize) ✔ Yes
Lifetime Method execution Entire program (static) / Object lifetime (non-static)
Shadowing Can override global Can be accessed via ClassName.staticVar or this.nonStaticVar
این مستندات متغیرهای موجود در جاوا را به طور جامع ، از جمله انواع داده ها ، دامنه ، نامگذاری درگیری و بهترین شیوه ها در بر می گیرد.
توجه: قالب بندی و ساختار برای وضوح با کمک AI بهینه سازی شدند.
—————————– پایان وبلاگ ————————————-