C#面向对象知识点高度总结.docx_第1页
C#面向对象知识点高度总结.docx_第2页
C#面向对象知识点高度总结.docx_第3页
C#面向对象知识点高度总结.docx_第4页
C#面向对象知识点高度总结.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章 概述1、.NET Framework体系结构用不同的开发语言,开发各种类型应用程序,在CLR的帮助下,运行于操作系统。2、CLR: 公共语言运行库 建立在操作系统之上,为.NET应用程序提供运行的执行环境。 作用:类库加载、内存管理与无用单元回收、错误处理、线程执行、代码执行、代码安全验证、多语言支持、提供中间语言、提供公共类型系统(CTS)。3、.NET应用程序的执行过程 图PPT 36 37页4、 FCL :.NET框加类库.5、一个C#应用程序必须一个Main方法,静态。6、.NET应用程序的结构 一个解决方案包含多个项目。.sln 一个项目中包含:Program类,放Main(),都是静态的。.csproj 项目文件 bin: 类文件,可执行文件。 Debug:调试下的文件。 Release: 发布下的文件 Properties:资源文件7、.NET的特点自动内存管理、安全类型系统、更好的版本控制、多语言支持、XML Web Service第2章 语言基础1、注释 / /*/ /2、常量 const float PI=3.1415926;3、访问修饰符 public:任何 internal:当前项目 protected:当前类与子类 private:当前类4、数据类型 值类型: int char 结构 枚举 引用类型: string 数组 类 接口 委拖 装箱:值-引用 拆箱:引用-值5、字符串类 String IndexOf() Substring() ToLower() ToUpper() Trim()6、条件语句7、循语语句 for while foreach do.while8、数组值类型数组: 一维: int s=new int10; s2=6; 二维: int k=new int3,2; k01=5; 引用类型数组;引用类型的数组的成员在使用时,必须重新实例化。 class A public int x ;public int y; A a=new A10; a0=new A(); a0.x=4; a0.y=9;9、枚举 定义: public enum 枚举名称 成员 如: public enum color red,green5,blue; 作用: color.red; 值是整型,从0开始。可以赋值。第3章 在C#中实现OOP概念1、面向对象的基本要素: 抽象性、 封装性、 继承性、多态性2、对象:万物皆对象。 对象是真实存在的,它的属性是有一定的内容的。 从两方面描述对象:状态:属性 行为:方法。 对象声明: A a; /不分配内存。 对象的实例化: a=new A(); /分配空间。 常用:A a=new A(); 对象的使用: a.变量=值; 返回值接收 a.方法(参数);3、类 :一组对象的描述。 C#中一个程序至少要有一个类。 类的定义:class 类名 /成员变量 /构造方法 /方法注意:成员变量名不能与方法同名。4、成员变量与局部变量成员变量:在类中定义的变量。局部变量:在方法定义的变量。 当成员变量与局部变量同时,而在方法内,成员变量被隐藏。5、实例变量与静态变量实例变量 int x=4; 对象名.x=值;静态变量 static int y=5; 类名.y=值;6、类的方法 public int Add(string x,string y); 参数: 按值传递 class A public int Add(string x,string y); A a=new A(); int k=Add(4,5); 按引用传递 ref:形参影响实参class A public int Add(ref int x, ref int y) x=2;y=4; return 7;A a=new A(); int a=4,b=8, k ; k=Add(ref a,ref b);结果:a=2,b=4,k=7; 输出参数 out:作用:为调用者提供更多返回结果值。 class A public int Add(out int x, out int y,int m) x=2;y=4;m=8; return 7;A a=new A(); int a=4,b=8,m=9, k ; k=Add(out a, out b ,m);结果:a=2,b=4,k=7,m=9 参数数组:为方法提供相同类型、不定个数的参数。class A public int Add(params int m) foreach(int n in m)s=s+n; return s;A a=new A(); a.Add(34,54,65);a.Add(2,4,5,65,76,86,34,65);7、构造方法 与类同名 没有返回值 可重载 用于初始化 自动调用 不一定是public 如果类没有定义方法,系统会提供一个默认构造方法。 如果定义了一个构造方法,系统不再提供默认构造方法。8、析构函数 作用:收回类所占的空间,在主程序main执行完后调用。 特点: 与类同名,名前加。 没有返回值。 没有访问修饰符。 没有参数。 一个类,只有一个析构函数。9、静态方法与实例方法 静态方法:public static void show(); 类名.方法(); 不能用this,base。 实例方法:public void show(); 对象.方法();10、方法重载 在一个类中或子类与父类中,存在同名不同参(参数类型、参数个数不同)的方法。 在一个类中public int fun(int x) private void fun() 是Public int fun (int x,int y)Private string fun(int x,int y)不是Public int fun (int x,string y)Private int fun (string x,int y)是1.void f1(int) 2.int f1(int)3.int f1(int,int) 4.float k(int)23是13是子类与父类中class A public int fun(int x) return x;class B:A public int fun(string y)retrun “A”;11、操作符重载 语法: public satatic 返回值类型 operator操作符 (参数) 如:public satatic string operator-(string a ,string b) /? 特点: 访问修饰符只能是public 只能是static 返回值类型 可是结构或类 operator是关系字 操作可是一元的,也可以是二元的。如果一元,那么有一个参数,如果二元有两个参数。第4章 在C#中高级OOP概念1、继承 子类继承父的属性方法等。能继承public、protected 修饰的属性和方法。不能继承private与构造方法、析构函数。C#中,所有的类继承自Object.继承的种类:单一继承:一个子类有一个父类。多重继承:一个子类有多个父类,C#中不支持多继承,C#中的多继承由接口实现的。2、继承的语法 class A class B:A 3、重写 变量重写:子类中与父类同名的变量 class A public int x=4; class B:A new public int x=7; 方法重写:子类中与父类的方法同名、同参class A public void Show (string x) ; class B:A new public void Show (string x); A a=new B (); a.Show(); A类的Show();4、方法覆盖: 子类中与父类的方法同名、同参class A virtual public void Show (string x) ; - virtual 虚方法 class B:A override public void Show (string x); A a=new B (); a.Show(); B类的Show(); 覆盖的条件: 同名、同参、同返回值。 可以覆盖的方法必须是虚方法(virtual),抽象的(abstract)或重写(override),非虚方法和静态方法不可以覆盖。 不能用new 、static、virtrual、abstract 修改覆盖的方法。5、base与this关系字。 base:在子类中调用父的方法。class A public void show()class B:A new public void show() base.show();/调用父的方法。class A public int x;public A(int x) this.x=x;class B:A:base(9) /调用父类的构造方法。6、继承时父类子类的构造方法与析构函数的执行顺序 创建时: 基类的构造方法-派生类的构造方法。 释放时: 派生类析构函数-基类的构造方法。7、密封类 不能被继承的类 ,sealed8、多态性 多态的方式: 编译时多态:通过方法重载实现。 运行时多态:通过方法覆盖实现。C#中实现多的手段: 在基类中定义虚方法。 在派生类中重写基类的虚方法。 用派生类的对象实例化基类的对象。 用基类对象调用方法。9、抽象基类与抽象方法 抽象基类:主要用于被继承的类。 抽象方法:用于子类中进行重写的方法。 abstract class A /抽象基类 public int x=5; /抽象类中包含成员变量public void show() console.writeline(“你好”); /抽象类中包含实例方法。abstract public void show2(); /抽象方法,只有方法说明,没有方法的实现。class B:Aoverride public void show2().;抽象基类与抽象方法的特点:6点10、接口 作用:规范代码 实现多继承 interface IFile int delfile(); void disFile(string x); class A: IFile /当一个类使用一个接口时,称“实现”该接口。 public int delfile() .; public void disFile(string x) .; 接口的特点: 不能被实例化。 只能包含方法的声明,不能包含方法的实现。 任何类都可以实现接口,一个类能够实现多个接口。 实现接口的类,必须实现接口所有的方法。 接口中没有数据成员、构造方法、析构函数、运行符。 接口包含:方法、属性、索引、事件。 类可以实现接口的同时,继承其它的类(类放前,接口放后)接口与类的区别? 类只能继承一个父类。接口可以有多个父接口。 子类可以选择是否覆盖父类的方法,类必须实现接口中的所有方法。接口与抽象类的相同点与区别?相同点: 都不能被实例化。 都用于被继承。 都包含方法声明。 派生类必须实现未实现的方法。区别: 抽象类可定义字段、属性、方法实现。接口只能定义方法声明、属性、索引、事件,不能包含字段。 抽象类是一个不完整的类,需要进一步细化。接口是一个行为规范。 接口可以被多重实现。抽象类只能被单一继承。 抽象类更多的是定义在一系列紧密相关类中,而接口大多数是关系疏松但都实现某一功能的类中。 抽象类是从一系列相关对象中抽象出来的,反映的是事件的内部共性;接口是为了满足外部调用而定义的一个功能约定,反映的是事件的外部特性。 接口基本上不具备继承的任何具体特点,它仅仅是承诺了能够调用的方法。 抽象类实现的具体方法默认为虚方法,但实现接口的类中的依法却默认为非虚方法,但也可以声明为虚方法。 接口可以用于支持回调 ,而继承并不具备这个特点。 如果抽象类实现接口,则可以把接口中方法映射到抽象类中作为抽象方法而不必实现,而在抽象类的子类中实现该方法。11、显示接口实现 一个类,实现多个接口中的同名,同参 方法。interface IA void show(string x); interface IB void show(string x); class AA : IA, IB void IA.show(string x) void IB.show(string x) class Program static void Main(string args) IA a = new AA(); a.show(aa);/调用IA接口的show()方法。 IB b = new AA(); b.show(bb);/调用IB接口的show()方法。 注意:显示接口实现不需要加访问修饰符。12、类的嵌套 class AA public class BB class Program static void Main(string args) AA a = new AA(); AA.BB b = new AA.BB(); 第5章 C#中的高级OOP概念2索引一、作用: 对类中的数组成员进行封装,是特殊属性。二、定义格式:public 数组的类型 this下标数据类型 index get return 数组名index; set 数组名index = value; 示例:class People private string goodfridends = new string10; public string thisint index get return goodfridendsindex; set goodfridendsindex = value; 三、使用格式: 类名 对象名new 类名(); 对象名下标=值; /赋值 int k=对象名下标; /取值示例: People p = new People(); p0 = Jack; p1 = Rose;索引的引用是通过对象名来直接引用的,就像使用一个对象数组。四、非整型下标一委托委托可以单独使用,事件必须使用委托实现。 按照以下三个步骤使用委托 (0)准备public class MrZhang public static void BuyTicket(float money) Console.WriteLine(我是小张,去排队买票); (1)声明委托类型 格式:修饰符 delegate 返回值 委托名(参数列表); 说明:其中返回值与参数列表,限制了该委托所能调用的方法的返回值与参数列表。 示例:class MrMingpublic delegate void BuyTicketEventHandler(float money);说明:EventHandler是一个声明委托的微软C#的命名标准. (2)实例化委托(委托对象)格式:委托名 委托对象名=new委托名(方法名); 示例:BuyTicketEventHandler myDe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论