Panduan untuk Kelas Nombor di Jawa

1. Gambaran keseluruhan

Dalam tutorial ini, kita akan membincangkan Java Number c lass. Pertama, kita akan belajar apa yang dilakukan oleh kelas Nombor dan kaedah apa yang terdapat di dalamnya . Kemudian, kita akan menyelami pelbagai pelaksanaan kelas abstrak ini.

2. Kelas Nombor

Nombor adalah kelas abstrak dalam pakej java.lang . Pelbagai subkelas meluaskan kelas Nombor . Yang paling kerap digunakan adalah:

  • Bait
  • Pendek
  • Bilangan bulat
  • Lama
  • Berganda
  • Terapung

Tujuan utama kelas ini adalah untuk menyediakan kaedah untuk menukar nilai angka yang dimaksudkan ke pelbagai jenis primitif seperti bait , pendek , int , panjang , dua kali ganda , dan apungan .

Empat kaedah abstrak tersedia untuk membantu menyelesaikan tugas:

  • nilai antara ()
  • nilai lama ()
  • nilai berganda ()
  • Nilai apungan ()

Nombor juga mempunyai dua kaedah konkrit, byteValue () dan shortValue () , yangmasing-masingakan mengembalikan nilai bait dannilai pendek bagi nombor yang ditentukan. Untuk mengetahui lebih lanjut mengenai pelaksanaankelas Nombor yang berbeza , sila rujuk artikel kami mengenai Wrapper Classes.

Pada bahagian yang akan datang, kita akan mengetahui lebih lanjut mengenai kaedah ini dan penggunaannya.

3. Kaedah Konkrit

Mari kita bincangkan kaedah konkrit satu persatu.

3.1. nilai pendek ()

Seperti namanya, kaedah ini menukar objek Nombor yang ditentukan menjadi nilai pendek primitif .

Pelaksanaan lalai menjadikan nilai int menjadi pendek dan mengembalikannya. Walau bagaimanapun, subkelas mempunyai pelaksanaannya sendiri, dan mereka memasukkan nilai masing-masing menjadi pendek dan kemudian kembali.

Inilah cara nilai Double ditukar menjadi jenis primitif pendek :

@Test public void givenDoubleValue_whenShortValueUsed_thenShortValueReturned() { Double doubleValue = Double.valueOf(9999.999); assertEquals(9999, doubleValue.shortValue()); }

3.2. nilai bait ()

Kaedah ini mengembalikan nilai objek Nombor yang ditentukan sebagai nilai bait . Walaupun begitu, kelas kanak-kanak kelas Nombor mempunyai pelaksanaannya sendiri.

Inilah cara nilai Float dapat ditukar menjadi nilai bait :

@Test public void givenFloatValue_whenByteValueUsed_thenByteValueReturned() { Float floatValue = Float.valueOf(101.99F); assertEquals(101, floatValue.byteValue()); }

4. Kaedah Abstrak

Selain itu, kelas Nombor juga mempunyai beberapa kaedah abstrak dan beberapa subkelas yang melaksanakannya.

Di bahagian ini, mari kita lihat bagaimana kaedah ini digunakan.

4.1. nilai antara ()

Kaedah ini mengembalikan perwakilan int nombor dalam konteks.

Mari lihat bagaimana nilai Panjang dapat diubah menjadi int :

@Test public void givenLongValue_whenInitValueUsed_thenInitValueReturned() { Long longValue = Long.valueOf(1000L); assertEquals(1000, longValue.intValue()); }

Sudah tentu, pengkompil melakukan operasi penyempitan di sini dengan menukar nilai panjang menjadi int .

4.2. nilai panjang ()

Kaedah ini akan mengembalikan nilai N umber yang ditentukan sebagai panjang .

Dalam contoh ini, kita melihat bagaimana nilai Integer diubah menjadi panjang melalui kelas Integer :

@Test public void givenIntegerValue_whenLongValueUsed_thenLongValueReturned() { Integer integerValue = Integer.valueOf(100); assertEquals(100, integerValue.longValue()); }

Berbeza dengan kaedah intValue () , longValue () mengembalikan nilai panjang setelah penukaran primitif yang semakin meningkat.

4.3. Nilai apungan ()

Kita boleh menggunakan kaedah ini untuk mengembalikan nilai N umber yang ditentukan sebagai apungan. Mari kita lihat bagaimana nilai Pendek dapat ditukar menjadi nilai apungan :

@Test public void givenShortValue_whenFloatValueUsed_thenFloatValueReturned() { Short shortValue = Short.valueOf(127); assertEquals(127.0F, shortValue.floatValue(), 0); }

Begitu juga, longValue () dan floatValue () juga melakukan penukaran primitif yang semakin meningkat.

4.4. nilai berganda ()

Akhirnya, kaedah ini menukar nilai kelas Nombor yang diberikan kepada jenis data primitif berganda dan mengembalikannya.

Berikut adalah contoh penggunaan kaedah ini untuk menukar Byte menjadi dua kali ganda :

@Test public void givenByteValue_whenDoubleValueUsed_thenDoubleValueReturned() { Byte byteValue = Byte.valueOf(120); assertEquals(120.0, byteValue.doubleValue(), 0); }

5. Kesimpulan

Dalam tutorial ringkas ini, kami melihat beberapa kaedah terpenting di kelas Nombor .

Akhirnya, kami telah menunjukkan bagaimana kaedah ini dapat digunakan di pelbagai kelas Wrapper .

Seperti biasa, kod sumber penuh artikel terdapat di GitHub.