Ép Kiểu Trong Java (Type Casting) - VietMX's Blog
Có thể bạn quan tâm
Table of Contents
- Ép kiểu là gì?
- Nới rộng (widening)
- Thu hẹp (narrowwing)
- Bảng mô tả ép kiểu trong Java
Ép kiểu là gì?
Ép kiểu là việc gán giá trị của một biến có kiểu dữ liệu này sang biến khác có kiểu dữ liệu khác.
Ví dụ:
float soLe = 19.7f; int soNguyen = (int)soLe + 1;Trong ví dụ trên, giá trị soLe được đổi thành giá trị nguyên 19. Sau đó, nó được cộng với 1 và kết quả là giá trị 20 được lưu vào soNguyen .
Trong Java, có hai loại ép kiểu dữ liệu:
Nới rộng (widening)
Nới rộng (widening): Là quá trình làm tròn số từ kiểu dữ liệu có kích thước nhỏ hơn sang kiểu có kích thước lớn hơn. Kiểu biến đổi này không làm mất thông tin. Ví dụ chuyển từ int sang float. Chuyển kiểu loại này có thế được thực hiện ngầm định bởi trình biên dịch.
public class TestWidening { public static void main(String[] args) { int i = 100; long l = i; // không yêu cầu chỉ định ép kiểu float f = l; // không yêu cầu chỉ định ép kiểu System.out.println("Giá trị Int: " + i); // Giá trị Int: 100 System.out.println("Giá trị Long: " + l); // Giá trị Long: 100 System.out.println("Giá trị Float: " + f); // Giá trị Float: 100.0 } }byte -> short -> int -> long -> float -> double
Thu hẹp (narrowwing)
Thu hẹp (narrowwing): Là quá trình làm tròn số từ kiểu dữ liệu có kích thước lớn hơn sang kiểu có kích thước nhỏ hơn. Kiểu biến đổi này có thể làm mất thông tin như ví dụ ở trên. Chuyển kiểu loại này không thể thực hiện ngầm định bởi trình biên dịch, người dùng phải thực hiện chuyển kiểu tường minh.
public class TestNarrowwing { public static void main(String[] args) { double d = 100.04; long l = (long) d; // yêu cầu chỉ định kiểu dữ liệu (long) int i = (int) l; // yêu cầu chỉ định kiểu dữ liệu (int) System.out.println("Giá trị Double: " + d); System.out.println("Giá trị Long: " + l); System.out.println("Giá trị Int: " + i); } }double -> float -> long -> int -> short -> byte
Bảng mô tả ép kiểu trong Java
| Ép kiểu | Chuyển sang kiểu | |||||||
| Từ kiểu | boolean | byte | short | char | int | long | float | double |
| boolean | – | No | No | No | No | No | No | No |
| byte | No | – | Yes | Cast | Yes | Yes | Yes | Yes |
| short | No | Cast | – | Cast | Yes | Yes | Yes | Yes |
| char | No | Cast | Cast | – | Yes | Yes | Yes | Yes |
| int | No | Cast | Cast | Cast | – | Yes | Yes | Yes |
| long | No | Cast | Cast | Cast | Cast | – | Yes | Yes |
| float | No | Cast | Cast | Cast | Cast | Cast | – | Yes |
| double | No | Cast | Cast | Cast | Cast | Cast | Cast | – |
Trong đó
- -: chính nó
- No: không ép kiểu được
- Yes: thực hiện ép kiểu nới rộng (widening)
- Cast: thực hiện ép kiểu thu hẹp (narrowwing)
Related posts:
A Custom Media Type for a Spring REST APIJava Program to Create a Minimal Set of All Edges Whose Addition will Convert it to a Strongly Conne...Java Program to Implement Kosaraju AlgorithmJava Program to Implement Queue using Two StacksVector trong JavaSpring Boot - OAuth2 with JWTGiới thiệu Json Web Token (JWT)Java Program to Implement Tarjan AlgorithmCharSequence vs. String in JavaComparing getPath(), getAbsolutePath(), and getCanonicalPath() in JavaHướng dẫn Java Design Pattern – Factory MethodJava Program to Find Strongly Connected Components in GraphsJava Program to Implement Expression TreeJava Program to Find the Minimum Element of a Rotated Sorted Array using Binary Search approachJUnit 5 @Test AnnotationJava Program to Implement Suffix TreeJava Program to Implement Bellman-Ford AlgorithmA Guide to TreeMap in JavaGuide to the Java Clock ClassSpring Cloud – Securing ServicesFormat ZonedDateTime to StringCreating a Web Application with Spring 5Java Program to Implement Vector APISimultaneous Spring WebClient CallsJava Program to Find the Shortest Path Between Two Vertices Using Dijkstra’s AlgorithmGuide to the ConcurrentSkipListMapSpring Security 5 for Reactive ApplicationsJava Program for Douglas-Peucker Algorithm ImplementationHow to Round a Number to N Decimal Places in JavaSpring Boot - Admin ServerJava Program to Find the Peak Element of an Array O(n) time (Naive Method)Java Program to Find the Vertex Connectivity of a GraphTừ khóa » ép Kiểu Class Trong Java
-
Java Bài 31: Ép Kiểu Trong OOP - YellowCode.Books
-
Ép Kiểu Đối Tượng Trong JAVA - Trung Tâm JAVA.
-
Ép Kiểu Trong Java | How Kteam
-
Ép Kiểu Trong Java - Giải Mã Thông Tin Về Java Type Conversion
-
Ép Kiểu Trong Java - Học Lập Trình Java - CodeGym
-
Ép Kiểu Trong Java - Học Java Miễn Phí Hay Nhất - VietTuts
-
Ép Kiểu Dữ Liệu Trong Java
-
Tự Học Java | Ép Kiểu(Casting) Trong Java »
-
Chuyển Kiểu, ép Kiểu Trong Java
-
Ép Kiểu Trong Java - Deft Blog
-
Hỏi Về ép Kiểu Trong Java - Programming - Dạy Nhau Học
-
Ép Kiểu Trong Java - TEK4
-
Ép Kiểu Trong Java
-
Ép Kiểu Dữ Liệu Trong Java - Lập Trình Từ Đầu