Java 对象定义问题

这两种定义方式有什么区别吗?好像都可以没报错... 这两种定义方式有什么区别吗?好像都可以没报错 展开
 我来答
柠萌茶123456
2015-11-18 · 超过22用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:35.7万
展开全部
前一种完成了初始化的工作,也就是在Java虚拟机堆内存为st分配了内存,可以调用相应的方法;
后一种仅仅是声明了一个变量可以用于存储Solution的对象内容,如果直接用st1调用方法会报空指针的。
为了便于理解用个基本数据类型举例:
int i=1;
int j;
你可以用i去进行加减乘除运算,但是j什么也干不了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ccppv
推荐于2017-10-15 · TA获得超过2994个赞
知道大有可为答主
回答量:5074
采纳率:40%
帮助的人:2991万
展开全部
上面是定义一个对象,并立即对它 new出一个对象.
下面这个,只是定义了一个对象.此时它等同于 Solution st1 = null;
也就是你必须在你需要的时候再new出来.

两种写法都没有错.如果你采用下面的写法,就要注意初始化对象的位置,要不然会产生NullPointerException
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雪飞潇潇
2015-11-18 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:878万
展开全部
Solution st = new Solution();
定义一个变量叫st,并且初始化赋值
Solution st1;
定义一个变量叫st1 , 但是没有赋值

比如 有个人,是张三
有个人, 是谁先不说, 等下再说 他是张三

区别就是一个变量已经初始化了有值, 一个还没初始化,没有值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leede123456
2015-11-18
知道答主
回答量:12
采纳率:0%
帮助的人:5.6万
展开全部
第一种是定义,即分配了内存,第二种是声明,没有分配内存。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式