Java中的空对象

一个引用变量没有通过new分配内存空间,这个对象就是空对象,Java使用关键字null表示空对象。
示例代码如下:

String name = null; 
name = "Hello World";

引用变量默认值是null。当试图调用一个空对象的实例变量或实例方法时,会抛出空指针异常 NullPointerException,如下代码所示:

String name = null; 
//输出null字符串 
System.out.println(name); 
//调用length()方法 
int len = name.length();

但是代码运行到调用length()方法时,系统会抛出异常。这是因为调用length()方法时,name是空对象。应避免调用空对象的成员变量和方法,代码如下:

//判断对象是否为null 
if (name != null) { 
	int len = name.length(); 
}

重点来了
但是Java中空对象调用函数一定会崩溃吗?答案是否定的
直接看例子:

public class TestDemo {
    public static void func() {
        System.out.println("This is func()...");
    }
    public static void main(String[]args) {
        TestDemo tDemo = null;
        tDemo.func();//放心吧,这行代码不会崩溃的,其实等价于TestDemo.func();
    }
}

func()是类TestDemo的静态方法,也属于类的成员方法。通常使用类名作为调用者来调用类的静态方法,其实也可以使用类对象来调用类的静态方法,其效果是完全一样的。当使用实例对象调用类的静态方法时,实际上是委托给类来访问调用的,此时即使这个实例对象是空的,它也可以访问到这个静态成员方法,而不发生空指针异常崩溃。但是一般不推荐这样使用,还是用类名称来直接调用类的静态方法吧。


以上内容仅供参考学习,如有侵权请联系我删除!
如果这篇文章对您有帮助,左下角的大拇指就是对博主最大的鼓励。
您的鼓励就是博主最大的动力!

发布了120 篇原创文章 · 获赞 11 · 访问量 6950

猜你喜欢

转载自blog.csdn.net/weixin_45366499/article/details/105335529
今日推荐