Java - Kelas Numbers

Helo, pemrogram Java yang berhasrat! Hari ini, kita akan melangkah ke atas dunia yang menarik tentang nombor di Java. Jangan khawatir jika anda baru dalam pemrograman; kita akan mula dari asas dan akan menuju ke atas. Pada akhir tutorial ini, anda akan dapat untuk mengendahkan nombor seperti seorang pro!

Java - Number

Pengenalan kepada Java Numbers

Di Java, nombor bukan hanya nilai yang ringkas; mereka adalah objek dengan superkekuatan! Java menyediakan beberapa kelas untuk mengendalikan jenis jenis yang berbeza nombor. Kelas-kelas ini adalah sebahagian dari paket java.lang, yang secara automatik diimport ke setiap program Java.

Hierarki Kelas Number

Mari kita mula dengan pandangan atas hierarki kelas Number:

Number (abstrak)
|
+-------+-------+
|       |       |
Integer  Float  Double
|
Byte

Kelas Number adalah superclass bagi semua kelas penyusun numerik. Ia adalah abstrak, yang berarti anda tidak dapat membuat objek Number secara langsung, tetapi anda boleh menggunakan subclassnya.

Kelas Penyusun

Java menyediakan kelas penyusun untuk setiap jenis numerik primitif. Kelas-kelas ini "mengemas" nilai primitif di dalam objek, memberikan mereka fungsi tambahan. Di bawah adalah jadual kelas penyusun numerik yang paling umum digunakan:

Jenis Primitif Kelas Penyusun
byte Byte
short Short
int Integer
long Long
float Float
double Double

Mencipta Objek Nombor

Mari kita cipta beberapa objek nombor dan lihat bagaimana mereka bekerja:

Integer intObj = new Integer(42);
Double doubleObj = new Double(3.14159);
Float floatObj = new Float(2.5f);

Dalam contoh ini, kita membuat objek jenis nombor yang berbeza. Perhatikan bagaimana kita menggunakan kata kunci new diikuti dengan konstruktor kelas penyusun.

Tetapi, tunggu, ada cara yang lebih mudah! Java menyediakan autoboxing, yang secara automatik mengubah primitif ke objek penyusun mereka:

Integer intObj = 42;
Double doubleObj = 3.14159;
Float floatObj = 2.5f;

Adakah ianya yang kemas? Java melakukan pengemasan untuk kita di belakang layar!

Metode Nombor Umum

Sekarang kita telah memiliki objek nombor kita, mari kita eksplor beberapa metode yang berguna yang mereka sediakan:

1. valueOf()

Metode valueOf() adalah cara yang mudah untuk mencipta objek nombor:

Integer intObj = Integer.valueOf(42);
Double doubleObj = Double.valueOf("3.14159");

Metode ini sering digunakan daripada menggunakan konstruktor kerana ia boleh menggunakan objek yang dikache untuk prestasi yang lebih baik.

2. xxxValue()

Metode ini mengubah objek nombor ke jenis primitifnya:

Integer intObj = 42;
int intValue = intObj.intValue();
double doubleValue = intObj.doubleValue();

Di sini, intValue() mengembalikan nilai int, sementara doubleValue() mengubahnya ke double.

3. compareTo()

Metode ini membandingkan dua objek nombor:

Integer num1 = 42;
Integer num2 = 100;
int result = num1.compareTo(num2);
System.out.println(result); // Output: -1

Metode compareTo() mengembalikan:

  • Nilai negatif jika nombor pertama kurang daripada yang kedua
  • Sifar jika mereka adalah sama
  • Nilai positif jika nombor pertama lebih besar daripada yang kedua

4. equals()

Metode ini memeriksa jika dua objek nombor adalah sama:

Integer num1 = 42;
Integer num2 = 42;
boolean areEqual = num1.equals(num2);
System.out.println(areEqual); // Output: true

Ingat, equals() membandingkan nilai, bukan rujukan objek!

Main dengan Nombor: Projek Mini

Mari kita gunakan pengetahuan baru kami dengan projek kecil. Kita akan mencipta permainan teka nombor yang ringkas:

import java.util.Random;
import java.util.Scanner;

public class NumberGuessingGame {
public static void main(String[] args) {
Random random = new Random();
Integer secretNumber = random.nextInt(100) + 1;
Scanner scanner = new Scanner(System.in);
Integer guess;
int attempts = 0;

System.out.println("Selamat datang ke Permainan Teka Nombor!");
System.out.println("Saya sedang berfikir tentang nombor antara 1 dan 100.");

do {
System.out.print("Masukkan tekaan anda: ");
guess = scanner.nextInt();
attempts++;

if (guess.compareTo(secretNumber) < 0) {
System.out.println("Terlalu rendah! Cuba lagi.");
} else if (guess.compareTo(secretNumber) > 0) {
System.out.println("Terlalu tinggi! Cuba lagi.");
} else {
System.out.println("Tahniah! Anda telah menebak nombor dalam " + attempts + " percubaan!");
}
} while (!guess.equals(secretNumber));

scanner.close();
}
}

Mari kita kongsi apa yang terjadi di atas kod ini:

  1. Kita mencipta objek Random untuk menghasilkan nombor rawak antara 1 dan 100.
  2. Kita menggunakan Scanner untuk membaca input pengguna.
  3. Kita menggunakan do-while loop untuk terus meminta tekaan sehingga nombor yang betul telah diteka.
  4. Kita menggunakan compareTo() untuk memeriksa jika tekaan adalah terlalu rendah atau terlalu tinggi.
  5. Kita menggunakan equals() untuk memeriksa jika tekaan adalah betul.

Permainan ini menunjukkan bagaimana kita boleh menggunakan objek Nombor dan metode mereka dalam aplikasi dunia sebenar. Ia bukan hanya tentang penyimpanan nombor; ia tentang pengendalian dan perbandingan mereka dalam cara yang berarti.

Kesimpulan

Kita hanya menggaruk permukaan atas apa yang kelas Nombor Java boleh lakukan. Apabila anda teruskan perjalanan Java anda, anda akan menemui fitur dan metode yang lebih berkuasa. Ingat, praktek membuat perfect, jadi jangan ragu untuk untuk eksperimen dengan konsep ini di atas projek anda sendiri.

Teruskan untuk mengkod, teruskan untuk belajar, dan yang paling penting, bersenang-senanglah dengan nombor Java!

Credits: Image by storyset