Lập trình

Biến trong Java - Làm thế nào để khai thác tối đa sức mạnh của biến trong Java?

Huy Erick

Biến là một khái niệm quan trọng trong ngôn ngữ lập trình Java. Chúng tôi cung cấp cho bạn một cái nhìn tổng quan về ba loại biến trong Java - biến cục bộ (local),...

Biến là một khái niệm quan trọng trong ngôn ngữ lập trình Java. Chúng tôi cung cấp cho bạn một cái nhìn tổng quan về ba loại biến trong Java - biến cục bộ (local), biến toàn cục (instance) và biến tĩnh (static), và cách sử dụng chúng trong chương trình của bạn.

Khai báo biến - Điều gì bạn cần biết?

Biến là nơi để lưu trữ các giá trị trong chương trình của bạn. Mỗi biến được gắn với một kiểu dữ liệu và được đặt tên duy nhất. Dưới đây là cú pháp để khai báo biến trong Java:

DataType varName;

Ví dụ:

int x1 = 1;
int x1 = 1, x2 = 3;
int x1 = 2; long x2 = 1;

Có một số quy tắc đặt tên biến mà bạn nên tuân thủ:

  • Tên biến phân biệt chữ HOA và chữ thường.
  • Tên biến chấp nhận các ký tự chữ cái, số, dấu _ và dấu $.
  • Tên biến phải bắt đầu bằng một chữ cái, một dấu _ hoặc dấu $. Không bắt đầu bằng ký tự số.
  • Tên biến không được trùng với các từ khóa.
  • Tên biến không có khoảng trắng trong tên.
  • Biến có thể được khai báo ở bất kỳ đâu trong chương trình.
  • Từ Java 9, tên biến không được phép chỉ là 1 ký tự gạch dưới (_).

Để làm cho mã nguồn Java dễ đọc và dễ theo dõi, người ta thường sử dụng quy tắc đặt tên biến đặc biệt như sau:

  • Tên lớp: ký tự đầu tiên của một từ viết hoa, các ký tự còn lại viết thường. Ví dụ: class Nguoi, class SinhVien, class InputStream, ...
  • Tên biến, hằng, phương thức: ký tự đầu tiên viết thường, ký tự đầu tiên của từ thứ hai trở đi viết hoa. Ví dụ: String ten, Date ngaySinh, int diemTrungBinh, ...

Bên cạnh các tiêu chuẩn cơ bản trên, khi tham gia vào các dự án thực tế, bạn sẽ nhận được tài liệu mô tả đầy đủ về các tiêu chuẩn đặt tên biến. Nếu bạn quan tâm, hãy tìm hiểu thêm về Tiêu chuẩn coding trong Java.

Các loại biến và phạm vi tồn tại

Biến cục bộ (local)

  • Biến local được khai báo trong các phương thức, hàm constructor hoặc trong các khối code.
  • Biến local tồn tại và bị hủy khi phương thức, constructor hoặc khối code kết thúc.
  • Không sử dụng "access modifier" khi khai báo biến local.
  • Các biến local được lưu trữ trong vùng nhớ stack của bộ nhớ.
  • Bạn cần khởi tạo giá trị cho biến local trước khi sử dụng.

Biến toàn cục (instance)

  • Biến instance được khai báo trong một lớp (class), bên ngoài các phương thức, constructor và các khối code.
  • Biến instance được lưu trữ trong bộ nhớ heap.
  • Biến instance được tạo ra khi tạo một đối tượng bằng từ khóa "new" và bị hủy khi đối tượng bị hủy.
  • Biến instance có thể được sử dụng bởi các phương thức, constructor, khối code, ... nhưng phải thông qua một đối tượng cụ thể.
  • Bạn có thể sử dụng "access modifier" khi khai báo biến instance, mặc định là "default".
  • Giá trị mặc định của biến instance phụ thuộc vào kiểu dữ liệu. Ví dụ: nếu là kiểu int, short, byte thì giá trị mặc định là 0; kiểu double thì là 0.0d; ...
  • Bạn có thể gọi biến instance trực tiếp bằng tên trong lớp mà bạn khai báo biến.

Biến tĩnh (static)

  • Biến static được khai báo trong một lớp với từ khóa "static", bên ngoài các phương thức, constructor và các khối code.
  • Chỉ có một bản sao của biến static được tạo ra, dù bạn tạo bao nhiêu đối tượng từ lớp tương ứng.
  • Biến static được lưu trữ trong bộ nhớ static riêng.
  • Biến static được tạo khi chương trình bắt đầu chạy và chỉ bị hủy khi chương trình dừng.
  • Giá trị mặc định của biến static phụ thuộc vào kiểu dữ liệu bạn khai báo, tương tự biến instance.
  • Biến static được truy cập thông qua tên lớp chứa biến đó, với cú pháp: TenLop.tenBien.
  • Trong lớp, các phương thức sử dụng biến static bằng cách gọi tên biến đó khi phương thức cũng được khai báo với từ khóa "static".

Dưới đây là một ví dụ minh họa:

public class Student {
    public static String name = "GP Coder";  // Biến static 'name'
    public static int age = 21;  // Biến static 'age'

    public static void main(String args[]) {
        System.out.println("Name: " + name );  // Sử dụng biến static bằng cách gọi trực tiếp
        System.out.println("Age: " + Sinhvien.age );  // Sử dụng biến static bằng cách gọi thông qua tên lớp
    }
}

Phạm vi tồn tại của biến

  • Biến cục bộ (local): Trong phạm vi từ khai báo đến cuối khối (block).
  • Biến toàn cục (instance): Trong phạm vi từ khai báo cho đến khi đối tượng đủ điều kiện để thu gom rác.
  • Biến tĩnh (static): Trong phạm vi từ khai báo cho đến khi chương trình kết thúc.

Hằng - Vững vàng trong chương trình của bạn

Hằng là một giá trị không thay đổi trong chương trình của bạn. Hãy cùng tìm hiểu các đặc điểm đặt tên và sử dụng hằng trong Java.

Qui ước đặt tên hằng tương tự tên biến. Dưới đây là các qui ước đặt tên hằng cho các kiểu dữ liệu khác nhau:

  • Hằng số nguyên: Nếu giá trị hằng là kiểu long/Long, hãy thêm chữ "l" hoặc "L" vào cuối số. Ví dụ: 1L.
  • Hằng số thực: Nếu giá trị hằng là kiểu float/Float, hãy thêm chữ "f" hoặc "F" vào cuối số; nếu là kiểu double/Double, hãy thêm chữ "d" hoặc "D" vào cuối số. Ví dụ: 1d, 1f.
  • Hằng Boolean: Chỉ có hai giá trị true và false.

Ví dụ minh họa:

public class VariableTutorial {
    final int hangSo = 10;  // Hằng số
    String bienToanCuc = "Đây là biến toàn cục";
    int number1 = 10;

    public void testVarial() {
        number1 = 20;  // Biến bình thường có thể thay đổi giá trị
        hangSo = 50;  // Lỗi: không thể thay đổi hằng số
    }

    public static void main(String[] args) {
        String bienCucBo = "Đây là biến cục bộ";
    }
}

Trên đây là một số thông tin cơ bản về biến trong Java. Sử dụng biến thông minh và hiệu quả trong chương trình của bạn để đạt được sức mạnh tối đa!

Ảnh minh họa: Biến trong Java

Nếu bạn quan tâm đến các khía cạnh khác của Java, hãy khám phá thêm các chuyên mục Java cơ bản. Đừng quên để lại bình luận của bạn ở phần dưới nếu bạn có bất kỳ câu hỏi hoặc ý kiến nào. Chúng tôi rất mong được nghe từ bạn!

1