c#面向对象笔记大全

上传人:第*** 文档编号:34202872 上传时间:2018-02-21 格式:DOCX 页数:8 大小:40.12KB
返回 下载 相关 举报
c#面向对象笔记大全_第1页
第1页 / 共8页
c#面向对象笔记大全_第2页
第2页 / 共8页
c#面向对象笔记大全_第3页
第3页 / 共8页
c#面向对象笔记大全_第4页
第4页 / 共8页
c#面向对象笔记大全_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《c#面向对象笔记大全》由会员分享,可在线阅读,更多相关《c#面向对象笔记大全(8页珍藏版)》请在金锄头文库上搜索。

1、一. 交换两个数据的值:1. /创建一个临时变量/int temp;/temp = num1;/用num2的值覆盖掉num1/num1 = num2;/将存储在临时变量中的nu1 取出来赋值给num2/num2 = temp;2.不使用临时变量:num1 = num1 + num2; /11num2 = num1 - num2; /11-6=5;num1 = num1 - num2; /11-5=6二:定义方法:访问修饰符 返回值类型 方法名称(参数)方法体1. 访问修饰符:public private protected internala) public :使用它来定义的成员可以在所有类里

2、面使用(不同项目需要先引用)b) private:私有的,只有在当前类中可以使用c) protected:使用它来定义的成员只有在当前类或者当前类的子类中使用。d) internal:在当前整个程序集中可以使用2. 返回值类型a) void:没有返回值.( 可以写 return(可以提前终止方法),但是不能 return 具体的值)b) 非 void,必须返回相应类型的值(任何类型都可以做为方法的返回值类型)3. 方法名称:a) Pascal 命名法,每一个单词的首字母需要大写b) 不能使用关键字(int double bool string .class namespace)c) 不能包含_

3、以外的特殊符号,不能以数字开头 java(_ $)4. 参数 a) 形参:只是一个参数的声明,说明调用的时候需要传递过来的值(类型一致,个数一致,顺序一致)-形参是实参的规范。Params 三:静态与非静态之间的调用方式:1. 在单个类中:静态不能直接调用非静态成员(属性,方法) ,只能通过实例化的对象调用。2. 在单个类中:静态可以直接调用静态成员3. 在单个类中:实例成员可以自由调用静态成员(银行 vip-非 vip)4. 在不同类中:实例成员通过类的对象调用,而静态成员通过类名调用。5. 为什么静态不能直接调用非静态成员:静态成员与类一起加载,在加载静态成员的时候,非静态成员还没有生成。

4、四:C#Main 方法的四种形式:1. static void Main(string args)2. static void Main()3. static int Main(string args)4. static int Main(s)五:可变参数:params:它是一个数组类型的变量。会自动根据用户传递的值生成一个数组(注意传递的值需要同一类型。)1. 可以根据需要传递 0 个或者多个参数。2. 如果没有传递任何参数,需要做一个判断,不然可能造成索引越界的错误。六:习惯决定性别,性格决定命运 15 天1. 模仿2. 将每一句代码添加上注释3. 删除代码,根据注释重写代码4. 删除注释

5、,重写代码,添加注释七:代码规范:1. 注释:a) / 单行注释 b) /*/:多行注释c) /文档注释:可以生成提示2变量命名:camel: 第一个单词首字母小写,后面每一个单词的首字母大写3.对于类和方法:每一个单词首字母都要大写。4.代码需要缩进与对齐。记住:1.在企事业里面可能这有这样的建议:规定所有自定义变量都使用 _ 开头2.变量的名称一般是名词:说明这个变量有什么用3.方法:一般是动词,说明这个方法可以执行什么样的操作4.在定义变量的时候,长短不是关键,意义才是关键八:数组:所有存储结构中效率最高的。因类它在内在中是一串连续的空间1. 如何定义:类型 名称=new int长度;2

6、. 数组里面只能存储同一类型的值3. 在 c#中,只能写在类型后面4. 一般需要确定长度或者值,可以同时指定,但是长度与值的数量需要对应。5. 因为数组长度固定,所以对数组的操作一般可以考虑使用 for 循环结构!6. 数组元素的添加:1. int arrScore = new int51,2,3,4,5;2. arrScore0=1;/如果只为其中某一些下标对应的数组元素赋值那么其它的就会有默认值。3. for (int i = 0; i 0 & value = 100)age = value;elseage = 18; 5.自动属性:public int Ageget;set;十九:继承1

7、. 如果子类拥有与父类重名的属性和方法的时候,子类的属性和方法会将父类的覆盖掉。如果需要显示调用父类的成员,则需要使用 base.不然会默认调用this.2. 创建一个子类对象,默认先会调用父类的无参的构造函数。如果父类没有无参的构造函数,会报错。3. 创建子类对象的时候,也可以指定调用父类的带参的构造函数。Base4. 子类会继承父类的所有成员,但是只能使用公共的,而私有成员不能使用。5. 继承有三大特性:a) 单根性:一个类只能继承自另外一个类b) 传递性:一个类是另外一个类的子类,也可能同时是另外一个子类的父类c) 单向性:不能循环依赖二十:多态的实现:同一种操作,多种不同的相应。1.

8、声明父类变量,实例化子类对象2. 父类创建虚方法,子类做重写。-子类重写父类的方法 3. 虚方法提供了默认的实现,子类可以不重写,如果子类没有重写,那么就默认调用父提供的方法实现。如果子类重写了,系统会自动判断子类类型,调用子类的重写方法 -这就是多态4. 多态的核心在于:子类可以替换父类,原因:a) 子类拥有父类所规范的所有属性和方法 b) 子类还可以拥有自己特定的属性和方法c) 父类对象可以完成的功能子类对象都可以完成d) 所以,子类可以替换父类。如 Person per=new Student();e) Per 本质是一个子类对象,但是编译器不知道,所以 per 只能调用父类里面规范的成

9、员。如果做强制转换,则可以调用到子类成员。5. 如果需要系统自动判断类型,达到多态的目的需要做以下事情:a) 实现继承- 子类是父类b) 父类中声明虚方法(抽象方法) ,子类做重写(override)c) 声明父类变量,实例化子类对象 / 父类做为参数,传入子类对象。6. 多态实现了避免反复的判断才能达到的效果,这也是多态的好处。方便以后的代码功能的扩展7. 抽象方法:abstract:只是方法的声明,没有方法体,不能包含,但是必须包含 ; 8. 抽象方法的特点 :a) 只有声明b) 它必须在抽象类里面(抽象类里面不仅仅只包含抽象方法)c) 所有子类必须重写父类的抽象方法,除非子类它也是抽象的

10、,抽象类里面可以包含未实现的抽象方法 。d) 抽象方法更多是一种规范,它规范了子类的行为。-接口e) 抽象类不能实例化。9、多态的使用方式:1.声明父类变量,实例化子类对象 -创建父类类型集合2.以父类做为方法的返回值,返回子类对象-简单工厂: 用户需要频繁的得到不同的单个子类对象的时候3.以父类类型做为参数,传入子类对象10.如果父子类的方法参数不一样,那它是重载而不是重写。 11.重写要求方法的签名完全一致:访问类型一样,返回值类型一样,方法名称一样,方法的参数一样,只是方法体的实现过程不一样二十一:简单工厂:制作产品:根据用户的需要,每一次制作出一个产品public static Ope

11、rator CreateOperator(string type)Operator opt = null;if (type = +)opt = new OpAdd();if (type = -)opt = new SubStract();if (type = *)opt = new Multi();if (type = /)opt = new Div();return opt;二十二:is/as1. is 用来判断引用类型变量的变量是否是某一种类型2. as:来做强制转换,一般()转换,如果不成功,就会报异常,as 如果转换不成功会返回 NULL,以后,如果不想抛出异常,可以使用 as二十三:

12、软件设计中的几个原则:1. 封装变化点2. 开放封闭原则(对修改封闭,对扩展开放)-添加单独的功能 添加单独的方法; 添加单独的角色-添加单独的类3. 高内聚,低藕合 -三层-EF MVC二十四:接口:1. 接口本质就是一个抽象类,在接口里面就是声明一系列的属性,方法,索引器和事件。从反编译工具可以看到接口是抽象类-抽象的不能实例化,只能被实现;接口是一个类,说明它也是一种数据类型,可以通过接口创建出接口对象(所谓的接口对象其实是实现该接口的类的对象)2. 创建一个接口对象,其实就是创建一个 实现了这个接口的类 的对象3. 如果某个类没有实现某个接口,那么这个这个类的对象不能强制转换为接口类型

13、。4. 接口不要求实现接口的类有某种关联(只需要有共同的行为),也就是说不要求他们要父子继承关系,方便了用户的拓展。 父类-虚方法/抽象方法-子类重写-多态5. 在公司里面,接口更多的认为是一种规范。6. 使用接口的方式:a) 声明接口类型的变量,存入 实现了接口的类的 对象b) 以接口类型做为参数,传入 实现了接口的类的 对象7. 显示调用接口:显示实现接口的方法需要接口类型的对象才能调用。因类它默认是私有的,而且还不能人为修改为 public a) 如果声明的类型就是接口类型,那么可直接调用b) 如果声明的类型是实现了接口的类的类型,那么就需要做强制转换。8. 接口解决了通过继承实现多态的

14、三个问题:a) 通过继承实现多态只能是单继承,但是接口可以多实现b) 通过继承实现多态的类必能够提取出共同的父类,也就说明这些类之间需要有共同的特征和行为。但是接口只需要它们有共同的行为。c) 通过实现了继承的类做为参数传递,会传递类的对象的所有属性和方法,但是通过接口做为参数,只能调用到接口中声明的方法和属性。-更加安全二十五:结构1, 结构是值 类继承自 ValueType 型2, 它的使用方式和类很相似,但是也有一些区别:a) 结构中不能为字段赋值b) 结构不能包含显式的无参数构造函数c) 如果通过构造函数为结构成员赋值,只能赋值给字段。d) 如果不使用 new 来创建结构,那么就必须为结构中的字段赋值。e) 结构是一个值类型,所以在做为参数传递的时候传递是值的副本,与引用类型不一致f) 值类型做参数传递的时候会开辟新的空间来存储值,同时在同引用类型做转换的时候 需要 装箱和拆箱操作,消耗系统资源。二十六:析构函数:1. 每个类只能有一个,不能显示调用2. 不能有访问修饰符,是系统自动调用的3. Student()Console.WriteLine(我调用了析构函数 );

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号