NỘI DUNG BÀI VIẾT
Bài viết này sẽ chia sẻ với các bạn kiến thức cơ bản về ép kiểu trong Java.
Ép kiểu là gì? Ý nghĩa của ép kiểu?
Ép kiểu là cách chuyển biến thuộc kiểu dữ liệu này thành biến thuộc kiểu dữ liệu khác.
Ý nghĩa:
- Việc chuyển kiểu dữ liệu sẽ đến lúc cần trong quá trình xử lý chương trình.
- Có thể định dạng đúng kiểu dữ liệu mình mong muốn.
Cách sử dụng ép kiểu trong Java
Có 2 cách ép kiểu:
- Ép kiểu dữ liệu đối với dữ liệu nguyên thủy (Primitive Data Types)
- Ép kiểu dữ liệu tham chiếu (Reference Types)
Trong bài này chỉ nói đế ép kiểu dữ liệu nguyên thủy, còn đối với ép kiểu dữ liệu tham chiếu thì cách ép kiểu là những hàm (phương thức) ép kiểu do người ta viết riêng cho mỗi kiểu dữ liệu tham chiếu đó.
Trong ép kiểu dữ liệu nguyên thủy được chia ra làm 2 loại:
- Chuyển đổi kiểu ngầm định (implicit).
- Chuyển đổi kiểu tường minh (explicit).
Chuyển đổi kiểu ngầm định (implicit)
Việc chuyển đổi sẽ tự thực hiện bởi compiler và chúng ta không cần làm gì. Việc chuyển đổi này dành cho kiểu dữ liệu nhỏ sang kiểu dữ liệu lớn hơn.
Ví dụ: Ta lấy một biến kiểu int gán cho biến kiểu long
public class Test{ public static void main(String[] args) { int a = 10; long b = a; System.out.println(b); } }
Kết quả: 10
Chuyển đổi kiểu tường minh (explicit)
Ngược lại với cách chuyển đổi ngầm định, việc chuyển đổi tường mình là chiều ngược lại từ kiểu dữ liệu lớn hơn sang kiểu dữ liệu nhỏ hơn (với điều kiện giá trị đó kiểu dữ liệu sẽ thay đổi có thể lưu trữ được trong kiểu dữ liệu mới).
Với ép kiểu theo cú pháp:
(Kiểu dữ liệu) Tên biến;
Ví dụ: Ta lấy biến kiểu long gán giá trị cho biến kiểu int
public class Test{ public static void main(String[] args) { long a = 5; int b = (int)a; System.out.println(b); } }
Kết quả: 5
Lưu ý: Nếu ép kiểu dữ liệu char sang kiểu dữ liệu số hoặc ngược lại. Khi ép kiểu char sang số thì sẽ ép kiểu ngầm định chuyển ký tự sang hệ thập phân ASCII tương ứng ký tự đó. Nếu ngược lại thì phải sử dụng ép kiểu tường minh để chuyển sang kiểu ký tự.
Ví dụ: Ép kiểu ký tự A sang hệ ASCII tương ứng:
public static void main(String[] args) { char a = 'A'; int b = a; char c = (char) b; System.out.print(b + " "); System.out.print(c); }
Kết quả: 65 A
Kết luận:
Có 2 loại ép kiểu: Ép kiểu ngầm định (implicit) và ép kiểu tường minh (explicit).
Ngầm định là từ kiểu dữ liệu nhỏ tới kiểu dữ liệu lớn.
Tường minh là từ kiểu dữ liệu lớn xuống kiểu dữ liệu nhỏ. Khi dùng chúng ta cần thêm đóng mở ngoặc tròn kiểu dữ liệu cần chuyển.