看了关于面向对象的视频教程中,一直感觉又个地方让我感到很疑惑,就是这个static 在类中的使用 既然static 可以节省内存,也不需要进行实例化就能访问了 那为什么不全部都是static来定义呢 所以我想请问下,这个静态应该是在什么情况下才去使用才是最好的  
      问题2:还有一点我一直很困惑,在类中 既然public 能直接进行访问,很方便,那为什么还要用private 这些来定义呢,这不是让直接访问起来变的不方便了吗 
请高手解惑,什么时候需要用public 什么时候 用private 封装 ,谢谢!

解决方案 »

  1.   

    public 方法
    private属性
      

  2.   

    public 简单点就是声明公有函数,声明公有变量(属性),只要实例化或者继承就可调用 private 就是声明内部函数或者声明内部变量(属性)  ,只能内部使用别人不能访问调用 。访问调用只能类里的public调用static 静态函数,不用实例也能直接调用 比如:类名::静态函数名();
      

  3.   

    还有1个修饰符 protected 关键字是一个成员访问修饰符。受保护成员在它的类中可访问并且可由派生类访问
      

  4.   

    看来你们没明白 我问题的意思 我的意思是 就如private来说吧 既然我们让这个方法或属性变成了私有 那就不能在外部类中进行访问 那为什么不直接定义为public呢 那我在操作这些类的时候 可以在外部或内部都能访问了 那不是很方便吗 为什么要给自己限定这个权限呢 
      

  5.   

    /**
    比如:
    private $Time=180;//时间是 60 秒   public $Time=180;//时间是 60 秒  
     */class users()
    {
    public $Time=180;//时间是 60 秒   
    }
    $users=new users();
    $users->Time=200;
    echo $users->Time;//随意设置修改class users()
    {
    private $Time=180;//时间是 60 秒   
    public function __construct()
    {
    echo $this->Time;
    }}
    $users=new users();
    echo "--------"
    $users->Time=200;//无效
    echo $users->Time;
      

  6.   

    “私有”不能理解为“不方便”,这正是“面向对象”的一个基本思想:细节隐藏。定义一个 class 的时候,把不希望被外界看到的那些实现细节隐藏起来,将来别人用的时候才会更方便。
    --------
    With sufficient thrust, pigs fly just fine. However, this is not necessarily a good idea. It is
    hard to be sure where they are going to land, and it could be dangerous sitting under them as they
    fly overhead.