java的一个很重要的特征就是面向对象(OOP),有了此特征之后,我们java开发人员,只需要根据不同的开发需求,创建符合项目本身的一些列对象,然后让对象与对象之间通过某种方式关联起来,对于我们来从业人员来说,我们再也不需要关注复杂的机器语言,解决问题的实质,就是变成怎么创建一个有血有肉,功能灵活的对象。

为什么会出现对象,用对象会给我们开发人员带来什么好处呢?

想象一下你面对一大堆0101机器语言,该是多么痛的领悟。我们现在只是需要根据问题,来分析问题,解决问题。所有的范畴都是人类可以接受的范畴,可以理解的范畴。可以将每一个对象看成是一个小型计算机,他里面有一套属于自己的内部算法,可以是属性,也可以是方法,讲很多小型计算机拼接到一起,就是我们的面向对象的实质。


简单一点说,面向对象开发就是,我们创建对象,然后通过对象调用方法一些列过程。

面向对象的的特征:

1、我们能看到的任何事物都可以抽象为对象。可以简单的理解为对象就是一个特殊的数据类型。

2、程序是对象的集合,他们之间的通讯方式就是打电话或者写信(方法的调用),如果一个对象不与外界任何事情发生联系,我们创建他的目的是什么?因此,一个存在的对象,肯定是为了程序的需要。

3、每个对象都有其特殊的类型。每一个对象都是其类(class)的一个实例(instance),每个类的主要区别就是可以发送什么的消息。例如:男人好色,女人爱美一样,这两个类的本质区别就是可以提供什么样的方法给外界。

4、某种特定类型的所有对象都可以接受同样的消息。这句话的意思是说,当一个对象属于这类时,也就是这个类的一个实例,那么他们都有其这个类的一些特种属性和方法。例如:中国人和美国人,他们的所属范畴应该是人这一类,那么他们肯定都会有睡觉,吃饭等方法,但是也会有不同的种族习惯。专业术语:


他们都有人的行为和属性,但是他们的行为的具体方式(比如生活方式)可能有所差异。



5、每一个对象的存储空间都是有其简单类型或复杂类型构成的集合。


是说每个对象都可以由其他对象组成或者构成,这些对象在计算机里面都是要占用内存的,所以被构成的那个对象的内存是由构成它的对象所占用的内存“之和”。举个例子:你是由若干个骨头和若干块肌肉以及器官构成的,这些肌肉、骨头、器官也要占用你占用的空间的。



一句话概括,对象具有其特征,属性和方法。(状态,行为,标识),并且每一个对象占用的内存地址都不一样,这可以理解,计算机跟人其实差不对,如果任何一个对象占用的地址都是一样的话,他是不是也很区分呢?