mam ten kod:Jaka jest różnica między nieinicjalizacją a inicjalizacją do wartości NULL?
MyClass object;
.... some code here where object may or may not be initialised...
if (object.getId > 0) {
....
}
co powoduje błąd kompilacji: object
nie mogły zostać zainicjowany, który jest na tyle fair.
Teraz mogę zmienić swój kod do tego:
MyClass object;
.... some conditional code here where object may or may not be initialised...
if (object != null && object.getId > 0) {
....
}
uzyskać ten sam błąd kompilacji! Mam do zainicjowania object
null:
MyClass object = null;
Więc jaka jest różnica między nie inicjalizacji obiektu i inicjowanie null? Jeśli zadeklaruję obiekt bez inicjalizacji, czy nie jest on pusty?
Dzięki
to jednak moje pytanie: czy "zero" jest wartością? Zawsze uważałem (być może naiwnie) za "brak wartości", a więc równoznaczne z brakiem inicjalizacji. –
Nie wiedziałem o tym. Teraz właśnie nauczyłem się czegoś nowego również dzisiaj :) – Nailuj
@Richard: null jest bardzo zdecydowanie wartością. Jest to wartość, która nie odnosi się do żadnego obiektu. Jest różnica między "nie definitywnie przypisanym" i "zdecydowanie przypisanym, o wartości zerowej". –