说到封装,其实是比较基础类的问题,它为程序设计提供了系统与系统,模块与模块,类与类之间交互的实现手段。在.Net中,一切看起来都已经被包装在.Net FrameWork这一复杂的网络中,提供给最终开发人员的是成千上万的类型,方法和接口,而Framework内部一切已经做好了封装。

作为一个初级GIS程序员,关于封装那些宏观的概念暂且不提,编程经常面对的就是“字段,属性,方法”,这也是面向对象的基本概念之一。

1.字段

通常定义为private,表示类的状态信息。CLR支持只读和读写字段。只读字段只能在构造函数中被赋值,其他方法不能改变只读字段。常见的字段定义:

private string name;

private int age;

2.属性

通常定义为public,表示类的对外成员。属性具有可读,可写,通过get和set访问器来实现其读写控制。如果属性为只读,则只实现get访问器即可;如果属性为可写,则实现set访问器即可。另外还有一种含参属性,在c#中称为索引器。索引器允许您按照与数组相同的方式对类、结构或接口进行索引。上边的字段我们就可以封装为属性。

private string name;
public string Name
{
get{return name;}
set
{
name=value==null?String.Empty:value;//name??String.Empty(左侧为null,则返回右侧操作数值,不为null则返回左侧操作数值)}
}

其实这在VS2010里直接都是智能化的,选中字段→选择重构→封装字段,这样就OK了。

3.方法

方法封装了类的行为,提供了类的对外表现。用于将封装的内部细节以公有方法提供对外接口,对外交互的方法通常实现为public。但是在类内部的操作基本上以private方式来实现,保证了对内部数据的隐藏与保护。在VS2010里也可以选中代码段→选择重构→提取方法。

c#基础汇总-------------封装的更多相关文章

  1. shell脚本语法基础汇总

    shell脚本语法基础汇总 将命令的输出读入一个变量中,可以将它放入双引号中,即可保留空格和换行符(\n) out=$(cat text.txt) 输出1 2 3 out="$(cat te ...

  2. linux编程基础汇总贴

    linux编程基础汇总贴http://newzol.cn/forum.php?mod=viewthread&tid=67&fromuid=3(出处: newzol) 1.管道 http ...

  3. 二十四. Python基础(24)--封装

    二十四. Python基础(24)--封装 ● 知识结构   ● 类属性和__slots__属性 class Student(object):     grade = 3 # 也可以写在__slots ...

  4. Java第三次作业——面向对象基础(封装)

    Java第三次作业--面向对象基础(封装) (一)学习总结 1.什么是面向对象的封装性,Java中是如何实现封装性的?试举例说明. 封装性 封装性是面向对象的方法所应遵循的一个重要原则,它有两个含义: ...

  5. JavaSE基础之封装

    JavaSE基础之封装 一.Java中的封装 1.字面意思: 包装: 2.专业含义: 面向对象的三大特征之一: 指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所 ...

  6. Selenium基于Python web自动化基础一 -- 基础汇总及简单操作

    Selenium是UI层WEB端的自动化测试框架,也是目前市面上比较流行的自动化测试框架. ui层自动化测试本质是什么?模拟用户的真实操作行为. 基础汇总: 导入所需要的模块 from seleniu ...

  7. Redis--狂神说Redis基础汇总(完结)

    Redis--狂神说Redis基础汇总(完结) 2021.6.12-2021.6.14:端午学学玩玩弄完了Redis基础的汇总,越学越觉得自己知识量的匮乏. 参考链接:狂神说Java--Redis汇总 ...

  8. 利用Python进行数据分析(9) pandas基础: 汇总统计和计算

    pandas 对象拥有一些常用的数学和统计方法.   例如,sum() 方法,进行列小计:   sum() 方法传入 axis=1 指定为横向汇总,即行小计:   idxmax() 获取最大值对应的索 ...

  9. 九、Java基础---------面向对象封装、继承、多态

    封装 1.1 基本概念  封装(encapsulation)是面向对象三大特征之一,它是指将对象的状态信心隐藏在对象的内部,不允许外部直接进行访问,而是通过该类提供的方法来实现对内部信息的操作和访问. ...

随机推荐

  1. codeforces Gym 100500H A. Potion of Immortality 简单DP

    Problem H. ICPC QuestTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100500/a ...

  2. URAL 1784 K - Rounders 找规律

    K - RoundersTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view. ...

  3. HashMap解决hash冲突的方法

    HashMap 采用一种所谓的“Hash 算法”来决定每个元素的存储位置.当程序执行 map.put(String,Obect)方法 时,系统将调用String的 hashCode() 方法得到其 h ...

  4. HttpClient post json

    public static JSONObject post(String url,JSONObject json){ HttpClient client = new DefaultHttpClient ...

  5. 调用AutoCAD的内置对话框

    如何将CAD的内置对话框(如style命令所用的文字样式对话框)作为当前对话框的子对话框调出? 常用的几个对话框对应的函数为:1.尺寸标注样式编辑对话框:int acedEditDimstyleInt ...

  6. 小米2s使用Hexamob Recovery PRO恢复数据

    这东西对于手机来说, 真是神器啊 现在很多手机都是以MTP连接到电脑的, 所以在PC上是看不到盘符, 也就无法使用finaldata 之类的工具恢复了. 而像小米2S这样的手机, 无法外接SD卡, 则 ...

  7. Google Code Jam 2009, Round 1C C. Bribe the Prisoners (记忆化dp)

    Problem In a kingdom there are prison cells (numbered 1 to P) built to form a straight line segment. ...

  8. Magical Forest

    Problem Description There is a forest can be seen as N * M grid. In this forest, there is some magic ...

  9. JavaFX(四)窗口大小自由拉伸

    1.问题场景 同样的,隐藏掉窗体的默认标题栏也会导致窗体大小自由拉伸功能的失效. 2.解决思路 判断鼠标在窗体的位置,改变鼠标样式,给窗体组件添加拖拽事件监听器,根据鼠标移动位置改变窗体大小. 3.代 ...

  10. Linux 同步时间

    Linux里有2个时间: 硬件时间 系统时间 这2个时间不是同步的!如果有一天发现系统的时间不对了,可以分别看看这2个时间.硬件时间写在BIOS里,系统时间就是电脑显示的时间了. sudo hwclo ...