null в Java аналогичен / аналогичен nullptr в C ++.
Программа в C ++:
class Point
{
private:
int x;
int y;
public:
Point(int ix, int iy)
{
x = ix;
y = iy;
}
void print() { std::cout << '(' << x << ',' << y << ')'; }
};
int main()
{
Point* p = new Point(3,5);
if (p != nullptr)
{
p->print();
p = nullptr;
}
else
{
std::cout << "p is null" << std::endl;
}
return 0;
}
Та же программа в Java:
public class Point {
private int x;
private int y;
public Point(int ix, int iy) {
x = ix;
y = iy;
}
public void print() { System.out.print("(" + x + "," + y + ")"); }
}
class Program
{
public static void main(String[] args) {
Point p = new Point(3,5);
if (p != null)
{
p.print();
p = null;
}
else
{
System.out.println("p is null");
}
}
}
Теперь вы понимаете из кодов выше, что является нулевым в Java? Если нет, то я рекомендую вам изучить указатели на C / C ++, а затем вы поймете.
Обратите внимание, что в C, в отличие от C ++, nullptr не определено, но вместо этого используется NULL, который также может использоваться в C ++ тоже, но в C ++ nullptr является более предпочтительным, чем просто NULL, потому что NULL в C всегда связан с указателями, и это все, поэтому в C ++ суффикс «ptr» был добавлен к концу слова, а также все буквы теперь нижний регистр, но это менее важно.
В Java каждая переменная типа non-primitive типа всегда ссылается на объект этого типа или унаследована, а null - это ссылка на объект null класса, но не нулевой указатель, поскольку в В Java нет такой вещи «указатель», но вместо этого используются ссылки на объекты класса, а нуль в Java связан с ссылками на объекты класса, поэтому вы также можете назвать его как «nullref» или «nullrefobj», но это длинный , поэтому просто назовите его «null».
В C ++ вы можете использовать указатели и значение nullptr для необязательных членов / переменных, то есть член / переменная который не имеет значения, и если он не имеет значения, то он равен nullptr, поэтому как можно использовать null в Java.