NỘI DUNG BÀI HỌC
✳️ Kiểu dữ liệu trong Java (Data Type)
✅ Biến trong Java
Trong Java, biến là tên của một vùng nhớ. Dùng để lưu trữ giá trị và khai báo trong phương thức của một class Java. Có 3 kiểu biến trong Java, bao gồm biến Local (biến địa phương), biến instance (biến toàn cục) và biến static.
Nếu các bạn không chuyên code và mới học thì có thể hiểu biến và thuộc tính là như nhau nhưng thực ra nó có điểm khác nhau. Mình sẽ nói rõ thuộc tính ở bài "Thuộc tính và Phương thức" sau nhé.
Khai báo biến trong java
Cú pháp khai báo biến:
DataType varName [ = value] [, varName2] [ = value2]...;
Trong đó, DataType là kiểu dữ liệu của biến, varName là tên biến.
Quy tắc đặt tên biến trong java:
- Chỉ được bắt đầu bằng một ký tự(chữ), hoặc một dấu gạch dưới(_), hoặc một ký tự dollar($)
- Tên biến không được chứa khoảng trắng
- Bắt đầu từ ký tự thứ hai, có thể dùng ký tự(chữ), dấu gạch dưới(_), hoặc ký tự dollar($)
- Không được trùng với các từ khóa (class, String, static, public, void,...)
- Có phân biệt chữ hoa và chữ thường
✳️ Các loại biến trong java
🔆 Biến Local trong java
- Biến Local được khai báo trong các phương thức, hoặc hàm contructor hoặc trong các block.
- Biến Local không được gọi dùng ở các hàm khác. Chỉ sử dụng trong chính hàm khai báo biến đó.
- Biến local đượ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.
- Không được sử dụng "access modifier" khi khai báo biến local.
- Các biến local được lưu trên vùng nhớ stack của bộ nhớ.
- Bạn cần khởi tạo giá trị mặc định cho biến local trước khi có thể sử dụng.
Ví dụ 1: Khởi tạo biến local:
package anhtester.bienvadulieu;
public class Bien {
public void sayHello() {
int n = 10; // Đây là biến local
System.out.println("Gia tri cua n la: " + n);
}
public static void main(String[] args) {
Bien bienLocal = new Bien();
bienLocal.sayHello();
}
}
Kết quả:
Gia tri cua n la: 10
Ví dụ 2: Không khởi tạo biến local:
public class BienCucBo {
public void sayHello() {
int n; // Đây là biến local
System.out.println("Gia tri cua n la: " + n);
}
public static void main(String[] args) {
BienCucBo bienLocal = new BienCucBo();
bienLocal.sayHello();
}
}
Kết quả:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The local variable n may not have been initialized
🔆 Biến instance (biến toàn cục) trong java
- Biến toàn cục được khai báo trong một lớp(class), bên ngoài các phương thức, ngoài constructor và ngoài các block.
- Biến toàn cục được gọi sử dụng ở các hàm khác nhau trong cùng một class. Khác class phải xét tới phạm vi truy cập. (học ở phần Phạm vi truy cập trong Java sau)
- 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ể.
- Bạn được phép sử dụng "access modifier" khi khai báo biến instance, mặc định là "default" (private, public, protected).
- 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 đó.
Ví dụ về biến instance trong java:
package anhtester.bienvadulieu;
public class Sinhvien {
// biến instance "ten" kiểu String, có giá trị mặc định là null
public String ten;
// biến instance "tuoi" kiểu Integer, có giá trị mặc định là 0
private int tuoi;
// sử dụng biến ten trong một constructor
public Sinhvien(String ten) {
this.ten = ten;
}
// sử dụng biến tuoi trong phương thức setTuoi
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("Nguyen Van A");
sv.setTuoi(21);
sv.showStudent();
}
}
Kết quả:
Ten: Nguyen Van A
Tuoi: 21
🔆 Biến static trong java
- Biến static được khai báo trong một class với từ khóa "static", nằm bên ngoài các phương thức, ngoài constructor và ngoài block.
- 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. VD:
ThongTin
.companyName - 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.
- 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í dụ về biến static trong java:
package anhtester.bienvadulieu;
public class SinhVien {
// biến static 'ten'
public static String ten = "Võ Thái An";
// biến static 'tuoi'
public static int tuoi = 21;
public static void main(String args[]) {
// Sử dụng biến static bằng cách gọi trực tiếp
System.out.println("Tên: " + ten);
// Sử dụng biến static bằng cách gọi thông qua tên class
System.out.println("Tuổi: " + SinhVien.tuoi);
}
}
Kết quả:
Tên: Võ Thái An
Tuổi: 21
✅ Các kiểu dữ liệu trong java
Trong Java các kiểu dữ liệu được chia thành hai loại:
- Các kiểu dữ liệu nguyên thủy
- Các kiểu dữ liệu đối tượng
🔆 Kiểu dữ liệu nguyên thủy
Java cung cấp các kiểu dữ liệu cơ bản như sau:
Kiểu dữ liệu | Mô tả |
---|---|
String | Dùng để lưu dữ liệu kiểu chuỗi. VD: "Automation Test", "Selenium",... Dạng này dùng rất nhiều. |
byte | Dùng để lưu dữ liệu kiểu số nguyên có kích thước một byte (8 bít). Phạm vi biểu diễn giá trị từ -128 đến 127. Giá trị mặc định là 0. |
char | Dùng để lưu dữ liệu kiểu kí tự hoặc số nguyên không âm có kích thước 2 byte (16 bít). Phạm vi biểu diễn giá trị từ 0 đến u\ffff. Giá trị mặc định là 0. |
boolean | Dùng để lưu dữ liệu chỉ có hai trạng thái đúng hoặc sai (độ lớn chỉ có 1 bít). Phạm vi biểu diễn giá trị là {“True”, “False”}. Giá trị mặc định là False. |
short | Dùng để lưu dữ liệu có kiểu số nguyên, kích cỡ 2 byte (16 bít). Phạm vi biểu diễn giá trị từ - 32768 đến 32767. Giá trị mặc định là 0. |
int | Dùng để lưu dữ liệu có kiểu số nguyên, kích cỡ 4 byte (32 bít). Phạm vi biểu diễn giá trị từ -2,147,483,648 đến 2,147,483,647. Giá trị mặc định là 0. |
long | Dùng để lưu dữ liệu có kiểu số nguyên có kích thước lên đến 8 byte. Giá trị mặc định là 0L. |
float | Dùng để lưu dữ liệu có kiểu số thực, kích cỡ 4 byte (32 bít). Giá trị mặc định là 0.0F. |
double | Dùng để lưu dữ liệu có kiểu số thực có kích thước lên đến 8 byte. Giá trị mặc định là 0.00D |
🔆 Kiểu dữ liệu đối tượng
Trong Java có 3 kiểu dữ liệu đối tượng:
Kiểu dữ liệu | Mô tả |
---|---|
Array | Một mảng của các dữ liệu cùng kiểu. |
Class | Dữ liệu kiểu lớp đối tượng do người dùng định nghĩa. Chứa tập các thuộc tính và phương thức.. |
Interface | Dữ liệu kiểu lớp giao tiếp do người dùng định nghĩa. Chứa các phương thức của giao tiếp. |
Các kiểu dữ liệu này chúng ta sẽ học các bài sau chuyên sâu hơn để hiểu rõ hơn về nó.