java定义类变量的相关问题。。。。。

privateNamename;Name是一个类,定义这样的一个类变量name目的是什么?为什么不是Stringname?... private Name name; Name是一个类,定义这样的一个类变量name目的是什么?为什么不是String name? 展开
 我来答
b_spike
推荐于2016-05-20 · TA获得超过3686个赞
知道大有可为答主
回答量:3724
采纳率:78%
帮助的人:1154万
展开全部
需要注意,Name是一种类型(即class类型),它与结构体一样是一种用户自定义类型,可以像int等类型标识符一样使用。
所以 private是修饰符,Name 是类型,name是变量(具体到class类型来说,是对象句柄或对象引用)

这条语句的目的,是定义一个name变量(对象句柄),它的类型是类Name类型,因此,它的值必须由Name类的构造函数来生成(也可以用Name的派生类的构造函数),不能用其它构造函数生成。
当name对象句柄没有指向已经使用了构造函数的Name类的对象,它的值将为null值,使用它的成员就会报"空引用异常“。
如果写成String name的话,那么就是定义一个name变量,但它的类型是String类型,而不是你自定义的Name类型。它的对象要用String类的构造函数生成,而不是用Name类的构造函数。

private Name name ;
是定义一个私有的成员变量(对象句柄)name,类型是你定义的Name类的类型。由于没有 name = new Name();这条语句(这条语句就是用Name类的构造函数构造出Name类的对象),因此,name成员(对象句柄)的值是null
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-10-27
展开全部
Name里面有什么东西?你要把全部代码结合来看。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友43e8003
2014-10-27 · TA获得超过232个赞
知道小有建树答主
回答量:311
采纳率:0%
帮助的人:115万
展开全部
Name name;

name就是一个对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式