类是创建对象的模板,对象是类的一个具体的实例,这就是类和对象之间的关系。
必须先有类,才能有对象!定义好一个类以后,你就可以创建该类的对象了。类定义了属性和方法,属性也就是成员变量,可用于存储对象的状态,方法可用于建立对象的行为模型,举个例子:我们说猫,猫是什么?猫一个类,那么什么是对象?这只猫是一个对象,具体的特指某一只猫是对象,猫有猫毛,毛有颜色,那么这只猫就是黑猫,那只猫就是白猫,这个毛和颜色都属于猫的属性,所以说属性可用于存储对象的状态,也就是说属性表现出了对象的状态,不同的对象通过属性值的不同就区分开了。方法,抓老鼠,黑猫白猫它们都会抓老鼠,通过方法是区分不开他们的,所以方法只是对象的行为,某个类的这些个对象具有相同的行为,但是由于他们的属性可以不同,所以可以通过属性影响了方法的效果:我和你都属于人类,我们是人这个类的两个对象,我们都有鼻子眼睛嘴这些属性,但是属性值不同,我嘴大,你嘴小,所以我比你吃的快,吃这种行为,就是我们共同具有的方法,但是我比你吃的快,由于属性值不同影响了方法内部的运算,我和你都调用这个方法,返回值可能不同。
面向对象思想其实不难,很接近我们现实生活的,相当于把我们现实世界的认知,通过一个很小的转变就转变到了编程语言上,所以面向对象更接近我们人的思维,楼主仔细想一下我上面举的例子,是不是现实中都存在?所以你也别感觉自己偏离了方向,你就运用人自然的的思维方式去考虑就可以了,但是因为可能我们会不习惯,这种现象Thinking in Java 中说的很好:“我们可能会被这种简单性难倒”,一点不错,可能我们太习惯过去那种面向过程的编程思想了,所以说时间长了,慢慢就好了,你要习惯一段时间,我估计楼主也是刚学,所以先别强求自己短时间内能精通所有细节,实在不行就多写代码吧,照猫画虎也好,开始都是模仿的,写的多了突然就会醒悟了,哦~原来是这么回事,所以楼主不妨以后写程序的时候这样想:
面向对象的思想,那么你看到的就是一个一个的对象了,所以解决一个问题的时候:
1)首先要考虑,作为这个问题来说,应该具有哪些个类,哪些个对象(上面已经说过了对象和类之间的关系)。
2)然后再考虑,这些个类和这些对象,应该具有哪些属性和方法。
3)再考虑,类与类之间具备了什么样的关系。
你这样想多了,不知不觉就是面向对象的思维了。
面向对象的3个特性:封装,继承,多态。所谓封装,就是通过定义类并且给类的属性和方法加上访问控制来抽象事物的本质特性。所谓继承,就是代码重用,而多态,从另外一个角度分割了接口和实现。
面向对象具有更好的代码重用性,可扩展性,维护性,。。。。等等什么性 太多了,慢慢体会吧。