[Học lập trình Java ] Biến tham chiếu trong ngôn ngữ Java

Cách duy nhất bạn có thể truy cập một đối tượng là thông qua một biến tham chiếu. Một biến tham chiếu được tuyên bố là của một loại hình cụ thể và loại mà không bao giờ có thể được thay đổi. Biến tham chiếu có thể được khai báo là biến tĩnh, các biến đối tượng, phương pháp thông số, hoặc các biến địa phương.

Một biến tham chiếu là tuyên bố cuối cùng có thể không bao giờ được chỉ định để chỉ một đối tượng khác nhau. Các dữ liệu trong đối tượng có thể được sửa đổi, nhưng các biến tham chiếu không thể thay đổi.

Biến tham chiếu được dùng để chỉ một đối tượng. Chúng được khai báo với một loại hình cụ thể mà không thể thay đổi.

  1. Biến tham chiếu là gì?

Demo d1 = new Demo();

Biến có thể được chia làm hai loại sau:

Demo d1; // 1st

d1 = new Demo(); // 2nd

Trong câu lệnh đầu tiên, d1 được gọi là biến tham chiếu(không phải đối tượng). Một biến chỉ một tên lớp là được biết với biến tham chiếu. Một biến tham chiếu không thể làm việc như một đối tượng trong khi nó được chuyển đổi trong một đối tượng. Trong câu lệnh thứ hai, biến tham chiếu là được chuyển đổi trong một đối tượng.

Như chúng ta đã biết, một biến tham chiếu không thể làm việc như một đối tượng cho đến khi nó được chuyển đổi. Nhưng vẫn còn, biến tham chiếu có thể được sử dụng để gán với một đối tượng. Quan sát những điều sau đây:

Demo d1 = new Demo(); // một đối tượng

Demo d2, d3; // biến tham chiếu

System.out.println(d1.x); // prints 10

d2 = d1; // an object is assigned to a reference variable

System.out.println(d2.x);

// prints 10 as now reference variable works like an object

d3 = d2; // reference to reference

System.out.println(d3.x); // prints 10

Mặc dù thông qua biến d2 và d3 là biến tham chiếu nhưng chúng vẫn được sử dụng như đối tượng để gọi giá trị x. Và điều gì sẽ xảy ra, kết quả như thế nào, khi nào được chỉ định, d2 và d3 được tham chiếu như vị trí của x. Xem ví dụ dưới đây:

d2.x = 20;

System.out.println(d1.x); // prints 20

System.out.println(d2.x); // prints 20

System.out.println(d3.x); // prints 20

20 kết quả được in ra kết quả vị trí giống nhau. Nếu 1 giá trị thay đổi, giá trị khác cũng bị ảnh hưởng theo.

  1. Các loại biến tham chiếu

– Biến tĩnh

– Biến đối tượng

– Phương pháp Parameter

– Biến địa phương

Ví dụ biến tĩnh

class test {

//below variable is static variable means it is class level variable

static int i;

public static void main(String[] args) {

// As i is an static variable it can be accessed directly without using any object

System.out.println(“Value before calling method1: ” + i);

test t1 = new test();

t1.method1();

System.out.println(“Value after calling method1: ” + i);

t1.method2();

System.out.println(“Value after calling method2: ” + i);

}

void method1() {

i++;

}

void method2() {

i++;

}

}

Ví dụ : Instance/ Local/Method Parameter

class MPE {

// Instance Variable

int i;

public static void main(String[] args) {

/*

* Here i is an Instance variable.

*/

test t1 = new test();

System.out.println(“Value before calling method1: ” + t1.i);

}

/*

* Here j is a method parameter. And k is a local variable.

*

* Note**: Local variables life is only till the end of method

*/

void method1(int j) {

int k;

i = j;

/*

* Local Variable(k)’s life ends once execution for this method

* completes. As k is local is variable it needs to be initialized

* before we can use it. But as it is not getting used here, it can stay here without initializing

*/

}

}

 

Nhận xét