如何理解封装???讨论!

时间:2021-10-13 21:58:40
c++语法还是比较容易学,但是最难的它的编程思想,封装一个对象,比如一本书,书的那些属性要抽象出来,要提供些什么样的接口,我觉得这个是一个很难把握的问题。请大家发表看法。

26 个解决方案

#1


封装就是关起门来一家亲
再加上几个远房亲戚,如八婶、六姑、三叔、九姨之类的

#2


哪些属性要抽象出来要看你程序的需要了。比如写一个图书馆程序,关心的可能是书的书名、作者、出版时间等。如果要写一个废品管理软件的话,那关心的可能是书的重量了。例子可能不太适合,说明问题就行:)

#3


要封装到什么程度,是一个很难把握的难题。

#4


设定访问的对象,不是谁都可以访问的,或引用的,这样看起来就是一种与外界的隔绝,但也正是因为这样才能保证安全的访问。

#5


尽量地让调用变得简单。比如写了一个弹出菜单,最好只留一个static函数给别的函数调用。其它的都封起来,不让外部函数参与。

#6


根据不同的需求,设置不同的封装对象,及可访问,引用的成员,接口....


多做实际代码,慢慢理解

#7


把一切不需要外界知道的东西都藏起来

#8


不懂帮你UP

#9


就像一个人想作什么动作,其过程是由思维(方法)与行动(实现)组成的,他们都被封装到人的肉体(类)里!

#10


封装就是你只有说汉语中国人才能明白如果你不说话谁会明白呢  
说话就是一种行为  语言就是成员变量只有本人可以说出自已想说的话别人要想和你交流只能通过你的说话行为 进行交流

#11


有一条规则,叫最小完美接口法,在Effective C++有相关论述

#12


UP

#13


就好象剃须刀一定要加一个罩子才能用一样,否则倒霉的客户会刮开脖子的。

#14


封装就是隐藏内部细节,只让用户知道他需要知道的

#15


叫的名字抽象了一点,不久就会明白的!

#16


我想就好象人,皮肤把你所有的重要的器官,细胞封了起来,留下了两手,两脚
一嘴,两眼,两耳,两鼻孔。用这些东西实现你做人的功能把。

#17


封装是一种方式,函数是行为。

#18


抽象就是共性,接口就是标准,封装就是独享。

#19


把不想让外界知道的东西统统都封起来,只留一些接口给外界,这就是封装.
比如:一个人不想让别人知道他洗澡的过程,他把卫生间的门关起来洗(封装洗澡函数).洗完出来(返回),洗澡结果:全身干净.对于外界并不知道他是怎么洗澡的(即函数的实现细节),但从他出来后的结果就知道他洗完澡了.例子可能差了一点,意思是这样.
多实践一下就知道了.

#20


封装只留给外界它的接口,让用户知道如何调用,会得到什么样的结果,
而具体是如何实现的就隐藏起来.
顺便多说一句,要注意使自己的接口完满且最小化.哪个用户都不
希望他使用的类有上百个接口,而且这些借口中有很多不是用户所需要的,
那么通过PRIVATE隐藏它们,供类中的其他函数调用即可.而在PUBLIC中只
提供给用户必须的借口.

#21


打个比方:
你有些事情可以让人知道,有些事情不想让人知道,
所以你就把不想让人知道的事情不告诉别人,可以让别人知道的事情告诉别人

这就是封装了,

#22


封装就好比把你放在一个你逃不出去的屋子
你可以使用屋子里的任何东西,但是外面的人不可以
而正好你有手机(相当于接口), 可以和外部的人进行通讯
外面的人给你发命令(即消息),要你坐下 ,你就坐下 
要不然就不给你食物

哈哈, 好象是这样解释的

#23


好多人都在打这种莫名其妙的比喻,什么图书馆、什么思想和肉体、什么语言、什么剃须刀、什么洗澡、什么“逃不出去的屋子”……比喻只有使说明愈加混乱。本来挺明白的事情,让这帮半懂不懂的同学一阵比喻,也变得不明白了。

可以看看C++ View第二期和第三期的《设计笔记》——开放-封闭原则和Liskov替换原则。这两篇文章基本上说明了封装和继承的原则。

#24


有些东西是没有必要让第三者知道的,
我们只需让人们知道我们长啥样(吃饭,打字。。。),
没有必要让他们知道我们是如何想的

封装。。。

哈哈哈哈哈哈

胡扯。。

#25


up

#26


我觉得说了那么多理论上的东西,还不如给个实际的代码看看。

#1


封装就是关起门来一家亲
再加上几个远房亲戚,如八婶、六姑、三叔、九姨之类的

#2


哪些属性要抽象出来要看你程序的需要了。比如写一个图书馆程序,关心的可能是书的书名、作者、出版时间等。如果要写一个废品管理软件的话,那关心的可能是书的重量了。例子可能不太适合,说明问题就行:)

#3


要封装到什么程度,是一个很难把握的难题。

#4


设定访问的对象,不是谁都可以访问的,或引用的,这样看起来就是一种与外界的隔绝,但也正是因为这样才能保证安全的访问。

#5


尽量地让调用变得简单。比如写了一个弹出菜单,最好只留一个static函数给别的函数调用。其它的都封起来,不让外部函数参与。

#6


根据不同的需求,设置不同的封装对象,及可访问,引用的成员,接口....


多做实际代码,慢慢理解

#7


把一切不需要外界知道的东西都藏起来

#8


不懂帮你UP

#9


就像一个人想作什么动作,其过程是由思维(方法)与行动(实现)组成的,他们都被封装到人的肉体(类)里!

#10


封装就是你只有说汉语中国人才能明白如果你不说话谁会明白呢  
说话就是一种行为  语言就是成员变量只有本人可以说出自已想说的话别人要想和你交流只能通过你的说话行为 进行交流

#11


有一条规则,叫最小完美接口法,在Effective C++有相关论述

#12


UP

#13


就好象剃须刀一定要加一个罩子才能用一样,否则倒霉的客户会刮开脖子的。

#14


封装就是隐藏内部细节,只让用户知道他需要知道的

#15


叫的名字抽象了一点,不久就会明白的!

#16


我想就好象人,皮肤把你所有的重要的器官,细胞封了起来,留下了两手,两脚
一嘴,两眼,两耳,两鼻孔。用这些东西实现你做人的功能把。

#17


封装是一种方式,函数是行为。

#18


抽象就是共性,接口就是标准,封装就是独享。

#19


把不想让外界知道的东西统统都封起来,只留一些接口给外界,这就是封装.
比如:一个人不想让别人知道他洗澡的过程,他把卫生间的门关起来洗(封装洗澡函数).洗完出来(返回),洗澡结果:全身干净.对于外界并不知道他是怎么洗澡的(即函数的实现细节),但从他出来后的结果就知道他洗完澡了.例子可能差了一点,意思是这样.
多实践一下就知道了.

#20


封装只留给外界它的接口,让用户知道如何调用,会得到什么样的结果,
而具体是如何实现的就隐藏起来.
顺便多说一句,要注意使自己的接口完满且最小化.哪个用户都不
希望他使用的类有上百个接口,而且这些借口中有很多不是用户所需要的,
那么通过PRIVATE隐藏它们,供类中的其他函数调用即可.而在PUBLIC中只
提供给用户必须的借口.

#21


打个比方:
你有些事情可以让人知道,有些事情不想让人知道,
所以你就把不想让人知道的事情不告诉别人,可以让别人知道的事情告诉别人

这就是封装了,

#22


封装就好比把你放在一个你逃不出去的屋子
你可以使用屋子里的任何东西,但是外面的人不可以
而正好你有手机(相当于接口), 可以和外部的人进行通讯
外面的人给你发命令(即消息),要你坐下 ,你就坐下 
要不然就不给你食物

哈哈, 好象是这样解释的

#23


好多人都在打这种莫名其妙的比喻,什么图书馆、什么思想和肉体、什么语言、什么剃须刀、什么洗澡、什么“逃不出去的屋子”……比喻只有使说明愈加混乱。本来挺明白的事情,让这帮半懂不懂的同学一阵比喻,也变得不明白了。

可以看看C++ View第二期和第三期的《设计笔记》——开放-封闭原则和Liskov替换原则。这两篇文章基本上说明了封装和继承的原则。

#24


有些东西是没有必要让第三者知道的,
我们只需让人们知道我们长啥样(吃饭,打字。。。),
没有必要让他们知道我们是如何想的

封装。。。

哈哈哈哈哈哈

胡扯。。

#25


up

#26


我觉得说了那么多理论上的东西,还不如给个实际的代码看看。