码迷,mamicode.com
首页 > Windows程序 > 详细

17. C# -- 对象,类,接口,继承,多态

时间:2015-05-15 15:55:54      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:c#

UML (unified modeling language),统一建模语言来研究类和对象

对象:类名

myPrinter:Printer

+Instant:bool  可访问性:成员名:成员的类型

对象:OPP应用程序的组成部件。包括数据和操作,类的是实例

对象的属性/字段数据通过属性供外面代码使用  <string>.Length

对象的方法操作可以通过方法来供外面代码使用  <string>.ToUpper()

 :实例化对象的类型定义

类成员包括:属性和方法

对象的生存周期

构造阶段:对象最初进行实例化的时期,由构造函数完成。通过new 关键字调用构造函数

cupofCoffee myCup = new cupofCoffee(); //默认的构造函数来创建对象

cupofCoffee myCup = new cupofCoffee(“blue mountain”); //非默认的构造函数来创建对象

运行阶段:正在使用的状态下。

析构阶段:在删除一个对象时候,要做的清理工作,如释放内存。由析构函数完成。

一般不需要提供析构函数代码,由默认的析构函数自动自行操作。

但如果变量超出范围,代码不能访问它,该变量仍在计算机内存的某个地方,只有在.net 运行程序执行其垃圾回收,进行清理,该实例才被彻底删除。

静态类成员和实例类成员,不需要实例化

静态方法:Console.writeline();

静态构造函数:执行此类的初始化任务,一个类只能有一个静态构造函数,不能有任何修饰符,也不能带任何参数。不能直接调用,只能调用一次。

静态类:不能实例化对象,可以有一个静态构造函数。

非静态函数:即实例构造函数

对象的其他一些特性

接口:把公共实例(非静态)方法和属性组合起来,以封装特定功能的一个集合。

可以在类中实现它,类可以支持接口所指定的所有属性和成员。

  1. 接口不能单独存在,不能实例化一个接口。

  2. 接口中不能包含实现其成员的任何代码,而只能定义成员本身

  3. 实现过程必须在实现接口的类中完成。

  4. 一个类可以支持多个接口,多个类也可以支持相同的接口。

  5. 可把通用的属性和方法addsugar(),Milk,sugarinstant 组合到一个接口中。此接口为IHotDrink

  6. 发布接口后,它可用于其他开发人员或终端用户后,最好不要修改它。

  7. 可创建一个新接口,来扩展旧接口。

 

 

可删除的对象

支持IDisposable接口的对象必须实现其Dispose()方法,即它们必须提供这个方法的代码。

不再需要某个对象时,就调用这个方法,释放重要的资源。

继承

  1. 任何类可从另一个类中继承,即这个类拥有它继承的类的所有成员。

  2. C#中的对象仅能直接派生于一个基类。

  3. 派生类不能访问基类的私有成员,可以访问其公有成员

  4. 只有派生类可访问protected 成员。

  5. 外部代码不能访问private 成员和protected 成员。

  6. 密封类,不能用作基类,没有派生类。

  7. 所有的对象有一个共同的基类 object

 

技术分享多态性

 

技术分享

 

技术分享

对象之间的关系

继承关系:可以让派生类完整地获得基类的特性,而派生类也可以访问基类内部的一些工作代码(通过受保护的成员)。

包含关系:一个类包含另一个类,类似于继承关系,包含类可以控制对被包含类的成员的访问。

集合关系:一个类用作另一个类的多个实例的容器。使用数组存储多个对象

Animal [] animals = new Animal [5];

集合以所存储的对象名称的复数形式(animals)来命名

集合通常实现额外的功能,如add() remove()方法可添加和删除集合中的项。

集合的item属性,根据对象的索引返回改对象。

本文出自 “Ricky's Blog” 博客,请务必保留此出处http://57388.blog.51cto.com/47388/1651516

17. C# -- 对象,类,接口,继承,多态

标签:c#

原文地址:http://57388.blog.51cto.com/47388/1651516

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!