"Và bây giờ là phần thú vị nhất. Tôi sẽ cho bạn biết về chuyển đổi kiểu. Các biến không thể thay đổi kiểu của chúng, nhưng có một nơi mà bạn có thể chuyển đổi kiểu. Nơi đó là phép toán gán. "

"Bạn có thể gán các biến thuộc các loại khác nhau cho nhau. Khi làm như vậy, giá trị của một biến (của một loại cụ thể) được chuyển thành giá trị của loại khác và được gán cho biến kia. "

"Chúng ta có thể chỉ ra hai loại chuyển đổi: mở rộng chuyển đổi nguyên thủy và thu hẹp chuyển đổi nguyên thủy. Mở rộng giống như chuyển đồ vật từ một cái giỏ nhỏ sang một cái giỏ lớn. Thủ tục này không có gì nổi bật và không gây đau đớn. Thu hẹp giống như lấy đồ vật ra khỏi một cái giỏ lớn và đặt chúng vào một cái hộp nhỏ hơn. Khi bạn làm điều này, bạn có thể không có đủ chỗ; bạn có thể phải ném thứ gì đó ra ngoài. "

"Đây là các loại được sắp xếp theo kích thước 'giỏ' của chúng:"

loại chuyển đổi

"Đôi lời góp ý:

1. Giỏ của char có cùng kích thước với giỏ của short, nhưng bạn không thể tự do di chuyển đồ từ cái này sang cái khác. Khi bạn di chuyển các giá trị từ short sang char , các giá trị nhỏ hơn 0 sẽ luôn bị mất. Khi bạn di chuyển các giá trị từ char sang short, các giá trị lớn hơn 32.000 sẽ bị mất.

2. Khi bạn chuyển đổi số nguyên thành số phân số, các chữ số có nghĩa nhỏ nhất của số đó có thể bị loại bỏ. Tuy nhiên, điều này có thể chấp nhận được vì mục đích của một số phân số là lưu trữ một giá trị gần đúng."

" Khi thực hiện chuyển đổi thu hẹp, chúng tôi phải thông báo rõ ràng với trình biên dịch rằng chúng tôi không mắc lỗi: chúng tôi đang cố tình loại bỏ một phần của số. Chúng tôi sử dụng toán tử ép kiểu ( tức là tên loại trong ngoặc đơn ) để thực hiện việc này."

"Đây là cách bạn nên gán các biến thuộc các loại khác nhau:"

mã Java Sự miêu tả
byte a = 115;
int b = a;
Mở rộng chuyển đổi nguyên thủy. Mọi thứ đều tuyệt vời.
int c = 10000;
byte d = (byte) c;
Thu hẹp chuyển đổi nguyên thủy . Chúng ta phải tuyên bố rõ ràng rằng các byte thừa sẽ bị loại bỏ.
int c = 10;
byte d = (byte) c;
Thu hẹp chuyển đổi nguyên thủy. Chúng ta phải tuyên bố rõ ràng rằng các byte thừa sẽ bị loại bỏ, ngay cả khi chúng bằng 0.
float f = 10000;
long l = (long) (f * f);
float f2 = l;
long l2 = (long) f2;
Khi gán cho một float, một chuyển đổi nguyên thủy mở rộng sẽ diễn ra. Khi gán một float cho một long, một chuyển đổi nguyên thủy thu hẹp sẽ diễn ra. Một toán tử truyền là bắt buộc.
double d = 1;
float f = (float) d;
long l = (long) f;
int i = (int) l;
short s = (short) i;
byte b = (byte) s;
Thu hẹp chuyển đổi trong tất cả các thao tác gán ngoại trừ dòng đầu tiên. Những chuyển đổi này yêu cầu chúng tôi chỉ rõ chuyển đổi loại.
3
Nhiệm vụ
Java Syntax,  mức độbài học
Đã khóa
Code entry
Sometimes you don't need to think, you just need to hammer it out! As paradoxical as it may seem, sometimes your fingers will "remember" better than your conscious mind. That's why while training at the secret CodeGym center you will sometimes encounter tasks that require you to enter code. By entering code, you get used to the syntax and earn a little dark matter. What's more, you combat laziness.

" Toán tử truyền kiểu phải được đặt trước một số/biến bất cứ lúc nào một phần của số sẽ bị loại bỏ hoặc khi xảy ra chuyển đổi nguyên thủy thu hẹp. Toán tử truyền kiểu chỉ ảnh hưởng đến số/biến trực tiếp theo sau nó."

mã Java Sự miêu tả
float f = 10000;
long l = (long) f * f;
Chỉ một trong hai biến được chuyển thành long: phép nhân của long và float bằng float.
float f = 10000;
long l = (long) (f * f);
Toàn bộ biểu thức được đúc thành một long.

"Tôi hiểu rồi."