1. Biến trong Java là gì?

Biến – Variable là một vùng chứa dữ liệu lưu các giá trị dữ liệu trong quá trình thực thi chương trình Java. Mỗi biến được gán một kiểu dữ liệu chỉ định kiểu và số lượng giá trị mà nó có thể giữ. Biến là tên vị trí bộ nhớ của dữ liệu. Giá trị trên bộ nhớ mà biến liên kết tới chính là giá trị của biến. Kiểu dữ liệu của biến cũng chính là kiểu dữ liệu lưu trên bộ nhớ đó. Trong Java, tất cả các biến phải được khai báo trước khi sử dụng.

Ta có thể hiểu nôm na biến là các đối tượng dùng để lưu trữ dữ liệu và các giá trị này có thể thay đổi được. Và trong Java thường có 3 loại biến mà ta thường gặp nhất:

  • Biến cục bộ (local) : Đây là biến thường được khai báo trong 1 hay nhiều block ( {} ), và nó chỉ có thể hoạt động được trong phạm vi của block đó.
  • Biến toàn cục (instance) : Đây là biến được khai báo trong một lớp nhưng lại không nằm trong block của method . Thuật ngữ của biến này thường được gọi là thuộc tính (property).
  • Biến tĩnh (static) : Biến này tương tự như biến instance, nhưng sẽ luôn luôn chỉ có duy nhất một bản sao của các biến static được tạo ra, dù bạn tạo bao nhiêu đối tượng từ lớp tương ứng.

Ta sẽ được tìm hiểu kỹ hơn về những loại biến ở phần sau nhé

2. Khai báo một biến trong Java

Khai báo một biến trong Java là xử lý khai báo biến đồng thời với việc gán giá trị ban đầu cho biến đó. Để khai báo biến trong Java, chúng ta viết kiểu dữ liệu, tên biến cũng như là giá trị ban đầu của biến đó như sau:

type name = value;

  • type là kiểu dữ liệu của biến. Nó có thể là int , char , float hoặc String mà ta sẽ học trong bài Kiểu dữ liệu trong Java
  • name là tên biến sẽ được đặt theo quy tắc nhất định
  • value là giá trị của biến.

Ví dụ: Tạo một biến name kiểu String và gán cho nó giá trị “Lập Trình Từ Đầu”:

class Main {
  public static void main(String[] args) {
    String name = "Lập Trình Từ Đầu";
    System.out.println(name);
  }
}

Kết quả :

Lập Trình Từ Đầu

Lưu ý

Khi khởi tạo biến trong Java thì chúng ta chỉ có thể gán một giá trị vào một biến có kiểu giống nó mà thôi.

2.1. Khai báo biến cục bộ

Một biến được xác định trong một khối hoặc phương thức hoặc hàm tạo được gọi là biến cục bộ – Local .

Các biến này được tạo khi khối được nhập hoặc hàm được gọi và bị hủy sau khi thoát khỏi khối hoặc khi lệnh gọi trả về từ hàm. Phạm vi của các biến này chỉ tồn tại trong khối mà biến được khai báo. Tức là, chúng ta chỉ có thể truy cập các biến này trong khối đó. Khởi tạo biến cục bộ là bắt buộc trước khi sử dụng nó trong phạm vi đã xác định.

Cú pháp :

kieu_du_lieu tenbien;
// hoac
kieu_du_lieu tenbien = gia_tri_cua_bien;

Trong đó

  • access_modifier là phạm vi truy cập của biến. Nếu không khai báo thì nó sẽ là public
  • kieu_du_lieu là kiểu dữ liệu của biến muốn khai báo.
  • tenbien là tên của biến muốn khai báo.
  • gia_tri_cua_bien là giá trị của biến mà muốn gán. Nếu bỏ trống trường này thì giá trị của biến sẽ bằng giá trị default của kiểu dữ liệu mà bạn khai báo.

Ví dụ: khai báo một biến age với kiểu dữ liệu là kiểu int và gán nó bằng 19

int age = 19;

2.2. Khai báo biến toàn cục

Biến toàn cục – instance là các biến được khai báo trong một lớp. Nhưng nó không nằm trong bất kì một phương thức, một hàm tạo hay khối lệnh nào cả. Các biến khi khởi tạo nếu không gán giá trị thì nó sẽ có giá trị mặc định. Các biến này có thể được sử dụng trong bất kì phương thức, hàm tạo,hay khối lệnh nào thuộc lớp chứa nó.

Cú pháp khai báo biến này thì tương đối giống với biến toàn cục. Chỉ khác là khai báo biến này sẽ cần chỉ định thêm access modifier cho biến

access_modifier kieu_du_lieu tenbien;
// hoac
access_modifier kieu_du_lieu tenbien = gia_tri_cua_bien;

Trong đó:

  • access_modifier là phạm vi truy cập của biến. Nếu không khai báo thì nó sẽ là public
  • kieu_du_lieu là kiểu dữ liệu của biến muốn khai báo.
  • tenbien là tên của biến muốn khai báo.
  • gia_tri_cua_bien là giá trị của biến mà muốn gán. Nếu bỏ trống trường này thì giá trị của biến sẽ bằng giá trị default của kiểu dữ liệu mà bạn khai báo.

Ví dụ:

class Main{
    public void intTuoi(){
        int tuoi=19;//Biến cục bộ trong phương thức intTuoi()
        System.out.println(tuoi);
    }
    public static void main(String[] args){
        int nam_sinh = 2002;
        if (nam_sinh >0){
            int tuoi =2022-nam_sinh;// Biến cục bộ trong khối lệnh if
            System.out.println(tuoi);
        }
    }
}

Kết quả

19

2.3. Khai báo biến static

Biến static – biến tĩnh được khai báo bên trong lớp giống như biến instance . Nhưng nó lại không nằm trong bất kì một phương thức, một hàm tạo hay khối lệnh nào cả. Các biến này có thể được sử dụng trong bất kì phương thức, hàm tạo,hay khối lệnh nào thuộc lớp chứa nó. Các biến static được tạo khi chương trình chạy và chỉ bị hủy khi chương trình dừng. Thường dùng biến static để khai báo các biến hằng.
Cú pháp khai báo với từ khóa static

access_modifier static kieu_du_lieu tenbien;
// hoac
access_modifier static kieu_du_lieu tenbien = gia_tri_cua_bien;

Nếu biến static cùng tên với biến cục bộ thì phương thức, hàm tạo hay khối lệnh sẽ ưu tiên sử dụng biến cục bộ trước.