面向对象是一种思想,Java是一种面向对象的程序语言,学习Java有助于你理解面向对象,但是不要把Java和面向对象画等号。
既然是面向对象,那最重要的概念无非是对象。我们面对的一切事物其实都是对象。对象有它的固有属性和固有方法,其实对象也就是由一个属性集合和一个方法集合组成的。这可以结合Java理解,在Java中对象是类的实例,而每个类都定义了一系列的属性和方法。
然后说到类,这也是一个重要的概念。类,很简单,是一类对象的集合,它不是一个具体的集合,而是一种抽象描述,而描述方式就是此类对象的共有属性和方法。换句话说就是共性,很简单。
类和对象的概念是面向对象的基础,有了这两者,我们已经可以描述整个宇宙,从抽象到具体,从时间到空间的任何事物。面向对象的还有一个概念于是出现了:抽象。如果你觉得前面的概念很简单的话,接下来可能就难以理解了。
可惜理解抽象同样很重要,因为我们有这么多类,无穷多个,如果没有一个统一的称呼,没有一个办法对其进行进一步的分类,会难以找到其中的关系,从而难以利用这些类和对象来解决实际问题。那么幸好我们有抽象。抽象是把具体的事物合并,舍弃一些次要的属性而保留共有属性。在这个意义上来讲,它是设计类时的参照。记住,再说一次,这是你设计类时候的依据!经常有初学者迷茫于如何能设计出结构良好的程序,其实他们纠结的是如何能设计出良好的类结构。
因此这个问题很难回答,如果能够很好地解释抽象的话,大多数人就能够设计出比较理想的类结构,否则往往不能。这也是这个概念的重要性所在。
------------------------------------------------------------------
再写要写成书了,到此为止吧,欢迎大家讨论。