JAVAPRO_IR Telegram 4080
📘 درک متغیرهای محلی (Local) و سراسری (Global) در زبان Java

در زبان Java، متغیرها بسته به محل تعریف‌شان، دارای محدوده (scope) متفاوتی هستند. متغیرهای محلی فقط در همان محدوده‌ای که تعریف شده‌اند قابل استفاده هستند، در حالی که متغیرهای سراسری (که در Java به‌صورت *فیلدهای کلاس* تعریف می‌شوند) می‌توانند در کل کلاس مورد استفاده قرار گیرند.


🔹 متغیر محلی (Local Variable):

متغیرهای محلی درون متدها، حلقه‌ها یا بلوک‌های شرطی تعریف می‌شوند و فقط در همان بلوک قابل دسترسی هستند. این متغیرها خارج از آن محدوده وجود ندارند و پس از خروج از بلوک از بین می‌روند.

🔸 مثال ساده:


public class Example {
public void printMessage() {
String message = "Hello from inside the method!"; // local variable
System.out.println(message);
}
}


🟢 توضیح:
متغیر message فقط در متد printMessage قابل استفاده است. خارج از این متد، این متغیر وجود ندارد.


🔸 مثال پیشرفته‌تر:


public class Calculator {

public void calculateSum(int[] numbers) {
int total = 0; // local variable in method

for (int i = 0; i < numbers.length; i++) {
int current = numbers[i]; // local variable in loop
if (current % 2 == 0) {
int bonus = 2; // local variable in if block
total += current + bonus;
System.out.println("Even number with bonus: " + (current + bonus));
} else {
System.out.println("Odd number: " + current);
}
}

System.out.println("Final total: " + total);
}
}


🟢 توضیح:

* متغیر total فقط در متد calculateSum قابل استفاده است.
* متغیر current در هر دور از حلقه for تعریف می‌شود و فقط درون همان حلقه قابل دسترسی است.
* متغیر bonus تنها زمانی تعریف و قابل استفاده است که شرط if برقرار باشد، و خارج از بلوک if وجود ندارد.
این طراحی باعث می‌شود متغیرها در کوتاه‌ترین دامنه ممکن تعریف شوند که کد را امن‌تر و خواناتر می‌کند.


🔹 متغیر سراسری (Global Variable یا Class Field):

در Java مفهوم متغیر سراسری به شکل سنتی وجود ندارد، اما می‌توان متغیرهایی را در سطح کلاس تعریف کرد که توسط تمام متدهای همان کلاس قابل استفاده باشند. این متغیرها به عنوان *فیلدهای کلاس* شناخته می‌شوند.

🔸 مثال ساده:


public class BankAccount {
private double balance = 0.0; // global variable (field)

public void deposit(double amount) {
balance += amount;
System.out.println("Balance after deposit: " + balance);
}

public void withdraw(double amount) {
if (amount <= balance) {
balance -= amount;
System.out.println("Balance after withdrawal: " + balance);
} else {
System.out.println("Insufficient balance!");
}
}
}


🟢 توضیح:

* متغیر balance در سطح کلاس تعریف شده و در تمام متدهای deposit و withdraw در دسترس است.
* مقدار این متغیر حتی پس از پایان یک متد نیز حفظ می‌شود چون به شیء تعلق دارد.


🔸 مثال پیشرفته‌تر:


public class OrderManager {

private int totalOrders = 0; // global variable (field)
private double totalRevenue = 0.0; // global variable (field)

public void addOrder(double amount) {
totalOrders++;
totalRevenue += amount;
System.out.println("Order added. Total orders: " + totalOrders);
System.out.println("Total revenue: $" + totalRevenue);
}

public void resetOrders() {
totalOrders = 0;
totalRevenue = 0.0;
System.out.println("All orders have been reset.");
}

public void printSummary() {
System.out.println("Order Summary:");
System.out.println("Orders: " + totalOrders + ", Revenue: $" + totalRevenue);
}
}


🟢 توضیح:

* متغیرهای totalOrders و totalRevenue به کل شیء تعلق دارند و در هر متدی از کلاس قابل استفاده‌اند.
* متد addOrder این متغیرها را به‌روزرسانی می‌کند، متد resetOrders آن‌ها را ریست می‌کند، و متد printSummary آن‌ها را چاپ می‌کند.
* این سبک طراحی برای نگهداری اطلاعات پایدار بین چند متد مناسب است.



tgoop.com/javapro_ir/4080
Create:
Last Update:

📘 درک متغیرهای محلی (Local) و سراسری (Global) در زبان Java

در زبان Java، متغیرها بسته به محل تعریف‌شان، دارای محدوده (scope) متفاوتی هستند. متغیرهای محلی فقط در همان محدوده‌ای که تعریف شده‌اند قابل استفاده هستند، در حالی که متغیرهای سراسری (که در Java به‌صورت *فیلدهای کلاس* تعریف می‌شوند) می‌توانند در کل کلاس مورد استفاده قرار گیرند.


🔹 متغیر محلی (Local Variable):

متغیرهای محلی درون متدها، حلقه‌ها یا بلوک‌های شرطی تعریف می‌شوند و فقط در همان بلوک قابل دسترسی هستند. این متغیرها خارج از آن محدوده وجود ندارند و پس از خروج از بلوک از بین می‌روند.

🔸 مثال ساده:


public class Example {
public void printMessage() {
String message = "Hello from inside the method!"; // local variable
System.out.println(message);
}
}


🟢 توضیح:
متغیر message فقط در متد printMessage قابل استفاده است. خارج از این متد، این متغیر وجود ندارد.


🔸 مثال پیشرفته‌تر:


public class Calculator {

public void calculateSum(int[] numbers) {
int total = 0; // local variable in method

for (int i = 0; i < numbers.length; i++) {
int current = numbers[i]; // local variable in loop
if (current % 2 == 0) {
int bonus = 2; // local variable in if block
total += current + bonus;
System.out.println("Even number with bonus: " + (current + bonus));
} else {
System.out.println("Odd number: " + current);
}
}

System.out.println("Final total: " + total);
}
}


🟢 توضیح:

* متغیر total فقط در متد calculateSum قابل استفاده است.
* متغیر current در هر دور از حلقه for تعریف می‌شود و فقط درون همان حلقه قابل دسترسی است.
* متغیر bonus تنها زمانی تعریف و قابل استفاده است که شرط if برقرار باشد، و خارج از بلوک if وجود ندارد.
این طراحی باعث می‌شود متغیرها در کوتاه‌ترین دامنه ممکن تعریف شوند که کد را امن‌تر و خواناتر می‌کند.


🔹 متغیر سراسری (Global Variable یا Class Field):

در Java مفهوم متغیر سراسری به شکل سنتی وجود ندارد، اما می‌توان متغیرهایی را در سطح کلاس تعریف کرد که توسط تمام متدهای همان کلاس قابل استفاده باشند. این متغیرها به عنوان *فیلدهای کلاس* شناخته می‌شوند.

🔸 مثال ساده:


public class BankAccount {
private double balance = 0.0; // global variable (field)

public void deposit(double amount) {
balance += amount;
System.out.println("Balance after deposit: " + balance);
}

public void withdraw(double amount) {
if (amount <= balance) {
balance -= amount;
System.out.println("Balance after withdrawal: " + balance);
} else {
System.out.println("Insufficient balance!");
}
}
}


🟢 توضیح:

* متغیر balance در سطح کلاس تعریف شده و در تمام متدهای deposit و withdraw در دسترس است.
* مقدار این متغیر حتی پس از پایان یک متد نیز حفظ می‌شود چون به شیء تعلق دارد.


🔸 مثال پیشرفته‌تر:


public class OrderManager {

private int totalOrders = 0; // global variable (field)
private double totalRevenue = 0.0; // global variable (field)

public void addOrder(double amount) {
totalOrders++;
totalRevenue += amount;
System.out.println("Order added. Total orders: " + totalOrders);
System.out.println("Total revenue: $" + totalRevenue);
}

public void resetOrders() {
totalOrders = 0;
totalRevenue = 0.0;
System.out.println("All orders have been reset.");
}

public void printSummary() {
System.out.println("Order Summary:");
System.out.println("Orders: " + totalOrders + ", Revenue: $" + totalRevenue);
}
}


🟢 توضیح:

* متغیرهای totalOrders و totalRevenue به کل شیء تعلق دارند و در هر متدی از کلاس قابل استفاده‌اند.
* متد addOrder این متغیرها را به‌روزرسانی می‌کند، متد resetOrders آن‌ها را ریست می‌کند، و متد printSummary آن‌ها را چاپ می‌کند.
* این سبک طراحی برای نگهداری اطلاعات پایدار بین چند متد مناسب است.

BY آموزش برنامه نویسی جاوا | Java


Share with your friend now:
tgoop.com/javapro_ir/4080

View MORE
Open in Telegram


Telegram News

Date: |

Telegram iOS app: In the “Chats” tab, click the new message icon in the right upper corner. Select “New Channel.” Telegram Channels requirements & features During a meeting with the president of the Supreme Electoral Court (TSE) on June 6, Telegram's Vice President Ilya Perekopsky announced the initiatives. According to the executive, Brazil is the first country in the world where Telegram is introducing the features, which could be expanded to other countries facing threats to democracy through the dissemination of false content. More>> There have been several contributions to the group with members posting voice notes of screaming, yelling, groaning, and wailing in different rhythms and pitches. Calling out the “degenerate” community or the crypto obsessives that engage in high-risk trading, Co-founder of NFT renting protocol Rentable World emiliano.eth shared this group on his Twitter. He wrote: “hey degen, are you stressed? Just let it out all out. Voice only tg channel for screaming”.
from us


Telegram آموزش برنامه نویسی جاوا | Java
FROM American