DifferenceModerate2 marks
State a difference between call by value and call by reference.
Topic: Call by value and call by reference
Previous-year question practice database
Answer
Exam answer
The difference is shown in the table.
Explanation
The heart of the answer is whether the original is affected. State that first, then say which kinds of data each applies to. The practical consequence is worth one line: this is why a method cannot swap two int variables passed to it, but can change the contents of an array passed to it.
Comparison
| Call by value | Call by reference |
|---|---|
| A copy of the value is passed to the method, so changes made to the formal parameters do NOT affect the original arguments. | The reference (address) of the object is passed, so changes made inside the method DO affect the original object. |
| Applies when primitives (int, char, double) are passed. | Applies when objects and arrays are passed. |
More from User-Defined Methods
In the following method prototype to accept a character, an integer and return YES or NO, fill in the blank to complete the method prototype.
public __________ someMethod(char ch, int n)2026In a calculator which Java feature allows multiple methods named calculate() for the different operations?2026The following program segment calculates and displays the factorial of a number. [Example: Factorial of 5 is 1 x 2 x 3 x 4 x 5 = 120]
int p, n = 5, f = 0;
for(p = n; p > 0; p--)
f *= p;
System.out.println(f);
Name the type of error if any; correct the statement to get the desired output.2026Define a class to overload the method format as follows:
void format() - To print the following pattern using Nested for loops only:
1 2 3 4 5
2 3 4 5
3 4 5
4 5
5
int format(String s) - To calculate and return the sum of ASCII codes of each character of the String.
Example: CAB
Output: 67 + 65 + 66 = 198
void format(int n) - To calculate and display the sum of natural numbers up to n given by the formula n(n + 1) / 2.2026Which of the following pairs of methods will cause a compile-time error due to incorrect method overloading?2025Consider the following program segment in which the statements are jumbled. Choose the correct order of statements to calculate and return the factorial of 4.
1. for(k = 1; k <= 4; k++)
2. return fa;
3. long fa = 1, k;
4. fa *= k;2025