java定义类变量的相关问题。。。。。
privateNamename;Name是一个类,定义这样的一个类变量name目的是什么?为什么不是Stringname?...
private Name name; Name是一个类,定义这样的一个类变量name目的是什么?为什么不是String name?
展开
8个回答
展开全部
需要注意,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
所以 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里面有什么东西?你要把全部代码结合来看。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Name name;
name就是一个对象
name就是一个对象
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询