"Dan sekarang untuk bagian yang paling menarik. Saya akan memberi tahu Anda tentang konversi tipe. Variabel tidak dapat mengubah tipenya, tetapi ada tempat di mana Anda dapat mengonversi tipe. Tempat itu adalah operasi penugasan. "

"Anda dapat menetapkan variabel dari tipe yang berbeda satu sama lain. Dengan demikian, nilai satu variabel (dari tipe tertentu) diubah menjadi nilai dari tipe lain dan ditugaskan ke variabel lain. "

"Kita dapat menunjukkan dua jenis konversi: konversi primitif yang melebar dan konversi primitif yang menyempit. Pelebaran seperti memindahkan barang dari keranjang kecil ke keranjang besar. Prosedurnya biasa-biasa saja dan tidak menyakitkan. Mempersempit analog dengan mengeluarkan barang dari keranjang besar dan menempatkannya di tempat yang lebih kecil. Saat Anda melakukan ini, Anda mungkin tidak memiliki cukup ruang; Anda mungkin harus membuang sesuatu. "

"Berikut adalah jenis yang diurutkan menurut ukuran 'keranjang' mereka:"

Ketik konversi

"Hanya beberapa komentar:

1. keranjang char berukuran sama dengan keranjang pendek, tetapi Anda tidak dapat memindahkan barang dengan bebas dari satu ke yang lain. Saat Anda memindahkan nilai dari short ke char , nilai yang kurang dari 0 akan selalu hilang. Saat Anda memindahkan nilai dari char ke short, nilai yang lebih besar dari 32.000 akan hilang.

2. Saat Anda mengubah bilangan bulat menjadi bilangan pecahan, digit terkecil dari bilangan tersebut dapat dibuang. Namun, ini dapat diterima, karena tujuan dari bilangan pecahan adalah untuk menyimpan nilai perkiraan."

" Saat melakukan konversi penyempitan, kami harus secara eksplisit memberi tahu kompiler bahwa kami tidak membuat kesalahan: kami sengaja membuang sebagian angka. Kami menggunakan operator pemeran ( yaitu nama jenis dalam tanda kurung ) untuk melakukan ini."

"Ini adalah bagaimana Anda harus menetapkan variabel dari jenis yang berbeda:"

kode jawa Keterangan
byte a = 115;
int b = a;
Memperluas konversi primitif. Semuanya bagus.
int c = 10000;
byte d = (byte) c;
Mempersempit konversi primitif . Kami harus secara eksplisit menyatakan bahwa byte tambahan harus dibuang.
int c = 10;
byte d = (byte) c;
Mempersempit konversi primitif. Kita harus secara eksplisit menyatakan bahwa byte tambahan harus dibuang, meskipun sama dengan 0.
float f = 10000;
long l = (long) (f * f);
float f2 = l;
long l2 = (long) f2;
Saat menetapkan ke pelampung, konversi primitif yang melebar terjadi. Saat menetapkan float ke panjang, konversi primitif yang menyempit terjadi. Diperlukan operator pemeran.
double d = 1;
float f = (float) d;
long l = (long) f;
int i = (int) l;
short s = (short) i;
byte b = (byte) s;
Mempersempit konversi di semua operasi penugasan kecuali untuk baris pertama. Konversi ini mengharuskan kami secara eksplisit menunjukkan jenis konversi.

" Operator pemeran harus diletakkan sebelum angka/variabel kapan pun bagian dari angka tersebut akan dibuang atau saat terjadi konversi primitif yang menyempit. Operator pemeran hanya memengaruhi angka/variabel yang secara langsung mengikutinya."

kode jawa Keterangan
float f = 10000;
long l = (long) f * f;
Hanya satu dari dua variabel yang dilemparkan ke panjang: perkalian panjang dan pelampung sama dengan pelampung.
float f = 10000;
long l = (long) (f * f);
Seluruh ekspresi dilemparkan ke panjang.

"Jadi begitu."