有关C#的 继承、结构、封装 的一些小实现例子

原创 2012年03月27日 20:45:58

去除浮躁,从稳固基础做起!认真对待基础!

通过继承计算梯形面积

程序预览:


源码下载地址:

http://dl.dbank.com/c0eoyzfa41

分析程序结构:

不规则四边形是基类:

成员只有:封装好的属性:上底 、下底、高

派生类也是一个梯形:

梯形类继承了不规则四边形的所有成员,所以就直接拥有了成员:上底、下底、高

另外梯形类扩展了一个方法:计算面积的方法Area()



分析程序编写过程:

在主方法里面实例化一个梯形对象

设置好这个梯形实例的上底,下底,高

调用梯形计算面积的方法并返回结果



总结心得:一个类可以重另外一个类继承,派生类继承了基类的所有成员(构造函数除外)。利用继承机制,可以重一个类的基础上构造出一个扩展的新类,从而提高程序开发的效率




通过结构计算矩形面积

程序预览:

 

源码下载地址:

http://dl.dbank.com/c0xewd44lq


知识点认知:

结构和类很相似,都可以含有:构造函数、字段、方法、属性、运算符、事件、嵌套类型······

结构对于小的数据结构很有用,而类一般是针对比较大型的数据结构

结构有以下几个特点:

1.结构是值类型的,向方法传递结构时是值传递的

2.结构实例化不可以用 New 运算符

3.结构可以声明构造函数,但它们必须带有参数

4.结构不能继承,所有结构都是直接继承 System.ValueType  ,而System.ValueType则是继承自:System.Object

5.结构可以实现接口

6.不能在结构中  初始化  实例字段

分析程序结构:

定义一个名为矩形的 结构类型 

矩形 结构类型的成员有:边 长 的字段和属性,边 宽 的字段和属性,计算矩形面积的方法


分析程序编写过程:

1在入口方法里面实例化一个矩形结构类型的实例

设置这个 矩形实例 的长和宽

调用 矩形实例 的面积计算方法

得出结果

总结心得:在数据结构较 小规模 的时候采用结构类型,这样可以大大节省内存;并且,结构是值类型的,类似引用类型的,而管理堆上的 数据比管理 栈 上的数据要占系统资源得多,SO ,在数据结构较 小规模 的时候 使用结构可以节省系统资源,节省内存。



封装实现一个简单的计算器

程序预览:

 

源码下载地址:

http://dl.dbank.com/c04q6hflj5


知识点认知:

封装是面向对象编程的一个重要的概念。封装可以把多个功能内部原理封装起来,那么程序员就不用管理如何实现,进而把注意力集中到需要设计的功能上;封装是程序更加安全,后期的维护更加方便、容易

分析程序结构:

一个计算类

成员:两个保存需要运算的字段,一个运算的方法

窗体:多个按钮

分析程序编写过程:

设计好窗体界面

为各个按钮编写相应事件

编写计算类

在窗体类里面实例化一个计算类

通过调用计算类的计算方法而得到结果

总结心得:封装是面向对象的一个重要的特性,封装一般的对于类和接口说的,

对于一些程序中通用的属性和方法等,通常都封装到接口或者类中,从而提高代码的重用率
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C# 获取 MP3信息结构 的一个小例子(基于v1版的ID3)

ID3,一般是位于一个mp3文件的开头或末尾的若干字节内,附加了关于该mp3的歌手,标题,专辑名称,年代,风格等信息,该信息就被称为ID3信息,ID3信息分为两个版本,v1和v2版。其中:v1版的ID...

数据结构 C# 代码例子

  • 2013-11-30 14:08
  • 2.47MB
  • 下载

C# BackgroundWorker实现WinForm异步操作的例子

原文:http://blog.csdn.net/longlong821/article/details/6613399 BackgroundWorker 类允许您在单独的专用线程上运行操作。耗时的操...

C# BackgroundWorker实现WinForm异步操作的例子

BackgroundWorker 类允许您在单独的专用线程上运行操作。耗时的操作(如下载和数据库事务)在长时间运行时可能会导致用户界面 (UI) 似乎处于停止响应状态。如果您需要能进行响应的用户界面,...

C# BackgroundWorker实现WinForm异步操作的例子

BackgroundWorker 类允许您在单独的专用线程上运行操作。耗时的操作(如下载和数据库事务)在长时间运行时可能会导致用户界面 (UI) 似乎处于停止响应状态。如果您需要能进行响应的用户界面,...

一个查找替换文本的例子(C#实现)

问题来源于游戏汉化,文件资源拆包后的样子如下: CMD-x05 SoundBgmPlay int 2 ShowBackground string "ev901a0.iph" int 10 CMD-...

C++复杂结构体的C#封装

对于一些比较复杂的C++结构体在封装成C#的时候要注意保持C++结构变量字节与C#结构体字节的对齐。 C++结构体示例:   typedef struct{ e_float64...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)