今天开始将要复习最近所学的一些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. 采购件不允许挂BOM

    应用 Oracle Bill Of   Materiel 层 Level Function 函数名 Funcgtion Name BOM_BOMFDBOM 表单名 Form Name BOMFDBOM ...

  2. Cortex-M3学习日志(四) -- UART0实验

    LPC1768含有4 个符合16C550工业标准的异步串口UATR0-UART3,其中UART1具有标准的MODEM接口和RS-485/EIA-485接口模式.串口通讯接口是连接计算机.终端.通讯控制 ...

  3. delphi程序设计之底层原理

    虽然用delphi也有7,8年了,但大部分时间还是用在系统的架构上,对delphi底层还是一知半解,今天在网上看到一篇文章写得很好,虽然是07年的,但仍有借鉴的价值. 现摘录如下: Delphi程序设 ...

  4. iptsbles及磁盘扩容

    如果你的IPTABLES基础知识还不了解,建议先去看看. 们来配置一个filter表的防火墙 1.查看本机关于IPTABLES的设置情况 [root@tp ~]# iptables -L -n Cha ...

  5. HDU 4661 Message Passing 【Tree】

    题意: 给一棵树,每一个结点都有一个信息,每一个时刻,某一对相邻的结点之间可以传递信息,那么存在一个最少的时间,使得所有的节点都可以拥有所有的信息.但是,题目不是求最短时间,而是求最短时间的情况下,有 ...

  6. Joseph(约瑟夫环)

    Joseph Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  7. Image editing techniques and algorithms using Qt

    费了好半天劲先翻译这一点.还有好多地方不明白.先弄明白这一点.继续以后的翻译. 这一篇文章我们将讨论不同的技术和算法来修改图像使用Qt.但是在这之前我们继续你必须知道一些原则处理图片. 这里主要有两种 ...

  8. Android之单击返回键两次退出

    private static Boolean isExit = false;        private static Boolean hasTask = false;        Timer t ...

  9. swift论坛正式上线

    www.iswifting.com swift论坛正式上线.有问答专区,也有技术分享区,还有学习资料区,大家一起学习成长! 2014中国互联网大会于8月26日开幕. 政府主管部门.行业专家.企业领袖将 ...

  10. GWT工程 —— HostedMode(宿主模式下调试) 所有的运行命令

    Unknown argument: -helpGoogle Web Toolkit 1.7.0HostedMode [-noserver] [-port port-number | "aut ...