1. Daftar jenis pembungkus
Anda tahu bahwa Java memiliki 8 tipe primitif, yang merupakan tipe yang bukan kelas. Di satu sisi, ini bagus — mereka sederhana dan hanya memakan sedikit ruang. Di sisi lain, terkadang kelas adalah yang kita butuhkan. Anda akan tahu persis mengapa itu ada di pelajaran berikutnya.
Jadi apa yang bisa dilakukan?
Dimulai dengan versi kelima Java, setiap tipe primitif mendapatkan kelas kembar. Setiap kelas tersebut menyimpan satu bidang dengan nilai dari tipe tertentu. Kelas-kelas ini disebut tipe pembungkus , karena mereka membungkus nilai-nilai primitif di dalam kelas.
Berikut adalah daftar jenis-jenis tersebut. Apakah Anda tahu?
Tipe primitif | kelas pembungkus |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Nama-nama tipe primitif dimulai dengan huruf kecil, tetapi nama kelas pembungkus dimulai dengan huruf besar. Beberapa nama kelas juga sedikit lebih panjang: Integer
dari pada int
dan Character
dari pada char
.
Semua objek dari kelas pembungkus tidak dapat diubah ( tidak dapat diubah ).
Kode yang disederhanakan untuk Integer
kelas terlihat seperti ini:
Kode | Catatan |
---|---|
|
Pembuat Variabel Metode mengembalikan nilai Metode statis membuat Integer objek baru untuk int variabel |
2. Mengubah an int
menjadi anInteger
Jenis pembungkus dianggap rekanan dari saudara primitifnya: Anda dapat dengan mudah membuat objek pembungkus yang sesuai dengan jenis primitif.
Mari gunakan tipe int sebagai contoh untuk menganalisis bagaimana tipe primitif berinteraksi dengan tipe pembungkusnya yang sesuai. Kode untuk mengonversi dari an int
ke an Integer
dan sebaliknya akan terlihat seperti ini:
Untuk mengonversi an int
menjadi an Integer
, Anda perlu menulis kode ini:
Integer name = new Integer(value);
Di mana name
nama variabel Integer
, dan nilai value
yang dibungkus int
.
Contoh:
Kode | Catatan |
---|---|
|
|
|
|
|
Dan untuk mengonversi an Integer
menjadi an int
, Anda perlu menulis kode ini:
int name = variable.intValue();
Di mana name
nama variabel int
, dan variable
merupakan referensi ke suatu Integer
objek.
Contoh:
Kode | Catatan |
---|---|
|
|
|
|
|
|
|
|
3. Autoboxing dan unboxing
Tetapi bahkan operasi sederhana dengan Integer
tipe tersebut tidak mudah untuk ditulis.
Seperti yang kami katakan sebelumnya, Integer
tipenya tidak dapat diubah ( tidak dapat diubah ). Untuk membuat Integer
objek dengan nilai baru int
, Anda perlu membuat Integer
objek baru secara eksplisit. Yang mengatakan, mudah untuk mendapatkan nilai yang int
disimpan di dalam Integer
objek — panggil saja intValue()
metodenya.
Contoh:
Kode | Keterangan |
---|---|
|
Bungkus 5 objek Dapatkan nilai dari objek Buat objek baru (sama Integer dengan 10)Integer Integer |
Ini kode yang agak rumit, bukan begitu?
Pencipta Java berpikir demikian, jadi mereka mengajari kompiler bagaimana melakukan operasi ini secara otomatis. Konversi otomatis an int
ke an Integer
disebut autoboxing (secara otomatis memasukkan nilai ke dalam kotak), dan operasi sebaliknya (mengubah an Integer
menjadi an int
) disebut unboxing .
Kode Anda | Apa yang dilihat oleh kompiler |
---|---|
|
|
|
|
|
|
Berkat autoboxing dan unboxing, Anda dapat menetapkan variabel dengan aman int
dan Integer
sebaliknya. Anda dapat menulis ekspresi dengan kompleksitas apa pun tanpa membuat perbedaan antara tipe int
dan Integer
.
Contoh:
Kode | Apa yang akan dihasilkan oleh kompiler |
---|---|
|
|
|
|
4. Membandingkan variabel pembungkus
Autoboxing dan unboxing adalah proses yang sederhana dan transparan. Kami menggunakan new Integer()
pernyataan sesuai kebutuhan, dan kami memanggil intValue()
metode sesuai kebutuhan.
Semuanya bekerja dengan baik dan mudah untuk Anda, sang programmer. Ingatlah bahwa jika Anda membandingkan an Integer
dan an Integer
, maka perbandingannya didasarkan pada referensi dan bukan nilai.
Kode | Keluaran konsol |
---|---|
|
|
|
|
Variabel a
dan b
tidak menyimpan int
nilai. Mereka menyimpan referensi ke objek. Artinya, penting untuk mengingat cara membandingkannya dengan benar:
Salah | Benar |
---|---|
|
|
GO TO FULL VERSION