今天开始将要复习最近所学的一些C#知识。下面就来总结一下今天所复习的内容,以此来巩固我对C#知识的掌握。今天主要以举几个程序为例。

首先还是要注意代码的规范:

–注释//,/**/,///
–骆驼命名 :第一个单词首字母小写,之后的单词首字母大写 userName、userPassword、realName…(普通变量(局部变量)、字段)
–帕斯卡命名:第一个单词首字母大写,之后的单词首字母大写 GetMax()、ChangeName()…(方法名、类名、属性名)
–定义的变量或者方法 名字要有意义。
方法名:动词。Write()、Open()、Close()、Dispose()、GetUserId()、…(方法都是要做一件事情)
变量名:按功能命名、按方法的返回值内容命名(userName=GetUserName();)
面向对象三大特性:封装、继承、多态
•1.属性封装了字段、
2.方法的多个参数封装成了一个对象、
3.将一堆代码封装到了一个方法中、
4.将一些功能封装到了几个类中、
5.将一些具有相同功能的代码封装到了一个程序集中(dll、exe)。 将一堆程序封装起来到一个程序集当中
•继承(是指类与类之间的关系。)
•类组成:字段、属性、方法、构造函数等
•LSP里氏替换原则、多态。类的单根继承性、传递性、继承时构造函数的问题(:this() , :base())。构造函数不能被继承。
•所有的类都直接或间接的继承自object。
多态的作用:把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化
虚方法和抽象方法
•关于虚方法需要注意的几点:
•1.父类中如果有方法需要让子类重写,则可以将该方法标记为virtual
•2.虚方法在父类中必须有实现,哪怕是空实现。
•3.虚方法子类可以重写(override),也可以不重写
•关于抽象方法注意的几点:
•1.需要用abstract关键字标记
•2.抽象方法不能有任何方法实现。
•3.抽象成员必须包含在抽象类中。
•4.由于抽象成员没有任何实现,所以子类必须将抽象成员重写。
•5.抽象类不能实例化,
•抽象类的作用:抽象类的作用就是为了让子类继承。
•6.抽象类中可以包括抽象成员,可以包括有具体代码的成员。
•7. 还有抽象方法不能用static修饰

程序:

练习1:磁盘上有不同的文件,比如:.txt文本文件、.avi视频文件、.xls电子表格。要求:编写一个控制台程序,用户输入一个带后缀名的文件,将该文件名传递到一个方法中,该方法中根据用户输入的文件名后缀,返回一个对应的文件对象。提示:编写不同的类模拟不同的文件、为不同的文件类创建统一的父类、使用简单工厂实现。

首先定义一个父类AbFile和三个子类txt,avi,xls;以及一个factory类.

三个子类的定义方法一样,这里以txt子类为例。

定义一个类factory

 

在Program类的Main函数里调用

 

运行效果:

计算形状Shape(圆Circle,矩形Square ,正方形Rectangle)的面积、周长

首先定义一个父类Shape,三个子类,一个类。

主要代码:

定义一个父类(抽象)

定义子类Square正方形

定义子类Rectangle(矩形)

定义子类Circle(圆)

定义类Factory

在Main函数里使用("Shape sh=fa.Name(s)",返回的是一个类)

运行结果:

好了,今天就先写到这里了。明天在继续吧。加油!

C#复习一( Twenty Days)的更多相关文章

  1. C#复习二(Twenty First Day)

    呵呵,又来到了今天的总结.这次主要复习了一下字符串的一些处理.今天就来总结一下. 理论: —String 字符串,字符串可以看成字符数组,不可变特性(通过for循环,修改string中的元素,失败!) ...

  2. iOS总结_UI层自我复习总结

    UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是 ...

  3. 我叫Twenty,我是要成为博客王的博客框架

    标题套用了路飞的格式,其实我想说的是大多数都不相信你的梦想,直到你快走到了. 不废话了,介绍一下twenty: 这是基于CMS框架 zerojs打造一个博客.zerojs 的架构介绍在这里http:/ ...

  4. vuex复习方案

    这次复习vuex,发现官方vuex2.0的文档写得太简略了,有些看不懂了.然后看了看1.0的文档,感觉很不错.那以后需要复习的话,还是先看1.0的文档吧.

  5. 我的操作系统复习——I/O控制和系统调用

    上篇博客介绍了存储器管理的相关知识——我的操作系统复习——存储器管理,本篇讲设备管理中的I/O控制方式和操作系统中的系统调用. 一.I/O控制方式 I/O就是输入输出,I/O设备指的是输入输出设备和存 ...

  6. 复习(1)【Maven】

    终于开始复习旧知识了,有输入必然要有输出.输入和输出之间的内化过程尤为重要,在复习的同时,真正把学到的东西积淀下来,加深理解. Maven项目概念与配置 Maven是一个项目管理和综合工具.Maven ...

  7. 《CSS权威指南》基础复习+查漏补缺

    前几天被朋友问到几个CSS问题,讲道理么,接触CSS是从大一开始的,也算有3年半了,总是觉得自己对css算是熟悉的了.然而还是被几个问题弄的"一脸懵逼"... 然后又是刚入职新公司 ...

  8. JS复习--更新结束

    js复习-01---03 一 JS简介 1,文档对象模型 2,浏览器对象模型 二 在HTML中使用JS 1,在html中使用<script></script>标签 2,引入外部 ...

  9. jQuery 复习

    jQuery 复习 基础知识 1, window.onload $(function(){});   $(document).ready(function(){}); 只执行函数体重的最后一个方法,事 ...

随机推荐

  1. 为YUM设置代理的方法

    http://momo-fedora.blog.163.com/blog/static/1161345982009329611312/

  2. Top free and open source log management software

    As mentioned in the previous post, in my quest to find an alternative to Kiwi Syslog, I looked at a ...

  3. Office 2010简体中文正式版完美终身破解版免费下载

    名称:Microsoft Office Professional 2010 正式版(JK破解免序列号安装版) Microsoft Office 2010 专业版 优点:用官方Microsoft off ...

  4. vs指定QT的工作目录(其它项目也是如此)

    当一个工程依赖第三方动态库时,这时vs编译出来后,运行会提示缺少动态库.解决方法: 项目->属性->调试: 工作目录:指定程序运行时的目录 环境:指定程序运行时的环境变量 我们可以在环境变 ...

  5. 去英国Savile Row 做件私人定制手工西装_GQ男士网

    去英国Savile Row 做件私人定制手工西装_GQ男士网 去英国Savile Row 做件私人定制手工西装

  6. Android4.0设置界面改动总结(三)

    Android4.0设置界面改动总结大概介绍了一下设置改tab风格,事实上原理非常easy,理解两个基本的函数就可以: ①.invalidateHeaders(),调用此函数将又一次调用onBuild ...

  7. static_cast,const_cast,dynamic_cast,reinterpret_cast

    除非必要,尽量不要对变量进行强制转换.这是因为强制转换是存在风险的,但实际上在某种情况下,转型是必需的. 旧式C转型方式为(type)expression,即由一对小括号加上一个对象名称组成,而这种语 ...

  8. C - 字符识别?

    C - 字符识别? Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu Submit Sta ...

  9. BZOJ 2245: [SDOI2011]工作安排( 费用流 )

    费用流模板题..限制一下不同愤怒值的工作数就可以了. ------------------------------------------------------------------------- ...

  10. mina、netty消息边界问题(采用换行符)

    在TCP连接开始到结束连接,之间可能会多次传输数据,也就是服务器和客户端之间可能会在连接过程中互相传输多条消息.理想状况是一方每发送一条消息,另一方就立即接收到一条,也就是一次write对应一次rea ...