JavaRush /Java Blog /Random-TL /Ang null ba ay isang bagay sa Java?

Ang null ba ay isang bagay sa Java?

Nai-publish sa grupo
Ang null ba ay isang bagay? Masasabi kong hindi talaga. Sa kahulugan na (null instanceof Object)ito ay magbibigay ng halaga false. Narito kung ano pa ang kailangan mong malaman tungkol sa null:
Ang null ba ay isang bagay sa Java?  - 1
  1. Hindi ka maaaring tumawag ng isang pamamaraan na may halaga na null: x.m()ito ay magtapon ng isang error kapag xang halaga ay null at mang pamamaraan ay hindi static. Sa pamamagitan ng paraan, kung mito ay isang static na pamamaraan, lahat ay maayos, dahil ang klase lamang ang mahalaga x, at ang halaga ay hindi pinansin.

  2. Mayroon lamang isang null para sa lahat, at hindi isang hiwalay para sa bawat klase. Kaya, ((String) null == (Hashtable) null)halimbawa.

  3. Ito ay ganap na katanggap-tanggap na ipasa ang null bilang isang parameter sa isang pamamaraan kung pinapayagan ito ng pamamaraan (ang ilang mga pamamaraan ay nagpapahintulot sa isang null na parameter, ang iba ay hindi). Kaya, halimbawa, maaari kang magsulat System.out.println (null), ngunit butstring.compareTo (null)hindi ito gagana. Kaya palaging ipahiwatig sa mga komento ng javadoc ng iyong mga pamamaraan kung ang null ay katanggap-tanggap bilang kanilang mga parameter, kung hindi ito ganap na halata.

  4. Sa JDK mula sa bersyon 1.1 hanggang 1.1.5, ang pagpasa ng null bilang literal na argumento sa constructor ng isang anonymous na panloob na klase (halimbawa, new SomeClass(null) { ...}nagdulot ng error sa compiler. Gayunpaman, maaari kang magpasa ng expression na may value na null, o magpasa ng forced null, sa anyonew SomeClass((String) null) { ...}

  5. Mayroong hindi bababa sa tatlong magkakaibang mga kaso, na karaniwang ipinahayag gamit ang null:

    • Uninitialized (walang initialization). Isang variable o slot na hindi pa naitatalaga ng anumang halaga.

    • Non-existant/not applicable . Halimbawa, ang mga terminal node ng isang binary tree ay maaaring tawaging ordinaryong node na may mga null na bata.

    • Walang laman (emptiness of something). Halimbawa, maaari mong gamitin ang null upang kumatawan sa isang walang laman na puno. Tandaan na ito ay lubos na naiiba mula sa nakaraang kaso (sila ay madalas na nalilito sa pagsasanay). Ang pagkakaiba ay kung ang null ay isang katanggap-tanggap na tree node o kung ang null ay nangangahulugan na ang halaga ay hindi kailangang ituring bilang isang tree node.

    Paghambingin ang tatlong pagpapatupad ng mga binary tree node na may sequential console output method:


  6. // null означает «не применимо»
    // Здесь нет пустого дерева.
    class Node {
      Object data;
      Node left, right;
    
      void print() {
        if (left != null)
          left.print();
        System.out.println(data);
        if (right != null)
          right.print();
      }
    }

  7. // 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);
      }
    }

  8. // Отдельный класс для 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() { }
    }
May-akda ng sagot: Peter Norvig, Amerikanong siyentipiko sa larangan ng artificial intelligence, direktor ng pananaliksik sa Google
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION