要给“别人”使用的变量和函数就用public
只给自己使用的变量和函数就用private
protected。。。这个只能说概念了。。。就是想要允许他的子类直接访问,就用protected。
其实,你只需要记住,在设计过程中,先把所有的设置为private。然后再来慢慢分析是否需要修改为另外两种。例如你写一个类用来在屏幕上画一个矩形,那肯定要有一个draw函数是public的,要不然别人或者类之外的代码没法用你这个类来画图,对吧?但是呢,你的draw函数,为了多方面的原因,并不是在draw里面把所有图形都画完了,你可能想要写一个画边框draw_frame和一个填充这个框架的函数叫做fill。然后draw函数就掉用这两个函数来实现画图的功能。那么假设你又想设计一个类专门画一种特殊边框的矩形,那你是不是就要派生一个类出来呢?于是,这个派生的类里面,你想要调用原来那个父类的fill函数来填充,对吧?因为你这个派生类只是边框的画法不同,填充方法还是相同的,没必要重新写一下fill的代码噻,所以你就把fill改为protected,这样子类也可以直接调用了。
简单的说,就是先把所有的设计为private,然后程序报错了,说不能访问,那么你就把他改成protected(如果提示不能访问的地方是在派生类里面)或者public(如果提示不能访问的地方是在类的外面)
多试几次,你就知道,其实概念真的已经把他们的区别说完整了。 |