数据的封装性啊,难道你不觉得就算可以在外面访问private也要麻烦一些了么?对了,这就是面向对象。它的好处就是增加间接层,提高数据访问的集中和安全性。比如,你的private int m_name;我现在要是通过public setname(string name)来为其赋值的话,我现在可以在setname中过滤一下不合法的值了,但是你试试把访问权改为public,那就会麻烦很多,而且容易出错。至于构造函数,那个只能在实例化对象时被自动或显示调用,其他时候是不能手动调用的,所以不存在你说的那些问题。另外,class成员是可以直接访问private 值域的
数据封装,把数据private然后提供方法让调用,这是面向对象的一种设计。就像别人知道你口袋里有钱,别人要借的话不能让别人随便拿,必须是你给他,就是提供方法让他访问而不是直接调用变量。。
class a{ private int a; public int A
{
get {if(a>0) return a;else return 2*(-1); }
set { a = value; }
} public int b;}属性的使用,通过get 和set来实现对对应变量的取值和赋值,避免私有字段a直接被访问,还可以在get和set中添加条件。public权限直接赋值 不安全
物理结果是一样的,但是设计思想上是不一样的