Bài 7: Các kiểu biến trong Java - Lập trình Java cơ bản

Đăng bởi: Admin | Lượt xem: 9117 | Chuyên mục: Java


Trong Java, có 3 kiểu biến trong Java bao gồm:
  1. Biến local ( biến cục bộ)
  2. Biến instance ( biến toàn cục )
  3. Biến static 

1. Cách khai báo biến trong Java

Để khai báo biến, ta sử dụng cú pháp cơ bản sau
kieu_du_lieu bien [ = giatri][, bien [= giatri] ...] ;
Khi khai báo, hãy tuân thủ quy tắc đặt tên biến đã được đề cập đến trong bài số 5. Ví dụ
package com.company;

public class Demo {
    private static final int CONST = 1; // biến static
    private int a = 2; // biến toàn cục

    public Demo() {
        int b = 3; //biến cục bộ
    }
}

2. Biến cục bộ

Biến cục bộ là biến được khai báo trong một khối lệnh ( đó có thể các phương thức, hàm constructor hoặc một block)
  • Các biến cục bộ được khởi tạo khi các hàm, hàm tạo hoặc các khối lệnh được tạo ra và sẽ bị hủy bỏ một khi các hàm, hàm tạo hoặc các khối lệnh chứa nó kết thúc.
  • Không sử dụng phạm vi truy cập khi khai báo biến cục bộ
  • Cần phải khởi tạo giá trị mặc định cho biến cục bộ khi khai báo chúng,
  • Biến cục bộ được lưu trong vùng nhớ stack của bộ nhớ.
Ví dụ:
package com.company;

public class Main {

    public void printHelloWorld() {
        String str = "Hello World!";
        System.out.println(str);
    }

    public static void main(String[] args) {
        Main main = new Main();
        main.printHelloWorld();
    }
}
Kết quả thu được:
Hello World!
Tuy nhiên cũng trong trường hợp này, nếu ta không khởi tạo giá trị cho biến str của phương thức printHelloWorld() thì chương trình sẽ ngay lập tức báo lỗi.

3. Biến toàn cục

Các biến toàn cục hay còn gọi là thuộc tính, được khai báo trong một lớp, nhưng ở bên ngoài một phương thức, constructor hoặc bất kỳ khối lệnh nào.
  • Biến toàn cục được tạo khi một đối tượng được tạo bằng cách 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ể.
  • Bạn được phép sử dụng "access modifier" khi khai báo biến instance, mặc định là "default".
  • Biến instance có giá trị mặc định phụ thuộc vào kiểu dữ liệu của nó. 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, ... Vì vậy, bạn sẽ không cần khởi tạo giá trị cho biến instance trước khi sử dụng.
  • 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 đó.
  • Biến toàn cục được lưu trữ trong bộ nhớ heap.
Các đặc điểm của biến toàn cục có liên quan mật thiết đến phần lập trình hướng đối tượng, tạm thời chúng ta chưa đi sâu, trong phần sau của khóa học sẽ tìm hiểu chi tiết và cụ thể hơn.
Ví dụ: 
package com.company;

public class BkitEmployee {
    private String name; //biến toàn cục

    public BkitEmployee(String name){
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public static void main(String[] args){
        BkitEmployee bkitEmployee = new BkitEmployee("Huy Nguyen");
        System.out.println("Tên: "+bkitEmployee.getName());
    }

}
Kết quả thu được:
Tên: Huy Nguyen

4. Biến static: 

Các biến static được khai báo với từ khóa static trong một lớp, nhưng ở bên ngoài một phương thức, constructor hoặc một khối.
  • Sẽ chỉ có một bản sao của mỗi biến class cho mỗi lớp, bất chấp việc bao nhiêu đối tượng được tạo từ nó.
  • Các biến static được lưu giữ trong bộ nhớ static.
  • Các biến static được tạo khi chương trình bắt đầu và bị hủy khi chương trình kết thúc.
  • 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" và ngược lại.
Ví dụ:
package com.company;

public class BkitEmployee {
    // biến static khai báo tên
    public static String name = "Huy Nguyen";

    public static void main(String args[]) {
        // Gọi trực tiếp
        System.out.println("Ten : " + name);

        // Gọi thông qua tên class
        System.out.println("Ten : " + BkitEmployee.name);
    }
}
Kết quả thu được:
Ten : Huy Nguyen
Ten : Huy Nguyen
Bài tiếp theo: Toán tử trong Java >>
vncoder logo

Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!