Java Call By Reference

Chapter: Miscellaneous Last Updated: 23-03-2017 20:02:04 UTC

Program:

            /* ............... START ............... */
                
class Student {

	private String studentName;

	public Student(String name) {
		this.studentName = name;
	}

	public String getStudentName() {
		return studentName;
	}

	public void setStudentName(String name) {
		this.studentName = name;
	}
}

public class JavaCallByReference {

	public static void main(String[] args) {
		Student s1 = new Student("John");
		System.out.println("1: " + s1.getStudentName());
		changeReference(s1); // It won't change the reference!
		System.out.println("2: " + s1.getStudentName());
		modifyReference(s1); // It will change the object that the reference
								// variable "John" refers to!
		System.out.println("3: " + s1.getStudentName());
	}

	public static void changeReference(Student s1) {
		Student s2 = new Student("Smith");
		s1 = s2;
	}

	public static void modifyReference(Student s1) {
		s1.setStudentName("Carol");
	}
}
                /* ............... END ............... */
        

Output

1: John
2: John
3: Carol

Notes:

  • Call by Reference is - passing object references by value. Because two copies of the same reference refer to the same actual object, changes made in one reference variable are visible through the other variable.
  • The term Pass by Reference (java does not support) means that when an argument is passed to a method, the invoked method gets a reference to the original value, not a copy of its value. If the method modifies its parameter, the value in the calling code will be changed because the argument and parameter use the same slot in memory.

Tags

Call By Reference, Java, Miscellaneous

Similar Programs Chapter Last Updated
Data Types In Java Miscellaneous 09-06-2018
Java Program To Find Largest Element Of Array Miscellaneous 21-09-2017
Java Program To Check Whether Number Is Prime Or Not Miscellaneous 08-09-2017
Java Program To Find Power Of Number Using For Loop Miscellaneous 29-08-2017
Java Program To Find LCM Of Two Numbers Miscellaneous 29-08-2017
Java Program To Find GCD Of Two Numbers Miscellaneous 29-08-2017
Java Program To Check Whether An Alphabet Is Vowel Or Consonant Miscellaneous 25-08-2017
Java Program To Find ASCII Value Of Character Miscellaneous 25-08-2017
Java Object HashCode Method Miscellaneous 02-08-2017
Java Builder Design Pattern Example Miscellaneous 06-06-2017
Java Factory Design Pattern Example Miscellaneous 06-06-2017
Java Program To Print ASCII Values Miscellaneous 06-04-2017
Java Program To Find HCF LCM Of Two Numbers Miscellaneous 22-09-2018
Java String Array Iteration Miscellaneous 31-03-2017
Java Array Size Miscellaneous 30-03-2017
Java Integer toString Miscellaneous 30-03-2017
Java Sort Array Using Arrays.sort() Miscellaneous 28-03-2017
Java Print Array Using Arrays.toString Miscellaneous 28-03-2017
Java Nested Interface Miscellaneous 25-03-2017
Java Static Nested Class Miscellaneous 25-03-2017
Packages In Java Miscellaneous 24-03-2017
Java Strictfp Keyword Miscellaneous 24-03-2017
Java Call By Value Miscellaneous 23-03-2017
Java Unboxing Example Miscellaneous 23-03-2017
Java Autoboxing Example Miscellaneous 23-03-2017
Java Format Currency Miscellaneous 15-02-2017
Java String To BigDecimal Conversion Miscellaneous 15-02-2017
Java Program To Convert Arraylist To Array Miscellaneous 13-02-2017
Java Array Creation And Initialize Miscellaneous 13-02-2017
Java Program To Print Square Pattern Of Star Miscellaneous 16-12-2016

1 2 3 4 5