- 万物皆是对象
面向对象程序设计(OOP)是一种基于对象概念的软件开发方法,是目前主流的开发方法。而Java语言,相比于它的前辈C++来说,是一种更纯粹的面向对象编程语言。对象是一种抽象的概念我只能说万物皆是对象。在面向对象编程中,遇到的所有概念都有可能成为一个对象。例如,有个人叫张三,有自己的行为和属性,我们就可以把张三封装为一个类,属性使用成员变量来表示,行为可以用方法来表示,这就形成了一个完整的“张三”类。那么怎么使用这个类呢?这时候就会用到对象。为张三类new一个对象,我们就可以通过对象来调用张三的属性和方法。
张三 a = new 张三();
//这里的 a 就是张三类的对象的引用。
如此定义,大家就明白了,对象是基于类的。所有的事物都能成为类,也就是万物皆为对象。(并不是说所有的类都会有对象,抽象类就不能直接产生对象)
2. 用引用操纵对象
看到上面的代码时,有人会认为“a”就是张三类的对象,这样说是不严谨的。我们还是以张三类来做演示:
private 张三 a;
代码如上,假设我在一个类中定义了一个张三类型的变量“a”,这个a直接使用就会产生异常,因为它并没有指向任何的地址,或者说指向了空的地址。我们这里只是定义了张三类型的一个引用,当这个引用指向“new 张三();”这个地址时,我们才可以用引用来操作这个新建的对象。
- 必须亲自创建所有对象
这些标题都是我从书中调用的,所以不要吐槽我标题这么难懂。其实这个标题也不难懂,意思就是对象不是你创建一个类就自然生成,而是我们要用关键字“new”来创建一个类的对象,“new”的意思是给我一个新对象。