Biến và phạm vi biến trong Java

Trong java, biến là một link tới một vị trí trên bộ nhớ ( memory ) để chứa tài liệu. Có 3 kiểu biến trong java, gồm có biến cục bộ ( hay còn gọi là biến local ), biến toàn cục ( biến instance ) và biến tĩnh ( biến static ) .

  • 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ớ đó.

bien-va-pham-vi-bien-trong-java

Khai báo biến

Cú pháp khai báo biến :

kieu_du_lieu ten_bien 

=

gia_tri;

Trong đó :

  • kieu_du_lieu: là kiểu dữ liệu mà biến có thể lưu trữ (kiểu số, kiểu văn bản…) tương ứng với int, long, String… trong Java
  • ten_bien là tên của biến, tên biến là một xâu kí tự được đặt theo quy tắc đặt tên của java
  • InitValue là giá trị khởi tạo cho biến, đây là phần tuỳ chọn, nếu bỏ qua phần này thì giá trị ban đầu của biến được khởi tạo giá trị mặc định. Ví dụ kieu_du_lieu là int thì gia_tri phải là kiểu số nguyên và nằm trong phạm vi từ -2,147,483,648 đến 2,147,483,647

Nếu cần khai báo nhiều biến có cùng một kiểu tài liệu ta hoàn toàn có thể đặt những khai báo những biến trên một dòng, những biến này được ngăn cách nhau bởi dấu phảy. Java sẽ giải quyết và xử lý những biến không được khởi đầu giá trị như sau :

  • Giá trị 0 cho kiểu dữ liệu số
  • false cho kiểu logic
  • Kí tự null (mã 0) cho kí tự
  • Giá trị null cho kiểu đối tượng
  • Đối với các biến cục bộ thì biến không được khới gán giá trị mặc định, tuy nhiên Java sẽ báo lỗi nếu ta sử dụng một biến chưa được nhận giá trị

Phạm vi Biến

Mỗi biến được khai báo ra có một khoanh vùng phạm vi hoạt động giải trí, khoanh vùng phạm vi của biến là nơi mà biến hoàn toàn có thể được truy vấn, điều này xác lập cả tính thấy được và thời hạn sống của biến

bien-va-pham-vi-bien-trong-java

Biến local trong java

  • Biến cục bộ được khai báo trong các phương thức, hàm contructor hoặc trong các block.
  • Biến cục bộ được tạo bên trong các phương thức, contructor, block và sẽ bị phá hủy khi kết thúc các phương thức, contructor và block.
  • Các biến cục bộ sẽ nằm trên vùng bộ nhớ stack của bộ nhớ.
  • Bạn cần khởi tạo giá trị mặc định cho biến cục bộ trước khi có thể sử dụng.
  • Không được sử dụng access modifier khi khai báo biến cục bộ.

Khởi tạo biến local :

public class Bien {

    public void sayHello() {
        int n = 10;  
        System.out.println(" Gia tri cua n la : " + n);
    }

    public static void main(String[] args) {
        Bien bienLocal = new Bien();
        bienLocal.sayHello();
    }
}

Giá trị của n là: 10

public class Bien {

    public void sayHello() {
        int n;                  
        System.out.println(" Gia tri cua n la : " + n);
    }

    public static void main(String[] args) {
        Bien bienLocal = new Bien();
        bienLocal.sayHello();
    }
}

Exception in thread "main" java.lang.Error: Unresolved compilation problem: The local variable n may not have been initialized

Biến biến instance (biến toàn cục) trong java

  • 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 block.
  • Biến instance được lưu trong bộ nhớ heap.
  • Biến instance được tạo khi một đối tượng được tạo bằng việc sử dụng từ khóa new và sẽ bị phá hủy khi đối tượng bị phá hủy.
  • Biến instance có thể được sử dụng bởi các phương thức, constructor, block, … Nhưng nó phải được sử dụng thông qua một đối tượng cụ thể.
  • Biến instance có giá trị mặc định phụ thuộc vào kiểu dữ liệu của nó.
  • Bên trong class mà bạn khai báo biến instance, bạn có thể gọi nó trực tiếp bằng tên khi sử dụng ở khắp nới bên trong class đó.
  • Bạn được phép sử dụng access modifier khi khai báo biến instance, mặc định là default.
public class SinhVien {
     
    public String ten;

     
    private int tuoi;

     
    public Sinhvien(String ten) {
        

this

.ten = ten; } public void setTuoi(int tuoi) { this.tuoi = tuoi; } public void showStudent() { System.out.println(" Ten : " + ten); System.out.println(" Tuoi : " + tuoi); } public static void main(String args[]) { Sinhvien sv = new Sinhvien(" Thaycacac "); sv.setTuoi(21); sv.showStudent(); } }

Ten : Thaycacac
Tuoi : 21

Biến static trong java

  • Biến static được khai báo trong một class với từ khóa static, phía bên ngoài các phương thức, constructor và block.
  • Sẽ 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.
  • 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ị phá 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 của class chứa nó, với cú pháp: TenClass.tenBien.
  • Trong class, các phương thức sử dụng biến static bằng cách gọi tên của nó khi phương thức đó cũng được khai báo với từ khóa static.
public class Sinhvien {
     
    public static String ten = " Thaycacac ";

     
    public static int tuoi = 21;

    public static void main(String args[]) {
         
        System.out.println(" Ten : " + ten);

         
        System.out.println(" Ten : " + Sinhvien.tuoi);
    

}

}

Ten : Thaycacac
Tuoi : 21