根据我自己的经验,这个阶段问这个问题,只会让自己更加糊涂,真的,这种问题到时候自己会有体会的。现在认真学就行了,加油!
我先问你一问题:什么是瓶子?你能回答出来吗?能倒水的?管子也可以。容器?米缸也是。你会发现用文字回答这问题很纠结。其实瓶子这一概念就是类,而你此刻桌上放这的那具体的瓶子就是对象。就如人是类,而某个具体的人,独一无二的人,如你就是一对象。这样你明白吗
你所创建、访问、操作等,不是原始的数据,而是java object。
谈论面向对象得有个参照系,一般离不开和面向过程的比较
--------------------------------------------------------
面向对象是将实物高度抽象化
面向过程是一种自顶向下的编程。
而面向对象是自下先建立抽象模型然后再使用模型。
面向对象也可以说是从宏观方面思考问题,而面向过程可以说是从细节处思考问题。
在面向对象中,也存在面向过程。
---------------------------------------------------------
面向过程和面向对象的程序设计之思维区别
所有的程序都是为了完成某些事情
在做这些事情的时候
面向过程考虑问题和解决问题的方法是:
怎样做(HOW)——〉怎样做(HOW)——〉怎样做(HOW)
面向对象考虑问题和解决问题的方法是:
有谁做(WHO)——〉谁是谁(WHO)——〉谁怎么做(HOW)
“有谁做”既这个事情都将有谁参与
“谁是谁”既是要把这些对象更好的抽象、描述出来(记得培训的时候跟IBM的老师胡搅蛮缠了半天什
么叫对象的“抽象”,现在想来确是自己错了,汗)
“谁怎么做”既要去实现这些对象各自要做的那些事情
虽然2者在程序细节上都跳不出赋值、条件、循环、选择这些最基本语句,但在设计时的区别还是显然的.
面向过程显然是个急性子:怎么办?怎么办?怎么办?
面向对象则态度比较雍容:别着急,先看一下有谁做,再看看谁是谁,最后再考虑“谁”们各自的HOW问题。
一个好的面向过程的程序就是要更好的解决HOW的问题
一个优秀的面向对象的程序则是要更好的解决WHO的问题
一个优秀的面向过程程序的设计师大概更会有一些数学天赋,条理清晰、纹丝不乱
一个优秀的面向对象程序的设计师大概更会有一些领导天赋,知人善任、物尽其用
----------------------------------------------------
从OOP来说,基本可分为“类库的生产者”和“类库的消费者”。
类库的消费并不都是具备了面向对象思想的人,通常知道如何继承和派生新对象就可以使用类库了, 然而我们的思维并没有真正的转过来,使用类库只是在形式上是面向对象,而实质上只是库方法的一种扩展。
因此,你要站在 类库生产者 的角度去考虑,比如去考虑JDK API中提供的类库为什么要这样设计,这也是一条很好的学习路线
---------------------------------------------------
希望在宏观理解上有所帮助.