《C#本质论》读书笔记(十一)面向对象编程之封装 @ Lennon

说一下面向对象编程三大特性之封装

封装概念?

封装是面向对象编程的三大特性之一,封装是实现面向对象程序设计的第一步,封装就是将数据或函数等集合在一个个的单元中(我们称之为类)。被封装的对象通常被称为抽象数据类型。

面向对象思想有个忌讳,那就是把对象自己的属性和内部实现细节暴露给别的对象,虽是代码但也应该享有隐私权。把不想或者不该告诉别人的东西封起来,把可以告诉别人的公开,这就是封装的基本概念。

封装意义?

封装的意义在于保护或者防止代码(数据)被我们无意中破坏。在面向对象程序设计中数据被看作是一个中心的原素并且和使用它的函数结合的很密切,从而保护它不被其它的函数意外的修改。
封装提供了一个有效的途径来保护数据不被意外的破坏。相比我们将数据(用域来实现)在程序中定义为公用的(public)我们将它们(fields)定义为私有的(privat)在很多方面会更好。私有的数据可以用两种方式来间接的控制。下面我们看一些c#例子来学习这两种方法用以封装数据。第一种方法,我们使用传统的存、取方法。第二种方法我们用属性(property)。无论我们使用哪种的方法,我们的目标是在使用数据的同时不能使它受到任何的破坏和改变。

封装的另一个重要意义是将对象的数据和行为的内部细节隐藏起来。在某种程度上,我们可以这样认为:在一个方法的外部,调用者所能看到的只有方法声明。方法内部实现是不可见的。面向对象编程在此基础上更进一步,允许对类的成员在类外部的可视程度进行控制。那些在类的外部不可见的成员称为私有成员。

封装的优点?

1.好的封装能减少耦合.
2.类的内部的实现可以自由改变.
3.一个类有更清楚的接口.

4.便于程序集的窗体间的传值.

访问修饰符?

访问修饰符的用途是提供封装。

以下是C#4种访问修饰符:

public:表明所有对象都可以访问;
protected internal:表明同一个程序集内的对象,或者该类对象以及其子类可以访问;
internal:表明只有同一个程序集的对象可以访问;
protected:表明只有该类对象及其子类对象可以访问;(关于继承,会在以后介绍)
private:表明只有对象本身在对象内部可以访问;

 

用属性来实现封装

 
    
private string treatedFile;

public string TreatedFile
{
get { return treatedFile; }
set { treatedFile = value; }
}

添加属性的get、set方法。

通过上面的例子,我们可以看到如何通过属性来实现封装。属性具有两种操作get和set。Get用来返回属性域的值。Set通过value这个变量来给属性域赋值。属性可以设为只读的(read-only)。这只需属性只具有一个set操作。

只读属性

 

 
    
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;

namespace CMagicEyes
{
public class Gloable
{

private string sourceProsFile;
public string SourceProsFile
{
get { return iey; }
}
}
}

 

 

 

 

转载于:https://www.cnblogs.com/aipeiyi/archive/2010/08/02/1790491.html

你可能感兴趣的:(c#)