Apa null obyek? Aku pancen bisa ngomong sing ora. Ing pangertèn sing
(null instanceof Object)
bakal menehi nilai false
. Mangkene apa maneh sampeyan kudu ngerti babagan null:
- Sampeyan ora bisa nelpon cara karo nilai null:
x.m()
bakal uncalan kesalahan nalikax
Nilai null lanm
cara non-statis. Miturut cara, yenm
cara statis, kabeh apik, amarga mung kelas sing pentingx
, lan nilai ora digatekake. - Mung ana siji null kanggo kabeh, lan ora kapisah kanggo saben kelas. Mangkono,
((String) null == (Hashtable) null)
contone. - Iku becik ditrima kanggo pass null minangka parameter kanggo cara yen cara ngidini (sawetara cara ngidini parameter null, liyane ora). Dadi, contone, sampeyan bisa uga nulis
System.out.println (null)
, nangingbutstring.compareTo (null)
ora bisa. Dadi, mesthi nuduhake ing komentar javadoc babagan metode sampeyan manawa null bisa ditampa minangka paramèter, yen ora jelas. - Ing JDK saka versi 1.1 kanggo 1.1.5, maringaken null minangka bantahan harfiah kanggo konstruktor saka kelas utama anonim (Contone,
new SomeClass(null) { ...}
nyebabake kesalahan compiler. Nanging, sampeyan bisa pass expression karo Nilai null, utawa pass dipeksa. null, ing wangunnew SomeClass((String) null) { ...}
- Paling ora ana telung kasus sing beda-beda, sing biasane ditulis nganggo null:
- Uninitialized (ora ana initialization). Variabel utawa slot sing durung diwenehi nilai.
- Ora ana / ora ditrapake .Contone, simpul terminal saka wit binar bisa diarani simpul biasa karo anak null.
- Kosong (kosong saka soko). Contone, sampeyan bisa nggunakake null kanggo makili wit kosong. Elinga yen iki cukup beda saka kasus sadurunge (padha asring bingung ing laku). Bentenane yaiku apa null minangka simpul wit sing bisa ditampa utawa yen null tegese nilai kasebut ora perlu dianggep minangka simpul wit.
-
// null означает «не применимо» // Здесь нет пустого дерева. class Node { Object data; Node left, right; void print() { if (left != null) left.print(); System.out.println(data); if (right != null) right.print(); } }
-
// null означает пустое дерево // обратите внимание на статические и нестатические методы class Node { Object data; Node left, right; void static print(Node node) { if (node != null) node.print(); } void print() { print(left); System.out.println(data); print(right); } }
-
// Отдельный класс для Empty // null не используется interface Node { void print(); } class DataNode implements Node{ Object data; Node left, right; void print() { left.print(); System.out.println(data); right.print(); } } class EmptyNode implements Node { void print() { } }
Bandhingake telung implementasi simpul wit binar kanthi cara output konsol urutan:
GO TO FULL VERSION