对象与对象变量

         要想使用对象,就必须首先构造对象,并指定其初始状态。然后对对象应用方法。

         在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();

对象与对象变量_第1张图片

        对象与对象变量之间存在着一个重要的区别。如,语句

   

   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进行初始化。

 

你可能感兴趣的:(java)