Thường cần phải sử dụng các biến bổ sung sẽ chỉ được sử dụng trong chương trình con. Các biến như vậy được gọi là cục bộ (hoặc cục bộ) và chỉ có thể được thao tác trong chương trình con nơi chúng được tạo.
Phạm vi biến cục bộ là khối ngoặc nhọn trong đó nó được khai báo
Chương trình chính trong Java cũng là một chương trình con, vì vậy tất cả các biến được khai báo bên trong
main()
đều là biến cục bộ
Các chương trình con khác không "biết" gì về các biến cục bộ của các chương trình con khác.
Như vậy, có thể giới hạn phạm vi (scope) của một biến chỉ cho chương trình con ở những nơi thực sự cần thiết. Trong lập trình, kỹ thuật này được gọi là
đóng gói - ẩn một biến khỏi bị thay đổi từ bên ngoài.
Nếu cần khai báo một biến có thể nhìn thấy ở bất kỳ đâu trong chương trình (trong bất kỳ chương trình con nào), thì các biến đó được khai báo bên ngoài tất cả các chương trình con (xem chương trình 3 trong bảng bên dưới)
Các biến như vậy được gọi là
toàn cục.
Trong Java, khi chương trình bắt đầu, tất cả các biến toàn cục sẽ tự động được đặt thành 0 (các biến boolean trở thành false)
Phân tích ba chương trình:
1) Trong chương trình này, biến i là cục bộ. Biến cục bộ được khai báo bên trong chương trình con |
2) Ở đây, ngay cả khi có một biến i trong chương trình chính (với giá trị 7), một biến cục bộ mới i với giá trị 5 sẽ được tạo.
Khi chạy chương trình này, màn hình sẽ hiển thị giá trị 75 |
3) Chương trình này có biến toàn cục i. Giá trị của nó có thể được thay đổi bên trong chương trình con và bên trong chương trình chính
Thủ tục sẽ làm việc với biến toàn cục i và nó sẽ được gán giá trị mới bằng 2. Giá trị 2 | được hiển thị trên màn hình
kiểm tra khoảng trống tĩnh ()
{
int tôi = 5;
System.out.println(i);
}
|
kiểm tra khoảng trống tĩnh ()
{
int tôi = 5;
System.out.println(i);
}
public static void main(String[] args) {
{
int tôi = 7;
System.out.println(i);
Bài kiểm tra();
}
|
lớp công khai Chính {
int tôi;
kiểm tra khoảng trống tĩnh ()
{
tôi = 2;
}
public static void main(String[] args) {
{
Bài kiểm tra();
System.out.println(i);
}
|