再探java基础——对面向对象的理解(1) 对象 面向对象与面向过程的区别 面向对象的四大特征

对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。对象具有属性和行为,在程序设计中对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。比如,人具有身高、体重等属性,具有吃饭、行走、睡觉等行为,在程序设计中属性对应着要存储的数据,行为对应着操作;数据和操作封装在同一个类中。

面向对象与面向过程的区别

面向过 是一种以事件为中心的编程思想。

面向对象(Object Oriented,简称OO) 是一种以事物(即对象) 为中心的编程思想

比如要写一个“斗地主”的程序,面向过程的思维可能是“斗地主”为一个件,每局开始时进行发牌,通过出不同的牌可以得到不同的结果;而面向对象的思维可能是要进行斗地主,必须要有三个人,人的对象,具有对牌进行操作的行为;每一张牌本身又是一个对象,具有大小和花色的属性;整副牌还可以是一个对象;整个斗地主这件事物也是一个对象。

面向对象的四大特征

抽象、继承、多态、封装

抽象:抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类,忽略与当前主题和目标无关的那些方面,将注意力集中在与当前目标有关的方面。抽象包括行为抽象和数据抽象两个方面。

继承:就像孩子与父亲的关系一样,在定义和实现一个类的时候,在一个已经存在的类的基础之上进行,把这个父类所定义的内容作为自己的内容,并可以加入若干新的内容,或修改原来的方法使之更适合特殊的需要,这就是继承。继承是子类自动共享父类数据和方法的机制,提高了软件的可重用性和可扩展性

多态:就是通过传递给父类对象引用不同的子类对象从而表现出不同的行为(父类引用指向子类对象)多态分离出做什么和怎么做,由父类或接口去定义要方法(做什么),由子类去实现这个方法(怎么做),将接口和实现的分离开来。

封装:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口来使用类的成员或调用对象的方法如通过GettersSetters实现对对象属性的读和写。