这个是xuxe是声明对象吗,这样就是创建一个对象吧然后给对象一个名字xuxe;我想问一下那这样就可以调用实例化对象区别是什么

来源:1-1 案例简介

不惧岁月

2022-08-17 23:24:06

https://img.mukewang.com/climg/62fd06ae097b6d2b14680885.jpg

XuKe xuxe  这样可以调用啊

XuKe  xuxe=new XuKe();

老师我咋看不懂了第一种可以调用还需要第二种实例化初始化干啥

因为第一种会引发空指针吗,还是因为我现在还没搞懂空指针所以不懂?

写回答

1回答

好帮手慕小蓝

2022-08-18

同学你好,由于同学没有给出XuKe xuxe=new XuKe();语句出现的位置,所以老师只能就可能的两种情况分别作分析:

1.上述语句出现在方法内部:XuKe xuxe是变量的声明,而new XuKe();是变量的初始化。

当变量位于方法内部时,这个变量被称为局部变量。局部变量在语法上要求必须先初始化,然后才能使用。所以如果没有new XuKe();语句对xuxe变量进行初始化,那么在编译时就会报错。

2.上述语句出现在成员属性位置:同样的,XuKe xuxe是变量的声明,而new XuKe();是变量的初始化。

但是不同于局部变量,成员属性是具有默认值的,即null值。

所以如果没有给xuxe变量使用new XuKe();进行初始化,xuxe变量也是有值的,可以进行方法的调用。

但是,因为默认值是null值,而null值调用方法或者访问属性会出现空指针异常的。

祝学习愉快~


0

0 学习 · 9886 问题

查看课程