Question:
Write a Java program that demonstrates the concept of scope and lifetime of variables. Your program should include a method that accepts two integer values as parameters, calculates their sum, and returns the result.
In the main method, declare two integer variables, num1
and num2
, and assign them values 10
and 20
respectively. Call the method with these variables as arguments and store the returned result in a variable sum
.
Print the values of num1
, num2
, and sum
after the method call to observe the scope and lifetime of variables.
public class VariableScopeDemo {
public static int calculateSum(int a, int b) {
int sum = a + b;
return sum;
}
public static void main(String[] args) {
int num1 = 10;
int num2 = 20;
int sum = calculateSum(num1, num2);
System.out.println("Value of num1: " + num1);
System.out.println("Value of num2: " + num2);
System.out.println("Value of sum: " + sum);
}
}
Explain the output of the program and discuss the scope and lifetime of the variables used.
Answer:
The program demonstrates the concept of scope and lifetime of variables in Java. Here's the output of the program:
Value of num1: 10
Value of num2: 20
Value of sum: 30
Explanation:
In the main method, two integer variables num1
and num2
are declared and assigned the values 10
and 20
respectively. These variables have a scope within the main method. Their lifetime extends until the end of the method.
The calculateSum
method is defined with two integer parameters a
and b
. Inside the method, a local variable sum
is declared and assigned the value of a + b
. This variable has a scope limited to the calculateSum
method. Its lifetime starts when the method is called and ends when the method returns the value.
In the main
method, the method calculateSum
is called with num1
and num2
as arguments, and the returned value is stored in the variable sum
. The sum
variable also has a scope within the main method, and its lifetime extends until the end of the method.
Finally, the values of num1
, num2
, and sum
are printed using System.out.println
statements. The output shows that the values are as expected, num1
is 10
, num2
is 20
, and the sum
is 30
.
This program demonstrates how variables have different scopes and lifetimes depending on where they are declared and used in the program. The variables declared in the main method are not accessible outside of it, while the sum
variable in the calculateSum
method is limited to that method only. Understanding the scope and lifetime of variables is crucial in writing efficient and bug-free programs.