面向对象的特点_面向对象程序设计几点入门级认识

95ab62d429372ce262e6c2fc5997e608.png

面向对象,这是一个相对的概念,相对于面向过程。

面相对象(Object-Oriented ),这个在台湾被翻译成的词组“面相物件”更能让人明白。OO是要把需要处理的问题的参与者(实体)用一个一个的物件(对象, object)来表示,当然,少不了给出一个一个具体物件的具体处理过程。而面向过程的处理方式就是关注处理的问题中数据的改变,无视涉及数据中的操作 者,其实呢,面相过程里有一个超级大boss——它隐式的把整个问题都看成了一个大物件(对象)。

面相对象的三个特征

封装Encapsulation,继承Inheritance,多态Polymorphism

程序要有以上三个特征才能说是面向对象,语言要能实现上面三个特征才是面向对象的语言。封装 就是要保持各个对象的独立性,让它成为对象,譬如人虽然骑着自行车,但人和自行车是分开,要分别用不同的对象来描述。虽然能在一定情况下把人和自行车看成一个物件,但是,但是,他妈的人机结合的怪物不会是常态——变态!继承 ,实际上是说的两种,一种类扩展(extend),一种是对所谓接口的实现。前者不过是方便代码的重用,不是重点,后者才是体现面相对象特点的重要特征。郁闷,我对这点还体会不深。多态 ,这个使用上和接口继承有很大关系。多态实际上是接口定义行为种类,而具体工作类去定义行为的具体实现,因为工作类可能很多不同,所以具体行为也就千差万别了,貌似面相过程不太方便做到这一点。

说起来,面向对象的语言,比如Java直接就支持上面三个特征,既然如此,用Java就能很自然写出面相对象的程序了。以前在网上看到一些牛人,居然能用C写出面向对象的程序,真牛啊,牛啊,佩服之情,如滔滔江水,又如黄河泛滥……

面向对象的设计的重点是对类的设计,而不是对对象的设计

对类的设计到当然是重点——程序运行的对象的生成模具嘛,对对象设计——还不是要去设计类?

说点别的。写Java程序(或其它面相对象的程序?)有个特点,就是要注意推迟实现,也就是具体的事情,不到最后不要去搞,比如,先定义一个空泛的接口, 再设计几个不如它空泛的抽象类,再是具体类,而对象的创建这是在程序运行的时候的事情了。这个处理问题的方式还是比较有意思的:远期规划其实最不确定,越 近越清晰。

模块设计追求的是强内聚,弱耦合

许多功能尽量在类的内部完成,不让外面干预,并且提供给外部尽量少的方法调用。这个就是要使对象世界中的各个对象强壮,独立的意思。

构造函数不能有返回类型

这个其实不过是语言上的限制罢了,我想。完成对象的构造以后,返回一个状态标志,也不是不可以嘛,我想。

获取方式:

1.在你手机的右上角有【关注】选项,或点击我的头像,点击关注!(关注我)

2.关注后,手机客户端点击我的主页面,右上角有私信,请私信发我:编程

电脑已经设置好了关键词自动回复,自动领取就好了!这几天上万个消息,真的回复不过来,所以回复的时候请注意关键词!

其实做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要这里请私信我“编程”不管你是小白还是大牛欢迎入住大家一起交流成长。小编会在里面不定期分享干货源码,包括我精心整理的一份c++零基础教程。欢迎各位感兴趣的的小伙伴。

学习思路:

48a6b632f1937373ab6b3c97eb08aa9a.png

学习资料:

e95cc1f3bacfd2ca7de87fa5fac67d2f.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值