你必须知道的.NET读书笔记分享——(1).NET框架及面向对象基础

.NET框架

  规范——公共语言架构(CLI,Common Language Infrastructure),主要包括通用类型系统(CTS,Common Type System),公共语言规范(CLS,Common Language Specification),通用中间语言(CIL,Common Intermediate Language)。

  规范的实现——公共语言运行时(CLR,Common Language Runtime)和 .NET框架类库(FCL,Framework Class Library)。

  

1、封装的深入理解

  · 字段通常定义为private,属性通常定义为public,而方法在内部实现的定义为private,而对外部操作的则定义为public,从而保证对内部数据的可靠性读写控制,保护了数据的安全和可靠,同时又提供了与外部接口的有效交互;

  · 封装属性提供了数据持久化的有效手段,因为对象的属性和对象一样在内存期间是常驻的,只要对象不被垃圾回收,其属性值也将一直存在,并且记录最近一次对其更改的数据;

  · 封装隐藏了系统实现的细节,保证系统的安全性和可靠性,保证了代码的模块化,提高了软件的复用和功能的分离。

2、通过公共属性的访问来实现对类状态信息的读写控制的好处

  (1)避免了对数据安全的访问限制,包含内部数据的可靠性;

  如:

1 public int Password
2 {
3 get { return this.password; }
4 set
5 {
6 if (value.Length >= 6) //保证数据的有效性
7   {
8 this.password= value;
9 }
10 }
11 }

  (2)避免了类扩展或者修改带来的变量连锁反应。

1 private string firstName;
2  private string lastName;
3
4  public string Name
5 {
6 get { return firstName + lastName; }
7 }

  加入以前Name属性针对的是中国人的名字,但现在要适合英文名,则只需更改属性内部的实现细节即可,而xx.Name依然可用,这样就适应了新的需求。

 

3、继承的深入理解

  · 继承是可传递的,子类是对父类的扩展,必须继承父类方法,同时可以添加新方法;

  · 子类可以调用父类方法和字段,而父类不能调用子类方法和字段;

  · 子类不光继承父类的共有成员,同时继承了父类的私有成员,只是在子类中不能访问;

  · new关键字在虚方法继承中起阻断作用。


  关注对象原则:调用子类还是父类的方法,取决于创建的对象是子类对象还是父类对象,而不是它的引用类型,如Chicken类继承Bird类,若有语句Bird bird = new Chicken(),我们关注的是创建对象为Chicken类型,而不是引用类型为Bird。

  执行就近原则:父类先于子类编译。如Bird bird = new Chicken(),则编译器会首先编译Bird,而不是Chicken。

4、继承可能带来的问题
  · 继承可能造成子类的无限膨胀,不利于类体系的维护和安全;

  · 继承的子类对象确定于编译期,无法满足需要运行期才确定的情况,而类聚合很好地解决了这个问题;

  · 随着继承层次的复杂化和子类的多样化,不可避免地会出现对父类的无效继承或者有害继承,子类部分的继承父类的方法或者属性,更能适应实际的设计需求;

  继承中关注更多的是共性而不是特性,共性是层次复用的基础,而特性是系统扩展的基点。

  .NET中的继承分为实现继承和接口继承。实现继承为单继承,派生类继承了基类的所有属性和方法,而接口继承为多继承,派生类继承了接口的方法签名。

 

5、多态的规则和意义

  · 多态提供了对同一类对象的差异化处理方式,实现了对变化和共性的有效封装和继承,实现了“一个接口,多个方法”的思想,使方法抽象机制成为可能;

  · 继承和重载是多态的基础。

6、以公司的体制解析访问修饰符

  public:董事会,具有最高管理权,面向对象中体现为不管是否处于同一个程序集或不管是否继承,都可以访问;
  protected:部门经理,具有对本部门的直接管辖权,面向对象中体现为子类继承纵向关系的访问约定;
  internal:类似于公司的职能部门的职责,不管是否具有上下级关系,人力资源部都有管辖其他部门员工的能力。这是一种横向的职责关系。面向对象中体现为同一程序集的访问权限,只要是隶属于同一程序集,对象即可访问其属性等,不管是否存在隶属关系;
  protected internal:副总,从纵向到横向兼有职权;

  private:公司的一般员工,管好自己就ok了。

作者:Rocky翔
出处:http://www.cnblogs.com/RockyMyx/
本文版权归作者和博客园共有,欢迎转载,但请在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2010-10-18 12:28  RockyXiang  阅读(379)  评论(0编辑  收藏  举报