对于面向对象

  修饰符的使用是我们最常用,也是很容易忽略的小细节。

  对于编程来说,把握好每一个小细节,就能构造出漂亮,优雅的程序。

public

  使用最多的修饰符,公共方法,允许所有访问,就像一个公交车一样,上来交钱[参数],有钱就行,无所谓是谁。

  对于这个修饰符救不在做更多的解释了,因为他的使用实在是太多了。

  PS:如果一个方法没有定义修饰符,那么在PHP5中,默认是public。

private

  私有方法, 不允许在直接实例化后访问,子类也不能直接访问,只允许在自己的类中使用。

  

   道理我都懂,我就想问一下,我什么时候应该用这个修饰符?都用Public不好么?反正其他人也能看到

    1:什么时候该用这个修饰符,这里我找到了一个比较好理解的比喻,我挺喜欢这种比喻方法的。

      拿一个工厂举例子,你作为一工厂老板,你的专利技术,自然不想被别人看到,以免被伪造的可能。所以你用private修饰。保护自己。然后就是public,一些无关紧要,或者可以让别人仿造或者大众化的技术或产品,其它人都可以从你这里得到。

      总的来说,就是不希望暴露在外的方法都使用私有或者受保护的方法来执行。这也就诠释了面向对象中的封装。

    2:都用Public不好么?反正其他人也能看到

      这里也找到了一个回答,规范还是很重要的。

      如果自己开发个系统自己玩,那没啥问题。但是,如果想提高技术,那么必然涉及到团队协作,或者你的系统开源给其他人使用。

      再比如,你自己开发的系统,过几个月后,你其实也也记不得当初写的啥,当你要修改代码的时候,你还需要去小心的查看这个方法能不能先调用,当设置了权限过后,我就知道,这个肯定是内部调用的,外部就不要调了。

      还有个,如果一个类是实现一个很复杂的功能,那那个方法可能有几十个,一眼看下去,晃眼,很难分清楚他们权限。

    3:上述部分回答摘自

      https://segmentfault.com/q/1010000008329419

protected

  受保护方法, 不允许在直接实例化后访问,子类可以访问,可以在类中使用。

    它的使用挺像private,不同的是他可以继承.

    还是拿工厂举例子,你的专利之前是设置成了private,但是随着你的厂子慢慢变大,有了分厂,你的专利不给分厂用?不可能吧。所以protected就是解决这个问题的。

  

  对于这三种使用,在之后的学习中,如果感觉到有新东西,随时补充。

最新文章

  1. iOS打包测试
  2. Autofac - 装配
  3. IOS开发基础知识--碎片28
  4. ES5基础之正则表达式01:初次见面
  5. Microsoft SQL Server Compact 4.0&&ADO.NET Entity Framework 4.1&&MVC3
  6. HTTP协议中PUT和POST使用区别 【转载】
  7. C++中的new/delete与operator new/operator delete
  8. mysql在关闭时的几个阶段
  9. boost 分析命令行参数
  10. Linux/Unix
  11. Caffe Ubuntu14.04 64位 的最快安装 (cuda7.5 + cudnn7.0 2016最新)
  12. JavaScript基础4——关于语句流程控制(分支语句、循环语句等)
  13. js 动态生成背景图 GeoPattern
  14. dwr去除默认错误弹窗
  15. 【ABP杂烩】面向切面编程(AOP)知识总结
  16. 【XSY1301】原题的价值 第二类斯特林数 NTT
  17. 使用JDBC连接数据库报“找不到驱动程序”错误解决
  18. jdk 10.0.2 bug修复
  19. Docker详解
  20. Linux定时任务Crontab命令详解_转

热门文章

  1. 【GIS】ArcGIS Server密码
  2. 启用sharepoin2013中的ChartWebPart
  3. 重命名和重定向RF执行生成的output文件
  4. linux共享内存的查看与删除
  5. Objective-c官方文档 怎么自定义类
  6. WP8.1学习系列(第一章)——添加应用栏
  7. 【truffle】Error: `truffle init` no longer accepts a project template name as an argument.
  8. Python基础---->python的使用(二)
  9. 【转】C/C++函数调用过程分析
  10. ubuntu14.04 LTS Python IDE专用编辑器PyCharm开发环境搭建