对类的成员变量使用private权限,在通过构造方法对他进行赋值和直接给他public权限直接赋值有什么区别?

成员变量还不是通过成员方法被知道了?
2025-03-13 17:46:17
推荐回答(4个)
回答1:

数据的封装性啊,难道你不觉得就算可以在外面访问private也要麻烦一些了么?对了,这就是面向对象。它的好处就是增加间接层,提高数据访问的集中和安全性。比如,你的private int m_name;我现在要是通过public setname(string name)来为其赋值的话,我现在可以在setname中过滤一下不合法的值了,但是你试试把访问权改为public,那就会麻烦很多,而且容易出错。至于构造函数,那个只能在实例化对象时被自动或显示调用,其他时候是不能手动调用的,所以不存在你说的那些问题。另外,class成员是可以直接访问private 值域的

回答2:

数据封装,把数据private然后提供方法让调用,这是面向对象的一种设计。就像别人知道你口袋里有钱,别人要借的话不能让别人随便拿,必须是你给他,就是提供方法让他访问而不是直接调用变量。。

回答3:

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权限直接赋值 不安全

回答4:

物理结果是一样的,但是设计思想上是不一样的