在java 中有这么一句话,“万物皆对象”,这句话Java程序语言之初的理念之一。我们就需要理解什么是对象,还有什么是引用。
对象定义
在《Java编程思想》中,是这么定义对象的。“按照通俗的说法,每个对象都是某个类(class)的一个实例(instance),这里的类就是类型的同义词”。我们可以从这一句话中可以看出对象的本质,简单的说,它就是类的实例。比如说,所有的人合起来就是人类,这里人类就是类,而具体到某个人的时候,比如智慧这个人,她就是对象。这个就是人类实例。
对象引用
“每种编程语言都有自己的数据处理方式。有些时候,程序员必须注意将要处理的是什么数据类型。你是直接操纵元素,还是用某种基于特殊语法的间接表示(例如c/c++里面指针)来操纵对象,所有这些在Java 中得到了简化,一切都被视为对象。因此,我们就可以采用一种统一的语法,尽管将一切都看作对象,但操纵的标识符实际上是指向一个对象的引用(reference)”.这句话也是来自《java编程思想》,我们先上一个例子:
Person p = new Person("zhihui");
这一句话和下面的效果是一样的
Person p;
p = new Person("zhihui");
在java中new是在堆创建对象的,这里面的Person是一个引用,是指向一个可以指向Person类对象的引用。真正在创建对象是在new Person("zhihui")这一句话中的。然后补充一点,一个引用可以指向多个对象,例如:
Person person;
person = new Person("张三");
person = new Person("李四");
而一个对象也可以是被多个引用指向的。
Person person1 = new Person("张三");
Person person2 = person1;
这里面person1和person2都指向了“张三”这个对象。