面向对象编程也采用了类概念把事物编写成个个“类”在类中用数据表示事物状态用实现事物行为这样就使编程方式和人思维方式保持致极大降低了思维难度
封装(Encapsulation) 制造汽车过程中什么人最牛?当然不是焊钢板也不是装轮胎更不是拧螺丝而是设计汽车工程师他知道汽车运行原理但是我们开车时需要知道汽车运行原理吗?答案显然不需要汽车运行原理已经被伟大工程师封装在汽车内部提供给司机只是个简单使用接口司机操纵方向盘和各种按钮就可以灵活自如开动汽车了
和制造汽车相似面向对象技术把事物状态和行为实现细节封装在类中形成个可以重复使用“零件”类旦被设计好就可以像工业零件样被成千上万对其内部原理毫不知情员使用类设计者相当于汽车工程师类使用者相当于司机这样员就可以充份利用他人已经编写好“零件”而将主要精力集中在自己专署领域
接口(Interface) 今天你买了台等离子电视机你拿出遥控器操纵按钮开始欣赏精彩电视节目人们通过遥控器这个接口使用电视机同样人们通过类接口使用类员在编写类时精心地为它设计接口而设计良好接口不但方便其他员使用还有利于类升级改造
假设你是个环保人士最近你用节能荧光灯代替了普通白炽灯白炽灯通过加热电阻丝照亮整个屋子;荧光灯则是激活空气中某些分子电子能而发光虽然它们原理区别但是它们功能却是样——照明两种灯具有相同接口所以你只需拧下白炽灯然后再拧上荧光灯即可轻易实现“零件”更新换代同样在面向对象编程中只要保持接口不变你可以任意更改类实现细节用个设计更好类替换原来类实现类升级换代
现在软件Software维护和修改成本已经占到了整个软件Software开发80%类这编成思想极大方便了维护和修改降低了软件Software成本
对象(Object) 作为初学者比较容易混淆类和对象概念类是个抽象概念对象则是类具体例子比如人是个类司马迁、李白、杜甫都是对象;首都是个类则北京、伦敦、华盛顿、莫斯科都是对象;动画猫是个类则Kitty、Grafield和Doraemon都是对象
类是抽象概念对象是真实个体我们可以说Kitty猫体重是1.5kg而不能说猫类体重是1.5kg;可以说刘翔在跨栏比赛中夺冠而不说人类在跨栏比赛中夺冠般情况下我们认为状态是描述具体对象而非描述类行为是由具体对象发出而非类发出
现实生活中到处充实着对象栋房子、辆汽车头大象只蚂蚁乃至种语言、种思路方法都可以称为对象
最新评论