[C#基础]基础知识一: 面向对象的基本知识.
激励自己有时间多看看.!! C#基础共分为七个部分: 一: 面向对象 ? ? ?二: 值类型,引用类型,字符串操作 三: 集合文件操作 四: 正则表达式 五: XML操作 六: 委托,事件 七: 反射 1,面向对象: 面向对象的三大特性: 封装,继承,多态 2,什么是类? 什么是对象? 类和对象的区别? 类: 类似模子,确定对象将会拥有的特征(属性) 和行为 (方法) 对象是一个你能够看得到,摸得着的具体实现-- 万物皆对象. --类是模具,创建对象的模具,抽象的 ? .类是一组数据类型,用户自定义的数据类型. .类组成: 字段,属性,方法,构造函数. --对象是具体的,是类的具体实例. 对象是具有属性(特征)和方法(行为) --类中包含了数据(用字段标示)与行为(用方法(函数,功能)标示,方法为一块具有名称的代码) 3,知识点总结
? ?封装的意义: 封装的意义在于保护或者防止代码(数据)被我们无意中破坏。在面向对象程序设计中数据被看作是一个中心的元素并且和使用它的函数结合的很密切,从而保护它不被其它的函数意外的修改。 封装提供了一个有效的途径来保护数据不被意外的破坏。相比我们将数据(用域来实现)在程序中定义为公用的(public)我们将它们(fields)定义为私有的(privat)在很多方面会更好。私有的数据可以用两种方式来间接的控制。第一种方法,我们使用传统的存、取方法。第二种方法我们用属性(property)。 使用属性不仅可以控制存取数据的合法性,同时也提供了“读写”、“只读”、“只写”灵活的操作方法。 访问修饰符:
继承主要实现重用代码,节省开发时间。 1、C#中的继承符合下列规则:
2、new关键字 如果父类中声明了一个没有friend修饰的protected或public方法,子类中也声明了同名的方法。则用new可以隐藏父类中的方法。(不建议使用) 3、base关键字 base 关键字用于从派生类中访问基类的成员:
?三、多态 1、多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。 编译时的多态性: 编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。? 运行时的多态性: 运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。C#中,运行时的多态性通过虚成员实现。? 编译时的多态性为我们提供了运行速度快的特点,而运行时的多态性则带来了高度灵活和抽象的特点。 ? 2、实现多态:
3、override关键字: 重写父类中的virtual修饰的方法,实现多态。
属性 所谓属性其实就是特殊的类成员,它实现了对私有类域的受控访问。在C#语言中有两种属性方法,其一是get,通过它可以返回私有域的值,其二是set,通过它就可以设置私有域的值。比如说,以下面的代码为例,创建学生姓名属性,控制对name字段的受控访问:
{ { name =
Main( Student student = student.Name = }
索引器简单说来,所谓索引器就是一类特殊的属性,通过它们你就可以像引用数组一样引用自己的类。显然,这一功能在创建集合类的场合特别有用,而在其他某些情况下,比如处理大型文件或者抽象某些有限资源等,能让类具有类似数组的行为当然也是非常有用的。比如,上例中,我们假设一个班级有若干个学生,构建索引器就可以很方便地调用:
List
List
、 属性的定义:访问修饰符 返回类型 属性名 {????? get{语句集合}????? set{语句集合}} 索引器的定义: 访问修饰符 返回类型 this[参数类型 参数...]{?????? get{语句集合}?????? set{语句集合}} 、 索引器使得对象可按照与数组相似的方法进行索引。this?关键字用于定义索引器。get 访问器返回值。set 访问器分配值。value 关键字用于定义由 set 索引器分配的值。索引器不必根据整数值进行索引,由你决定如何定义特定的查找机制。索引器可被重载。<3>、属性和索引器的主要区别:?a、类的每一个属性都必须拥有唯一的名称,而类里定义的每一个索引器都必须拥有唯一的签名(signature)或者参数列表(这样就可以实现索引器重载)。?b、属性可以是static(静态的)而索引器则必须是实例成员。<4>、索引器重载实例:
List |