在封装中,我们使用公共方法访问私有字段。在属性中,我们可以使用(set,get)访问私有字段。属性和封装之间有什么关系?还有什么区别?
我认为我们在封装中以某种方式使用了属性的功能,但是它们之间有什么区别以及它们之间的关系是什么?对我来说似乎有点模糊
封装是面向对象编程中的一个基本概念,涉及在类中捆绑数据和方法、隐藏数据(使其私有)以及通过方法控制对其的访问。
C# 中的Properties 是封装的具体实现,允许您公开具有受控访问的字段。他们使用
get
和 set
方法来读取和写入数据。
这是 C# 中的一个简短示例:
public class Person
{
private string name; // Encapsulated field
public string Name // Property
{
get { return name; } // Getter
set { name = value; } // Setter
}
}
class Program
{
static void Main()
{
Person person = new Person();
person.Name = "John"; // Set using property
string name = person.Name; // Get using property
}
}
在此示例中,
Name
是封装了name
字段的属性。它通过提供用于获取和设置值的自定义逻辑来控制对 name
字段的访问。