Ani*_*ani 6 .net oop encapsulation design-patterns hidden-field
搜索提出了一个简单的定义:数据隐藏.
但是,请考虑以下两个示例:
1)第一个例子:
Class Employee
{
public int age;
}
Run Code Online (Sandbox Code Playgroud)
2)第二个例子:
Class Employee
{
private int age;
public int getAge(){return age;}
}
Run Code Online (Sandbox Code Playgroud)
问题:
在上述两个示例中,没有数据隐藏,age要么被其他人修改,要么被其他人查看.数据隐藏在哪里?封装如何帮助上面的例子?
Fre*_*örk 25
还有就是数据隐藏.第二示例隐藏如何的值被存储.此外,第二个示例使该值对于类外的代码是只读的.通过拥有私有字段并通过方法或属性公开它们,您可以立即获得一些优势,其中一些优点是:
请注意,封装不仅仅是有访问控制.封装的主要用途是隐藏调用代码的实现细节.当调用代码想要检索的值,它不应该依赖于从那里的价值来.在内部,类可以将值存储在字段中,或者从某些外部资源(例如文件或数据库)中检索它.也许该值根本不存储,而是即时计算.这与调用代码无关.
当您通过方法或属性公开值时,您可以屏蔽调用此类详细信息的代码,这也使您可以更改实现,而不会影响调用代码.