要想使用对象,就必须首先构造对象,并指定其初始状态。然后对对象应用方法。
在java程序设计语言中,使用构造器构造新实例,构造器是一种特殊的方法,用来构造并初始化对象。下边看一个例子,在java库中包含一个Date类,他的对象将描述一个时间点,例如:“ December 31,1991,23:23:23 GMT”。
构造器的名字应该与类名相同,因此Date类的构造器的名字为Date。要想构造一个Date对象,需要在构造器前面加上new操作符,如下显示:
new Date();
这个表达式构造了一个新对象。这个新对象被初始化为当前的日期和时间。
如果需要的话也可以将一个对象传递给一个方法:
System.out.println(new Date());
或者,也可以将一个方法应用于刚刚创建的对象,Date类中有一个tostring方法。这个方法将返回一个字符串描述的日期格式,下面我们来举一个简单的例子:
String s = new Date().toString();
在上面两个例子中,够早的对象仅使用了一次,通常,希望构造的对象多次使用,因此,需要将对象存放在一个变量中;
Date birhday = new Date();
对象与对象变量之间存在着一个重要的区别。如,语句
Date deadline;//deadline不是任何对象
定义一个对象变量deadline,他可以引用Date类型的对象,但是,一定要认识到;变量deadline不是一个对象,实际上也没有引用对象,此时,不能讲任何Date方法应用于这个变量上。语句:
s = deadline。toString();//not yet
将产生编译错误。
必须首先初始化变量deadline,这里有两个选择。淡然,可以用新构造的对象初始化这个变量;
deadline = new Date();
也可以让这个变量引用一个已经存在的对象;
deadline = birthday;
现在这两个对象引用同一个对象:
一定要认识到:衣蛾对象变量并没有实际包含一个对象,而是引用一个对象。
任何对变量的值都是对存储在另外一个地方的一个对象的引用。new操作符的返回值也是一个引用。例如下句:
Date deadline = new Date();
有两部分,表达式new Date()构造了一个Date类型的对,并且它的值是对新创建对象的引用,这引用存在变量deadline中
可以显示的将对象变量设置为 null , 表明这个对象变量目前没有引用任何对象。
deadline = null;
....
if(deadline !=null)
System.out.println(deadline);
如果讲一个方法应用于一个值为null的对象上,那么就会产生运行是错误
birthday = null;
String s = birthday.toString();//runtime error
局部变量不会自动的初始化为null,而必须通过调用new或将他们设置为null进行初始化。