Java - Numbers Klasse

Hallo, ambitionierte Java-Programmierer! Heute tauchen wir in die faszinierende Welt der Zahlen in Java ein. Keine Sorge, wenn du neu in der Programmierung bist; wir beginnen mit den Grundlagen und arbeiten uns nach oben. Am Ende dieses Tutorials wirst du mit Zahlen so souverän umgehen, wie ein Profi!

Java - Number

Einführung in die Java-Numbers

In Java sind Zahlen nicht nur einfache Werte; sie sind Objekte mit Superkräften! Java bietet mehrere Klassen, um verschiedene Arten von Zahlen zu handhaben. Diese Klassen sind Teil des java.lang-Pakets, das in jedes Java-Programm automatisch importiert wird.

Die Hierarchie der Number-Klasse

Beginnen wir mit einer Übersicht der Hierarchie der Number-Klasse:

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

Die Number-Klasse ist die Superklasse aller numerischen Wrapper-Klassen. Sie ist abstrakt, was bedeutet, dass du kein Number-Objekt direkt erstellen kannst, aber du kannst ihre Unterklasse nutzen.

Wrapper-Klassen

Java bietet Wrapper-Klassen für jeden primitiven numerischen Typ. Diese Klassen "umschließen" die primitiven Werte in Objekten und geben ihnen zusätzliche Funktionalität. Hier ist eine Tabelle der am häufigsten verwendeten numerischen Wrapper-Klassen:

Primitive Typ Wrapper Klasse
byte Byte
short Short
int Integer
long Long
float Float
double Double

Erstellung von Number-Objekten

Erstellen wir einige Number-Objekte und schauen wir uns, wie sie funktionieren:

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

In diesem Beispiel erstellen wir Objekte verschiedener Number-Typen. Beachte, wie wir das Schlüsselwort new verwenden, gefolgt vom Konstruktor der Wrapper-Klasse.

Aber warten Sie, es gibt einen einfacheren Weg! Java bietet Autoboxing, das primitiven Typen automatisch in ihre Wrapper-Objekte konvertiert:

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

Ist das nicht praktisch? Java macht das Umschließen für uns im Hintergrund!

Gemeinsame Number-Methoden

Jetzt, wo wir unsere Number-Objekte haben, erkunden wir einige der nützlichen Methoden, die sie bieten:

1. valueOf()

Die valueOf()-Methode ist eine praktische Methode, um Number-Objekte zu erstellen:

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

Diese Methode wird oft gegenüber der Verwendung von Konstruktoren bevorzugt, weil sie缓存objekte wiederverwenden kann, um eine bessere Leistung zu erzielen.

2. xxxValue()

Diese Methoden konvertieren das Number-Objekt in seinen primitiven Typ:

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

Hier gibt intValue() den int-Wert zurück, während doubleValue() ihn in einen double konvertiert.

3. compareTo()

Diese Methode vergleicht zwei Number-Objekte:

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

Die compareTo()-Methode gibt zurück:

  • Ein negativer Wert, wenn die erste Zahl kleiner als die zweite ist
  • Null, wenn sie gleich sind
  • Ein positiver Wert, wenn die erste Zahl größer als die zweite ist

4. equals()

Diese Methode überprüft, ob zwei Number-Objekte gleich sind:

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

Behalte im Gedächtnis, dass equals() die Werte vergleicht, nicht die Objekt-Referenzen!

Spaß mit Zahlen: Ein Mini-Projekt

Nutzen wir unser neues Wissen mit einem kleinen Projekt. Wir erstellen ein einfaches Zahlenratespiel:

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("Willkommen beim Zahlenratespiel!");
System.out.println("Ich denke mir eine Zahl zwischen 1 und 100.");

do {
System.out.print("Gib deine Rate: ");
guess = scanner.nextInt();
attempts++;

if (guess.compareTo(secretNumber) < 0) {
System.out.println("Zu niedrig! Versuche es noch einmal.");
} else if (guess.compareTo(secretNumber) > 0) {
System.out.println("Zu hoch! Versuche es noch einmal.");
} else {
System.out.println("Herzlichen Glückwunsch! Du hast die Zahl in " + attempts + " Versuchen geraten!");
}
} while (!guess.equals(secretNumber));

scanner.close();
}
}

Lassen Sie uns aufschlüsseln, was in diesem Code passiert:

  1. Wir erstellen ein Random-Objekt, um eine zufällige Zahl zwischen 1 und 100 zu generieren.
  2. Wir verwenden einen Scanner, um Benutzerinput zu lesen.
  3. Wir verwenden eine do-while-Schleife, um immer wieder Ratefragen zu stellen, bis die richtige Zahl geraten wird.
  4. Wir verwenden compareTo(), um zu überprüfen, ob die Rate zu niedrig oder zu hoch ist.
  5. Wir verwenden equals(), um zu überprüfen, ob die Rate korrekt ist.

Dieses Spiel zeigt, wie wir Number-Objekte und ihre Methoden in einer realen Anwendung verwenden können. Es geht nicht nur darum, Zahlen zu speichern, sondern sie auf bedeutungsvolle Weise zu manipulieren und zu vergleichen.

Fazit

Wir haben nur die Oberfläche dessen berührt, was Javas Number-Klassen können. Wenn du deine Java-Reise fortsetzt, wirst du noch mächtigere Funktionen und Methoden entdecken. Behalte im Gedächtnis, dass Übung macht den Meister, also zögere nicht, diese Konzepte in deinen eigenen Projekten zu experimentieren.

Fahre fort, zu coden, zu lernen und vor allem, habe Spaß mit Java-Zahlen!

Credits: Image by storyset