关于在类中定义静态static 全局私有的问题

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


请高手解惑,什么时候需要用public 什么时候 用private 封装 ,谢谢!
...全文
216 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
helloyou0 2010-09-28
问题2说明你还需要看一点别的OO书, 这个教程显然不够好
看一下"封装"的概念

回复
ihefe 2010-09-27
[Quote=引用 5 楼 shine_php100 的回复:]

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




/**
比如:
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;
回复
lazysmile 2010-09-27
你需要补习一下面向对象的基本概念。
回复
shine_php100 2010-09-27
看来你们没明白 我问题的意思 我的意思是 就如private来说吧 既然我们让这个方法或属性变成了私有 那就不能在外部类中进行访问 那为什么不直接定义为public呢 那我在操作这些类的时候 可以在外部或内部都能访问了 那不是很方便吗 为什么要给自己限定这个权限呢
回复
ihefe 2010-09-27
还有1个修饰符 protected 关键字是一个成员访问修饰符。受保护成员在它的类中可访问并且可由派生类访问
回复
ihefe 2010-09-27
public 简单点就是声明公有函数,声明公有变量(属性),只要实例化或者继承就可调用

private 就是声明内部函数或者声明内部变量(属性) ,只能内部使用别人不能访问调用 。访问调用只能类里的public调用

static 静态函数,不用实例也能直接调用 比如:类名::静态函数名();
回复
tabris17 2010-09-27
你看的究竟是什么野鸡视频教程?

还是找本正经的书看吧
回复
liuahuilele 2010-09-27
public 方法
private属性
回复
fenanr 2010-09-27
这不是属性的问题吧,
是静态方法与动态方法的区别.

你设置为静态属性, 那动态方法怎么访问?
回复
maquan 2010-09-27
[Quote=引用 5 楼 shine_php100 的回复:]
看来你们没明白 我问题的意思 我的意思是 就如private来说吧 既然我们让这个方法或属性变成了私有 那就不能在外部类中进行访问 那为什么不直接定义为public呢 那我在操作这些类的时候 可以在外部或内部都能访问了 那不是很方便吗 为什么要给自己限定这个权限呢
[/Quote]
“私有”不能理解为“不方便”,这正是“面向对象”的一个基本思想:细节隐藏。

定义一个 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.

————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
回复
相关推荐
发帖
PHP
创建于2008-08-27

1.9w+

社区成员

“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
申请成为版主
帖子事件
创建了帖子
2010-09-27 10:08
社区公告
暂无公告