Telegram Group & Telegram Channel
📘 درک متغیرهای محلی (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 آن‌ها را چاپ می‌کند.
* این سبک طراحی برای نگهداری اطلاعات پایدار بین چند متد مناسب است.



tg-me.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


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/javapro_ir/4080

View MORE
Open in Telegram


برنامه نویسی جاواپرو Telegram | DID YOU KNOW?

Date: |

Newly uncovered hack campaign in Telegram

The campaign, which security firm Check Point has named Rampant Kitten, comprises two main components, one for Windows and the other for Android. Rampant Kitten’s objective is to steal Telegram messages, passwords, and two-factor authentication codes sent by SMS and then also take screenshots and record sounds within earshot of an infected phone, the researchers said in a post published on Friday.

Tata Power whose core business is to generate, transmit and distribute electricity has made no money to investors in the last one decade. That is a big blunder considering it is one of the largest power generation companies in the country. One of the reasons is the company's huge debt levels which stood at ₹43,559 crore at the end of March 2021 compared to the company’s market capitalisation of ₹44,447 crore.

برنامه نویسی جاواپرو from us


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