Null: Unterschied zwischen den Versionen

Aus EINI
Wechseln zu: Navigation, Suche
 
(5 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Mit dem [[Schlüsselwort]] '''null''' wird der sog. '''Nullpointer''', oder die '''Nullreferenz''' repräsentiert. Sie repräsentiert "nichts", also das nicht-vorhandensein von Informationen. Entsprechend besitzen nicht initialisierte [[Attributvariablen]] nach Instanziierung des Objektes immer den Wert '''null'''. Man kann entsprechend auch '''jeder''' Objektvariablen den Wert '''null''' zuweisen, um die in der Variablen gespeicherte Referenz zu "löschen".
+
Mit dem [[Schlüsselwort]] '''null''' wird der sog. '''Nullpointer''', oder auch die '''Nullreferenz''', repräsentiert. Sie repräsentiert "nichts", also das Nichtvorhandensein von Informationen. Entsprechend besitzen nicht initialisierte [[Attributvariablen]] nach [[Instanziierung]] des [[Objekt|Objektes]] immer den Wert '''null'''. Man kann auch '''jeder''' Objektvariablen den Wert '''null''' zuweisen, um die in der Variablen gespeicherte Referenz zu "löschen".
  
Im Gegensatz zur '''0''', die einen numerischen Wert beschreibt, ist '''null''' eine Referenz! Das heißt, dass einer Variablen mit Objekttyp der Wert '''0''' nicht zugewiesen werden kann und '''null''' einem [[primitiver Datentyp | primitiven Datentyp]] nicht zugewiesen werden kann.
+
Im Gegensatz zur '''0''', die einen numerischen Wert beschreibt, ist '''null''' eine Referenz. Das heißt, dass einer Variablen mit [[Datentyp#Objektdatentypen|Objektdatentyp]] der Wert '''0''' nicht zugewiesen werden kann und '''null''' einem [[primitiver Datentyp | primitiven Datentyp]] nicht zugewiesen werden kann.
 +
 
 +
= Beispiele =
 +
 
 +
Objektreferenzen jeden Typs können mit '''null''' verglichen werden. Dies sollte grundsätzlich getan werden, bevor auf einem übergebenen Objekt eine Methode aufgerufen oder mit dem Objekt gearbeitet wird:
 +
 
 +
<source lang="java" title="Vergleich mit null">
 +
public void doSomething(Object object){
 +
    if(object != null)
 +
    {
 +
        /* Do Something */
 +
    }
 +
}
 +
</source>
 +
 
 +
Der Vergleich mit '''null''' eignet sich außerdem dazu, das Ende einer [[Liste]] zu finden.
 +
 
 +
Häufig werden [[Methode|Methoden]] bereitgestellt, um ein Objekt wieder in einen uninitialisierten Zustand zurückzusetzen. Objektreferenzen werden in diesem Zusammenhang gerne auf '''null''' gesetzt, während numerische Attribute auf '''0''' gesetzt werden:
 +
 
 +
<source lang="java" title="Inhalt eines Objektes löschen">
 +
public void clear(){
 +
    this.value = 0;
 +
    this.attribute = null;
 +
}
 +
</source>
 +
 
 +
=Negativbeispiel=
 +
 
 +
<source lang="java" title="Nicht erlaubte Operationen">
 +
Object reference;
 +
int number;
 +
public void doesNotCompile(){
 +
    this.reference = 0;
 +
    this.number = null;
 +
}
 +
</source>

Aktuelle Version vom 1. Februar 2017, 17:27 Uhr

Mit dem Schlüsselwort null wird der sog. Nullpointer, oder auch die Nullreferenz, repräsentiert. Sie repräsentiert "nichts", also das Nichtvorhandensein von Informationen. Entsprechend besitzen nicht initialisierte Attributvariablen nach Instanziierung des Objektes immer den Wert null. Man kann auch jeder Objektvariablen den Wert null zuweisen, um die in der Variablen gespeicherte Referenz zu "löschen".

Im Gegensatz zur 0, die einen numerischen Wert beschreibt, ist null eine Referenz. Das heißt, dass einer Variablen mit Objektdatentyp der Wert 0 nicht zugewiesen werden kann und null einem primitiven Datentyp nicht zugewiesen werden kann.

Beispiele

Objektreferenzen jeden Typs können mit null verglichen werden. Dies sollte grundsätzlich getan werden, bevor auf einem übergebenen Objekt eine Methode aufgerufen oder mit dem Objekt gearbeitet wird:

public void doSomething(Object object){
    if(object != null)
    {
        /* Do Something */
    }
}

Der Vergleich mit null eignet sich außerdem dazu, das Ende einer Liste zu finden.

Häufig werden Methoden bereitgestellt, um ein Objekt wieder in einen uninitialisierten Zustand zurückzusetzen. Objektreferenzen werden in diesem Zusammenhang gerne auf null gesetzt, während numerische Attribute auf 0 gesetzt werden:

public void clear(){
    this.value = 0;
    this.attribute = null;
}

Negativbeispiel

Object reference;
int number;
public void doesNotCompile(){
    this.reference = 0;
    this.number = null;
}