对象与对象变量

注:该文来自Java核心卷I,第四章第4.2.1节,主要用来理解模糊的知识点。

构造器的名字应该与类名相同。因此 Date 类的构造器名为 Date。要想构造一个 Date 对 象, 需要在构造器前面加上 new 操作符,如下所示: new Date() 这个表达式构造了一个新对象。这个对象被初始化为当前的日期和时间。 如果需要的话, 也可以将这个对象传递给一个方法: System.out.printTn(new DateO); 或者, 也可以将一个方法应用于刚刚创建的对象。Date 类中有一个 toString 方法。这 个方法将返回日期的字符串描述。下面的语句可以说明如何将 toString 方法应用于新构造的 Date 对象上。 String s = new Date().toString(); 在这两个例子中, 构造的对象仅使用了一次。通常, 希望构造的对象可以多次使用, 因 此,需要将对象存放在一个变量中: Date birthday = new Date(); 图 4-3显示了引用新构造的对象变量 birthday

在对象与对象变量之间存在着一个重要的区别。例如, 语句 Date deadline; // deadline doesn't refer to any object 定义了一个对象变量 deadline, 它 可 以 引 用 Date 类型的对象。但是,一定要认识到: 变量 deadline 不是一个对象, 实际上也没有引用对象。此时,不能将任何 Date 方法应用于这个变 量上。语句 s = deadline.toStringO; // not yet 将产生编译错误。 必须首先初始化变量 deadline, 这里有两个选择。当然,可以用新构造的对象初始化这 个变量: deadline = new Date(); 也让这个变量引用一个已存在的对象: deadline = birthday; 现在,这两个变量引用同一个对象(请参见图 4-4 。)

图 4-4 引用同一个对象的对象变量 一定要认识到: 一个对象变量并没有实际包含一个对象,而仅仅引用一个对象。 在 Java 中,任何对象变量的值都是对存储在另外一个地方的一个对象的引用。new 操作 符的返回值也是一个引用。下列语句: Date deadline = new Date(); 有两个部分。表达式 new Date() 构造了一个 Date 类型的对象, 并且它的值是对新创建对象的 引用。这个引用存储在变量 deadline 中。 可以显式地将对象变量设置为 mil,】 表明这个对象变量目前没有引用任何对象。 deadline = null; if (deadline != null) System.out.println(deadline); 如果将一个方法应用于一个值为 null 的对象上,那么就会产生运行时错误。 birthday = null; String s = birthday.toStringQ; // runtime error! 局部变量不会自动地初始化为 null,而必须通过调用 new 或将它们设置为 null 进行初始化。

转载于:https://juejin.im/post/5a33343251882549a5424569

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值