C# 类数据成员(字段或属性)可以是私有的、公共的或受保护的。
如果我想要一个成员方法的私有字段只使用而不暴露给外界怎么办?
我可以继续使用私有字段,而不会破坏封装或任何东西,对吗?
我不理解的是两个概念:我们可能需要向外界公开的数据与我们可能不需要这样做的数据(在类的外围)..
在谈论构建类时,这两种类型的数据是什么?
在下面的示例中,私有字段“名称”对于类是私有的,但对于/由外部世界仍然是可获取/可设置的。那么这里的抽象是“不直接公开,就像'你去-拥有它',而是添加一个间接的访问或更新机制?当我们谈论公共领域与公共属性时,这就是我们在这里谈论的封装吗?
class Employee2
{
private string name = "Harry Potter";
private double salary = 100.0;
public string GetName()
{
return name;
}
public void SetName(string title, string fullName)
{
this.name = title + fullName;
}
public double Salary
{
get { return salary; }
}
}
class PrivateTest
{
static void Main()
{
Employee2 e = new Employee2();
// The data members are inaccessible (private), so
// they can't be accessed like this:
// string n = e.name;
// double s = e.salary;
// 'name' is indirectly accessed via method:
string n = e.GetName();
// 'salary' is indirectly accessed via property
double s = e.Salary;
}
}