温习段一:对象导言

温习段一:对象导言

(转载请注明出处 CSDN xxyyboy 有问题请留言)

A:纯面向对象的5个特征:

1.  万物皆对象。

2.  程序就是一组对象,对象之间通过消息通知做什么。

3.  每一个对象都有它自己的由其他对象构成的存储区。 (怎么理解?)

4.  每个对象都有一个类型。(如果该类型本身就是一个对象,而对象又是一个对象的抽象,这不是没完没了吗)

5.  一个特定的类型的所有对象都能接收相同的消息。(个人觉得相同的行为更合适)

B:隐藏:

   C++中使用3个明确的关键字来设定了界限:public private protected

   Public :随后的定义对所有人都可用。

   Private:除了该类型的创建者和内部成员之外,任何人都不能访问。

   Protected:继承类型可以访问。

Cis-a & is-like-a

   圆形 is-a 图形

改造后还能播放MP3的空调  is-like-a  空调

有时候需要向一个已经之类中添加新的接口,这样就扩展了之类的接口并且本身就是一个新的类型,这个新类型应然可以代替基类,但是这个代替是不完美的。这就是is-like-a

Dvirtual

   写了一堆的程序使用到了virtual了吗?如果没有,我认为没有使用到OO概念,之所以我这么认为,这是因为面向对象采用的晚捆绑思想。

1.  早捆绑early binding,编译器会对特定的函数名产生调用,而连接器讲这个调用解析为要执行的代码的绝对地址。

2.  晚捆绑 late binding,程序运行时,编译器才能确定执行代码的地址,当给对象发送消息时,在程序运行时才去确定被调用的代码。

C++编译器在真正调用的的方插入一段特殊的二进制代码,通过存放在对象自身中的信息,这段代码在运行时计算被调用函数函数体的地址。(到底是什么东西?)

E:桟,堆,静态存储区

1.  桟,内存中的一个区域,可以直接由处理器在程序执行期间存放数据,在桟中的变量成为自动变量或局部变量。

2.  静态存储区,简单的说是内存的一个存储块,在程序开始执行之前分配。

3.  动态的创建对象对应new delete

3者不同:使用12可以快速的分配和释放,但是牺牲了3个灵活性。因为3是动态管理的,所以在堆上所需要的时间比桟上时间长的多。对于一般程序,灵活性是最主要的。

F:异常处理

   异常处理保证程序的健壮性,不会因为一个非常小的错误导致程序飞掉。以及最重要的在大型项目中的日志板快。

G:对象设计

1.  对象发现

2.  对象装配

3.  系统构造

4.  系统扩充

5.  对象重用

这些可以做为我们最基本的OO设计时的一些尺干。可以发现那部分还做的不够。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值