OCAJP – Wrapper-Klassen in Java

In diesem Beitrag geht es um das OCAJP-Prüfungsziel „Entwickeln Sie Code, der Wrapper-Klassen wie Boolean, Double und Integer verwendet„. In der Prüfung werden Sie hauptsächlich auf Autoboxing- und Unboxing-Konzepte von Wrapper-Klassen sowie auf die Verwendung von Wrapper-Klassen mit ihren entsprechenden primitiven Typen getestet.

Verpackung

In diesem Artikel wird Ihr Wissen über die Verwendung der Wrapper-Klasse getestet, die bei den OCAJP-Zertifizierungsprüfungen am häufigsten gefragt wird. Es ist wichtig, dass Sie die Konzepte verstehen und mit vielen davon üben Übungsfragen jedes Konzept zu meistern.

Was sind Wrapper-Klassen?

Lesen Sie auch:

  • OCAJP – Fragen zur Switch-Statement-Übung
  • OCAJP 8 Artikel
  • Zertifizierungsartikel

Wrapper-Klassen, die zum Umschließen der primitiven Typen verwendet werden. Die Beispiele sind Integer, Float usw. Diese Klassen wurden ab Java 5 eingeführt, um die Verwendung primitiver Typen als Objekte zu vereinfachen. Hier sind einige Punkte, die es zu beachten gilt OCAJP-Zertifizierungsprüfungen:

  • Wenn wir mit Zahlen arbeiten, verwenden wir im Allgemeinen primitive Datentypen wie Byte, Int, Long, Double usw.
  • Es gibt bestimmte Situationen, in denen Objekte anstelle von Grundelementen verwendet werden müssen, und die Java-Plattform stellt Wrapper-Klassen für jeden dieser Grunddatentypen bereit.
  • Diese Klassen „verpacken“ den Wert des primitiven Datentyps in einem Objekt. Daher der Name „Wrapper-Klassen“.
  • Alle Wrapper-Klassen sind unveränderliche Klassen.

Wann werden Wrapper-Klassen verwendet?

Hier sind einige wichtige Punkte, die Sie bei der Verwendung der Wrapper-Klassen beachten sollten.

  • Wenn Sie Sammlungen zum Speichern numerischer Werte bearbeiten. Weil Sammlungsobjekte keine primitiven Werte speichern können.
  • Um von der Klasse definierte Konstanten wie MIN_VALUE und MAX_VALUE zu verwenden, die die Ober- und Untergrenzen des Datentyps bereitstellen.
  • Konvertieren der String-Darstellung eines primitiven Werts in einen primitiven Datentyp.
    • In Java gibt es für jeden primitiven Datentyp eine entsprechende Wrapper-Klasse.

    wrapperclasses_hierarchy

    • Wie im obigen Bild gezeigt, ist Number die Oberklasse für jede numerische Klasse wie Byte, Short, Integer, Long, Float, Double.
    • Die Zahl enthält vier wichtige abstrakte Methoden, die von ihren Unterklassen implementiert werden.
    • Nachfolgend finden Sie die Deklarationen von vier abstrakten Methoden in der Number-Klasse (abstrakte Klasse), die zur Konvertierung in einen primitiven Wert verwendet werden.
    public abstract int intValue()
    public abstract long longValue()
    public abstract float floatValue()
    public abstract double doubleValue()
    
    • Für die Prüfung müssen Sie nicht alle Kurse lernen.
    • In der Prüfung stehen die Klassen Integer, Double und Boolean zur Verfügung.

    In den folgenden Abschnitten werde ich über die gängigsten Wrapper-Klassen und deren Verwendung schreiben.

    Ganze Zahl

    Hier sind einige wichtige Punkte zur Integer-Klasse:

    • Die Integer-Klasse befindet sich seit der Java-Version 1.0 im Paket java.lang.
    • Die Zahlenklasse ist die Oberklasse von Integer.
    • Es implementiert vergleichbare, serialisierbare Schnittstellen.
    • Es ist eine unveränderliche Klasse.
    • Die Integer-Klasse verpackt einen Wert des primitiven Typs int in ein Objekt. Ein Objekt vom Typ Integer enthält ein einzelnes Feld vom Typ int.
    • Darüber hinaus bietet diese Klasse mehrere Methoden zum Konvertieren eines int in einen String und eines String in einen int sowie andere Konstanten und Methoden, die beim Umgang mit einem int nützlich sind.

    Ganzzahliges Objekt erstellen

    Die Integer-Klasse hat zwei Konstruktoren.

    • öffentliche Ganzzahl (int-Wert)

    Es erstellt ein neues Integer-Objekt, das den angegebenen int-Wert darstellt.

    • public Integer(String s) löst eine NumberFormatException aus

    Es erstellt ein neues Integer-Objekt, das den durch den String-Parameter angegebenen int-Wert darstellt. Die Zeichenfolge wird auf genau die Art und Weise, die von der parseInt-Methode für Basis 10 verwendet wird, in einen int-Wert konvertiert.
    Es löst eine NumberFormatException aus, wenn der String keine analysierbare Ganzzahl enthält.

    • Sie können ein Integer-Objekt auch ohne Konstruktor erstellen.

    Beispiel :

    public class IntegerDemo {
    	public static void main(String[] args) {
    		Integer n1 = new Integer("5");
    		Integer n2 = new Integer(2);
    		Integer n3 = 4;
    		// Integer n4 = new Integer("A"); this statement generates NumberFormatException.
    		System.out.println(n1 + " " + n2 + " " + n3);//prints 5 2 4
    
    	}
    
    }
    
    • Im obigen Programm speichern Sie primitive int-Werte in Integer-Objekten, dies wird Boxing genannt.

    Wichtige Integer-Methoden

    public static int parseInt(String s) löst eine NumberFormatException aus

    • Diese Methode konvertiert die String-Darstellung eines primitiven Ganzzahlwerts in einen primitiven Ganzzahlwert.
    • Es löst eine NumberFormatException aus, wenn der String keine analysierbare Ganzzahl enthält.

    Beispiel :

    ublic class IntegerDemo {
    
    	public static void main(String[] args) {
    
    		int n1 = Integer.parseInt("8");
    		// int n2 = Integer.parseInt("OCA"); This generates NumberFormatException.
    
    		System.out.println(n1);//prints 8
    
    	}
    
    }
    
    • öffentlicher statischer String toHexString(int i): Es gibt eine Zeichenfolgendarstellung des Ganzzahlarguments als vorzeichenlose Ganzzahl zur Basis 16 zurück.
    • öffentlicher statischer String toOctalString(int i): Es gibt eine Zeichenfolgendarstellung des Ganzzahlarguments als vorzeichenlose Ganzzahl zur Basis 8 zurück.
    • öffentlicher statischer String toBinaryString(int i); Es gibt eine Zeichenfolgendarstellung des Ganzzahlarguments als vorzeichenlose Ganzzahl zur Basis 2 zurück.

    Beispiel :

    public class IntegerDemo {
    
    	public static void main(String[] args) {
    
    		String s1 = Integer.toHexString(8);
    		String s2 = Integer.toOctalString(8);
    		String s3 = Integer.toBinaryString(8);
    		System.out.println(s1 + " " + s2 + " " + s3); // prints 8 10 1000
    	}
    
    }
    
    • öffentlicher statischer GanzzahlwertOf(int i): Es gibt eine Integer-Instanz zurück, die den angegebenen int-Wert darstellt.
    • öffentliches Byte byteValue(): Der Wert dieser Ganzzahl wird nach einer einschränkenden Grundkonvertierung als Byte zurückgegeben.
    • public double doubleValue(): Der Wert dieser Ganzzahl wird nach einer erweiternden Primitivkonvertierung als Double zurückgegeben.
    • öffentlicher Float floatValue(): Der Wert dieser Ganzzahl wird nach einer erweiternden Primitivkonvertierung als Gleitkomma zurückgegeben.
    • public int intValue(): Es gibt den Wert dieser Ganzzahl als Ganzzahl zurück.
    • public long longValue(): Der Wert dieser Ganzzahl wird nach einer erweiternden Primitivkonvertierung als long zurückgegeben.
      Beispiel :
    public class IntegerDemo {
    
    	public static void main(String[] args) {
    
    		Integer in = Integer.valueOf(8);
    		byte b = in.byteValue();
    		int i = in.intValue();
    		long l = in.longValue();
    		float f = in.floatValue();
    		double d = in.doubleValue();
    		System.out.println(in+" "+b+" "+i+" "+l+" "+f+" "+d);//It prints 8 8 8 8 8.0 8.0
    		
    	}
    
    }
    

    Autoboxing und Unboxing

    Unter Boxing-Konvertierungen versteht man die Konvertierung von primitiven Typen in Wrapper und von Wrapper-Klassen in primitive Typen. Sie müssen die Konvertierungen nicht explizit durchführen. Die Boxkonvertierungen erfolgen implizit. Dies ist Teil der Java 5.0-Funktionen.

    		List<Integer> li = new ArrayList<Integer>();
    		li.add(8);// line 1
    		li.add(new Integer(5));// line 2
    		int n = li.get(1);// line 3
    
    • In Zeile 1 haben Sie gerade 8 Grundwerte eingegeben. Java erstellt ein Integer-Objekt und speichert es im ArrayList-Objekt. Dieser Vorgang wird Autoboxing genannt.
    • In Zeile 2 erstellen Sie das Objekt. Kein Autoboxing hier.
    • In Zeile 3 gibt die get-Methode ein Integer-Objekt zurück, das bei der Zuweisung zur int-Variablen in einen primitiven int-Wert konvertiert wird. Dieser Vorgang wird als automatisches Unboxing bezeichnet.

    Doppelt

    Hier sind einige wichtige Punkte zur Double-Klasse:

    • Die Doppelklasse befindet sich seit der Java-Version 1.0 im Paket java.lang.
    • Die Zahlenklasse ist die Oberklasse von Double.
    • Es implementiert vergleichbare, serialisierbare Schnittstellen.
    • Es ist eine unveränderliche Klasse.
    • Die Double-Klasse verpackt einen Wert des primitiven Typs double in ein Objekt. Ein Objekt vom Typ Double enthält ein einzelnes Feld vom Typ double.
    • Darüber hinaus bietet diese Klasse mehrere Methoden zum Konvertieren eines Doubles in einen String und eines Strings in ein Double sowie andere Konstanten und Methoden, die beim Umgang mit einem Double nützlich sind.

    Doppeltes Objekt erstellen

    Die Double-Klasse hat zwei Konstruktoren.

    • öffentliches Double (doppelter Wert)

    Es erstellt ein neues Double-Objekt, das den angegebenen Double-Wert darstellt.

    • public Double(String s) löst eine NumberFormatException aus

    Es erstellt ein neues Double-Objekt, das den durch den String-Parameter angegebenen Double-Wert darstellt. Die Zeichenfolge wird auf genau die Art und Weise, die von der parseInt-Methode für Basis 10 verwendet wird, in einen Double-Wert konvertiert.
    Es löst eine NumberFormatException aus, wenn der String keine analysierbare Zahl enthält.

    • Sie können ein Double-Objekt auch ohne Konstruktor erstellen.

    Beispiel :

    public class DoubleDemo {
    
    	public static void main(String[] args) {
    		Double n1 = new Double("5.0");
    		Double n2 = new Double(2.0);
    		Double n3 = 4.0;
    		// Double n4 = new Double("A"); this statement generates NumberFormatException.
    		System.out.println(n1 + " " + n2 + " " + n3);//prints 5.0 2.0 4.0
    
    	}
    
    }
    
    • Im obigen Programm speichern Sie den primitiven Double-Wert in Double-Objekten, dies wird Boxing genannt.

    Wichtige Double-Methoden

    parseDouble

    public static double parseDouble(String s) löst eine NumberFormatException aus

    • Diese Methode wandelt die String-Darstellung des Zahlenwerts in einen primitiven Doppelwert um.
    • Es löst eine NumberFormatException aus, wenn der String keine analysierbare Zahl enthält.

    Beispiel :

    public class DoubleDemo {
    
    	public static void main(String[] args) {
    
    		double n1 = Double.parseDouble("8.0");
    		double n2 = Double.parseDouble("2");
    		// double n3 = Double.parseDouble("OCA"); This generates NumberFormatException.
    
    		System.out.println(n1+" "+n2);//prints 8.0 2.0
    
    	}
    
    }
    
    • öffentlicher statischer Double valueOf(double i): Es gibt eine Double-Instanz zurück, die den angegebenen Double-Wert darstellt.
    • öffentliches Byte byteValue(): Es gibt den Wert dieses Double als Byte nach einer einschränkenden primitiven Konvertierung zurück.
    • public double doubleValue(): Der Wert dieses Double wird nach einer erweiternden Primitivkonvertierung als Double zurückgegeben.
    • öffentlicher Float floatValue(): Der Wert dieses Double wird nach einer erweiternden Primitivkonvertierung als Gleitkomma zurückgegeben.
    • public int intValue(): Es gibt den Wert dieses Double als int zurück.
    • public long longValue(): Es gibt den Wert dieses Double als long nach einer erweiternden Primitivkonvertierung zurück.
      Beispiel :
    public class DoubleDemo {
    
    	public static void main(String[] args) {
    
    		Double in = Double.valueOf(8);
    		byte b = in.byteValue();
    		int i = in.intValue();
    		long l = in.longValue();
    		float f = in.floatValue();
    		double d = in.doubleValue();
    		System.out.println(in+" "+b+" "+i+" "+l+" "+f+" "+d);//It prints 8.0 8 8 8 8.0 8.0
    		
    	}
    
    }
    

    Autoboxing und Unboxing

    		List<Double> li = new ArrayList<>();
    		li.add(8.0);// line 1
    		li.add(new Double(5));// line 2
    		double n = li.get(1);// line 3
    
    • In Zeile 1 haben Sie gerade 8 Grundwerte eingegeben. Java erstellt ein Double-Objekt und speichert es im ArrayList-Objekt. Dieser Vorgang wird Autoboxing genannt.
    • In Zeile 2 erstellen Sie das Objekt. Kein Autoboxing hier.
    • In Zeile 3 gibt die get-Methode ein Double-Objekt zurück, das bei der Zuweisung zu einer Double-Variablen in einen primitiven Double-Wert umgewandelt wird. Dieser Vorgang wird als automatisches Unboxing bezeichnet.

    Boolescher Wert

    Hier sind einige wichtige Punkte zur Boolean-Klasse:

    • Die boolesche Klasse befindet sich seit der Java-Version 1.0 im Paket java.lang.
    • Eine Objektklasse ist die Oberklasse von Boolean.
    • Es implementiert vergleichbare, serialisierbare Schnittstellen.
    • Es ist eine unveränderliche Klasse.
    • Die Boolean-Klasse verpackt einen Wert des primitiven Typs Boolean in ein Objekt. Ein Objekt vom Typ Boolean enthält ein einzelnes Feld, dessen Typ boolean ist.
    • Darüber hinaus bietet diese Klasse mehrere Methoden zum Konvertieren eines booleschen Werts in einen String und eines Strings in einen booleschen Wert sowie andere Konstanten und Methoden, die beim Umgang mit einem booleschen Wert nützlich sind.

    Erstellen eines booleschen Objekts

    Eine boolesche Klasse hat zwei Konstruktoren.

    • öffentlicher Boolescher Wert (Boolescher Wert)

    Es erstellt ein boolesches Objekt, das das Wertargument darstellt.

    • public Boolean(String s)

    Es erstellt ein boolesches Objekt, das den Wert „true“ darstellt, wenn das Zeichenfolgenargument nicht null ist und (ohne Berücksichtigung der Groß-/Kleinschreibung) gleich der Zeichenfolge „true“ ist. Andernfalls weisen Sie ein boolesches Objekt zu, das den Wert „false“ darstellt.

    • Sie können Boolean mithilfe vordefinierter Felder in der Boolean-Klasse erstellen.

    Beispiel :

    public class DoubleDemo {
    
    	public static void main(String[] args) {
    
    		Boolean b1 = new Boolean(true);
    		Boolean b2 = new Boolean("true");
    		Boolean b3 = new Boolean("false");
    		Boolean b4 = new Boolean("oca");
    		Boolean b5 = new Boolean("null");
    		Boolean b6 =Boolean.TRUE;
    		Boolean b7 = Boolean.FALSE;
    		System.out.println(b1+" "+b2+" "+b3+" "+b4+" "+b5+" "+b6+" "+b7);//prints true true false false false true false
    		
    	}
    
    }
    
    • öffentlicher statischer boolescher Wert parseBoolean(String s): Es analysiert das Zeichenfolgenargument als booleschen Wert. Der zurückgegebene boolesche Wert stellt den Wert „true“ dar, wenn das Zeichenfolgenargument nicht null ist und (ohne Berücksichtigung der Groß-/Kleinschreibung) gleich der Zeichenfolge „true“ ist.
    • öffentlicher statischer boolescher WertOf(boolean b): Es gibt eine boolesche Instanz zurück, die den angegebenen booleschen Wert darstellt.
    • öffentlicher boolescher booleanValue(): Es gibt den Wert dieses booleschen Objekts als boolesches Grundelement zurück.

    Beispiel :

    public class DoubleDemo {
    
    	public static void main(String[] args) {
    
    		boolean b1 = Boolean.parseBoolean("true");
    		boolean b2 = Boolean.parseBoolean("oca");
    		Boolean b3 = Boolean.valueOf(false);
    		boolean b4 = b3.booleanValue();
    		System.out.println(b1 + " " + b2 + " " + b3 + " " + b4);// It prints true false false false
    	}
    
    }
    

    Abschluss

    Person, die an einer Online-Prüfung teilnimmt

    Bildnachweis an onlineclassking.com

    Für die OCAJP-Prüfung konzentrieren Sie sich auf Autoboxing und Auto-Unboxing, ParseXXX-Methoden in drei Klassen und mögliche Wege zum Erstellen des booleschen Objekts. Sie müssen sich die Schlüsselkonzepte merken, um alle Fragen im Zusammenhang mit den Wrapper-Klassen zu beantworten. Beantworten Sie außerdem viele Übungsfragen, um alle Konzepte besser zu verstehen.

    Zusätzliche Ressourcen

    Kommentar verfassen

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

    Nach oben scrollen