Tiếp theo phần 1, hôm nay chúng ta hãy cùng tìm hiểu hai phạm vi còn lại của biến trong Java và xem xét xem trong trường hợp các biến có cùng tên nhưng khác phạm vi thì Java sẽ xử lý như thế nào các bạn nhé!
Biến nằm bên trong một đối tượng
Biến nằm bên trong một đối tượng, hay tiếng Anh còn gọi là instance variables, có giá trị trong một vòng đời của một đối tượng. Chúng được định nghĩa bên trong một lớp nhưng ở bên ngoài tất cả các phương thức và nó có thể được truy cập bởi các phương thức không phải static nằm bên trong lớp đó.
Ví dụ bên dưới biến a là một biến instance variable:
1 2 3 4 5 6 7 8 9 10 |
package com.huongdanjava; public class Example { private int a; public int getA() { return a; } } |
Phạm vi của một biến nằm bên trong một đối tượng rộng hơn biến nằm bên trong một phương thức hay là một tham số của phương thức. Bởi vì nó có thể được truy cập bên trong tất cả các phương thức nằm trong lớp đó và có thể được truy cập từ các lớp khác nếu nó được định nghĩa với access modifier phù hợp.
Ví dụ:
Biến static của một lớp
Biến static của một lớp, hay còn là class variables, được định nghĩa sử dụng từ khóa static. Biến này thuộc về lớp, không thuộc về đối tượng của lớp đó và giá trị của biến này được chia sẻ giữa tất cả các đối tượng của lớp đó, nghĩa là giá trị của nó sẽ giống nhau ở tất cả các đối tượng.
Ví dụ biến NAME dưới đây là một biến static:
1 2 3 4 5 |
package com.huongdanjava; public class Example { public static final String NAME = "Khanh"; } |
Chúng ta không cần phải khởi tạo đối tượng để có thể truy cập giá trị của biến static. Chúng có thể truy cập bằng cách sử dụng tên của lớp mà chúng được định nghĩa bên trong.
Ví dụ
Hoặc sử dụng đối tượng để truy cập biến static vẫn được:
Phạm vi của một biến static là nó có thể được truy cập từ bất cứ đối tượng nào của lớp định nghĩa nó và cả những đối tượng của các lớp khác nếu nó được định nghĩa với access modifier phù hợp.
Biến có cùng tên nhưng khác phạm vi
Trong một lớp, chúng ta không thể định nghĩa một biến static và một biến instance variable có cùng tên các bạn nhé!
Cả biến nằm trong một phương thức và biến là tham số của một phương thức, chúng ta cũng không thể định nghĩa cùng tên được các bạn nhé!
Nhưng chúng ta có thể định nghĩa một biến nằm trong phương thức có cùng tên với biến static hoặc biến instance variable các bạn ạ! Ví dụ như sau:
hoanglm
Bài viết thật là hữu ích. cảm ơn khánhnq
Khanh Nguyễn
😀 , Khanhnq là ai thế bạn?
Chim cu
Ý là KhanhNg đó a