Bỏ qua để đến nội dung

Biến (Variable)

Biến giống như một “chiếc hộp” lưu trữ dữ liệu để dùng lại sau này. Trong Java, bạn phải khai báo kiểu dữ liệu của biến khi tạo nó, vì Java là ngôn ngữ kiểu tĩnh (statically typed).

public class Main {
public static void main(String[] args) {
int year = 2025; // Khai báo biến kiểu int, gán giá trị 2025
int nextYear = year + 1; // Dùng biến year khi cần
System.out.println(year);
String message = "Hello Java"; // Khai báo biến kiểu String
}
}

Cú pháp khai báo: <kiểu dữ liệu> <tên biến> = <giá trị>;

Java cho phép khai báo biến trước mà chưa gán giá trị:

int age; // Khai báo, chưa có giá trị
age = 20; // Gán giá trị sau
int score = 100; // Khai báo và gán cùng lúc (khuyến nghị)

⚠️ Khác với C++, Java không cho phép đọc biến cục bộ chưa khởi tạo - trình biên dịch sẽ báo lỗi “variable might not have been initialized” nếu bạn cố dùng biến trước khi gán giá trị, giúp tránh hẳn lỗi giá trị rác.

3. Kiểu dữ liệu cố định - không thể đổi kiểu

Phần tiêu đề “3. Kiểu dữ liệu cố định - không thể đổi kiểu”

Một khi đã khai báo kiểu, biến không thể chứa giá trị của kiểu khác:

int fruit = 5;
// fruit = "apple"; // LỖI BIÊN DỊCH! Không thể gán chuỗi cho biến int
fruit = 10; // OK, vẫn là int

Kiểu dữ liệu của biến được xác định ngay từ khi khai báo và không thể thay đổi trong suốt vòng đời của biến đó.

int a = 1, b = 2, c = 3; // Khai báo nhiều biến cùng kiểu trên một dòng
System.out.println(a + " " + b + " " + c);
int x = 10, y = 10, z = 10; // Cùng giá trị (phải lặp lại giá trị cho từng biến)

Java không có cú pháp gán đồng thời nhiều biến bằng nhiều giá trị khác nhau trên một dòng (kiểu a, b, c = 1, 2, 3 như Python).

  1. Tên phải bắt đầu bằng chữ cái, _ hoặc $, không được bắt đầu bằng số.
    • Hợp lệ: name, _value, $price
    • Không hợp lệ: 1age
  2. Chỉ chứa chữ cái, chữ số, _$ - không dùng ký tự đặc biệt khác (*, -, #…).
  3. Phân biệt chữ hoa/chữ thường: fruitFruit là hai biến khác nhau.
  4. Không được trùng với từ khóa (keyword) của Java như int, class, if, for
  5. Không được có khoảng trắng trong tên biến.

Quy ước chuẩn trong Java: camelCase (ví dụ totalSum, studentName) cho biến và phương thức; UPPER_SNAKE_CASE cho hằng số (final).

public class Main {
public static void main(String[] args) {
String message = "I love " + "Java.";
System.out.println(message); // I love Java.
String language = "Java";
int year = 2026;
System.out.println(language + " " + year); // Java 2026
}
}
  • Biến trong Java phải khai báo kiểu dữ liệu, kiểu này không thay đổi trong suốt vòng đời của biến
  • Biến cục bộ chưa khởi tạo sẽ gây lỗi biên dịch khi dùng, không có giá trị rác như C/C++
  • Quy tắc đặt tên: không bắt đầu bằng số, không dùng ký tự đặc biệt (trừ _, $), không trùng từ khóa; quy ước dùng camelCase