Biến là các đối tương dùng để lưu trữ dữ liệu, trong Java thì chúng còn được gọi là trường hoặc thuộc tính.
public class Bicycle { int gear = 1; int speed = 0; }
Trong đoạn code trên thì gear
và speed
là các biến, có kiểu dữ liệu là int,
chúng ta sẽ tìm hiểu về kiểu dữ liệu sau.
Trong Java có 4 loại biến:
- Biến đối tượng: đây là biến động, tức là mỗi biến trong mỗi đối tượng sẽ khác nhau, chẳng hạn như biến
speed
trong 2 đối tượng Bicycle sẽ có giá trị khác nhau. - Biến lớp: hay còn gọi là biến tĩnh – static, giá trị của biến này trong các đối tượng cùng lớp là giống nhau. Để khai báo biến tĩnh thì chúng ta thêm từ khóa
static
vào trước tên kiểu dữ liệu, ví dụstatic int gears = 6
. - Biến cục bộ: biến cục bộ là các biến được khai báo trong một phạm vi nào đó, về cơ bản thì chúng không khác gì biến đối tượng bình thường, và cũng không cần một từ khóa thêm nào. Biến cục bộ chỉ đơn giản là nằm giữa một cặp dấu ngoặc nhọn
{}
nào đó, và chúng ta chỉ có thể làm việc với chúng trong cặp dấu ngoặc nhọn đó. - Biến tham số: trong các bài trước chúng ta đã thấy dòng code
public static void main(String[] args),
trong đóargs
chính là một biến tham số, biến tham số là các dữ liệu được truyền vào một phương thức, và chỉ có thể được đọc hoặc ghi trong phương thức đó.
Đặt tên biến
Ứng với mỗi ngôn ngữ lập trình thì lại có những quy tắc đặt tên biến khác nhau mà chúng ta phải tuân theo:
- Tên biến trong Java là có phân biệt HOA-thường, tức là
age
vàAge
là 2 biến khác nhau. - Kí tự đầu tiên của tên biến có thể là các kí tự Latin (A-Z, a-z), dấu
'$'
hoặc dấu gạch dưới'_'.
Không được sử dụng dấu cách. - Các kí tự tiếp theo có thể là các kí tự Latin (A-Z, a-z), kí tự số (0-9), dấu
'$'
và dấu gạch dưới'_'.
- Thông thường nếu tên biến là một từ có nghĩa thì chúng ta ghi từ đó viết thường, còn nếu có 2 từ trở lên thì kí tự đầu tiên của từ thứ 2 trở đi nên được viết HOA. Ví dụ
age
,fullName
,dateOfBirth
. - Không được phép đặt tên biến trùng với các từ khóa có sẵn trong Java.
Dưới đây là danh sách các từ khóa có sẵn trong Java:
abstract continue for new switch assert default goto package synchronized boolean do if private this break double implements protected throw byte else import public throws case enum instanceof return transient catch extends int short try char final interface static void class finally long strictfp volatile const float native super while
Ví dụ dưới đây là các biến hợp lệ:
int age; int $hairColor; String _name; int subject1;
Và đây là các biến không hợp lệ:
int try; // Trùng với từ khóa try int 1year; // Bắt đầu bằng chữ số String your name; // Có khoảng trắng