zoukankan      html  css  js  c++  java
  • 封装

    命名空间/程序集:

    命名空间是用来组织和重用代码的编译单元。如同名字一样的意思,NameSpace(名字空间),之所以出来这样一个东西,是因为人类可用的单词数太少,并且不同的人写的程序不可能所有的变量都没有重名现象,对于库来说,这个问题尤其严重,如果两个人写的库文件中出现同名的变量或函数(不可避免),使用起来就有问题了,为了解决这个问题,引入了名字空间这个概念,通过使用 namespace xxx;你所使用的库函数或变量就是在该名字空间中定义的,这样一来就不会引起不必要的冲突了。

    所谓namespace,是指标识符的各种可见范围。

    程序集是 .NET Framework 编程的基本组成部分。程序集执行以下功能: 包含公共语言运行库执行的代码。如果可移植可执行 (PE) 文件没有相关联的程序清单,则将不执行该文件中的 Microsoft 中间语言 (MSIL) 代码。请注意,每个程序集只能有一个入口点(即 Dllmain、WinMain 或 Main)。

    程序集形成安全边界。程序集就是在其中请求和授予权限的单元。有关应用于程序集的安全边界的更多信息,请参见程序集安全注意事项。 程序集形成类型边界。每一类型的标识均包括该类型所驻留的程序集的名称。在一个程序集范围内加载的 MyType 类型不同于在其他程序集范围内加载的 MyType 类型。 程序集形成引用范围边界。程序集的清单包含用于解析类型和满足资源请求的程序集元数据。它指定在该程序集之外公开的类型和资源。该清单还枚举它所依赖的其他程序集。 程序集形成版本边界。程序集是公共语言运行库中最小的可版本化单元,同一程序集中的所有类型和资源均会被版本化为一个单元。程序集的清单描述您为任何依赖项程序集所指定的版本依赖性。

     程序集形成部署单元。当一个应用程序启动时,只有该应用程序最初调用的程序集必须存在。其他程序集(例如本地化资源和包含实用工具类的程序集)可以按需检索。这就使应用程序在第一次下载时保持精简。有关部署程序集的更多信息,请参见部署应用程序。 程序集是支持并行执行的单元。

    程序集可以是静态的或动态的。静态程序集可以包括 .NET Framework 类型(接口和类),以及该程序集的资源(位图、JPEG 文件、资源文件等)。静态程序集存储在磁盘上的可移植可执行 (PE) 文件中。您还可以使用 .NET Framework 来创建动态程序集,动态程序集直接从内存运行并且在执行前不存储到磁盘上。您可以在执行动态程序集后将它们保存在磁盘上。 有几种创建程序集的方法。您可以使用过去用来创建 .dll 或 .exe 文件的开发工具。您可以使用在 .NET Framework SDK 中提供的工具来创建带有在其他开发环境中创建的模块的程序集。您还可以使用公共语言运行库 API(例如 Reflection.Emit)来创建动态程序集

    访问修饰符:

    封装 被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中"。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。

    抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使开发者实现所需级别的抽象

    C# 封装根据具体的需要,设置使用者的访问权限,并通过 访问修饰符 来实现。

    一个 访问修饰符 定义了一个类成员的范围和可见性。

    访问修饰符

    • Public:公共的            所有对象都可以访问;
    • Private: 私有的              对象本身在对象内部可以访问;
    • Protected:受保护的             只有该类对象及其子类对象可以访问
    • Internal:默认的             同一个程序集的对象可以访问;
    • Protected internal:一个程序集内的对象,或者该类对象及其子类可以访问;


    成员变量:

    class student

    { private 类型  名字

    属性:

    public 类型  名字

    {

    get { return 名字; }

    set {名字 = value; }

    }


    成员方法:

    public string HandStr
    {
    get
    {

    string s = "石头";
    if (_Hand == 1)
    {
    s = "剪刀";
    }
    else if (_Hand == 2)
    {
    s = "包袱";

    }
    return s;

    构造函数:

    class Counter
    {

    public:
             类Counter的构造函数
             特点:以类名作为函数名,无返回类型
             Counter()
             {
                    m_value = 0;
             }
             
    private:
                   // 数据成员
             int m_value;
    }

    实例化就是执行构造函数的一个过程。

    构造函数作用是初始化对象。

    总结:

    1、属性名和变量名不能相同,

    2、一般变量都是private,属性都是public的,属性用于给类外调用,变量限于类内使用,感觉封装性体现得要好些

    3、属性必须和一个变量相联系。

  • 相关阅读:
    securefile allocation chunks
    脚本:Segment Space Usage Explorer
    Script:10g中不用EM显示Active Session Count by Wait Class
    理解IMPDP ORA19505、ORA31640错误
    了解ocssd.bin如何控制RAC节点重启
    Oracle等待事件:NULL EVENT
    LGWR TRACE Warning: log write time
    MySql隔离级别多线程并发读取数据时的正确性
    Oracle事务处理—隔离级别
    Oracle函数详解
  • 原文地址:https://www.cnblogs.com/wcl2017/p/7096876.html
Copyright © 2011-2022 走看看