C语言学习笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
类的成员:
数据成员:字段:成员变量,描述类的特性值;常量。
函数成员:方法(或称函数):实现特定功能的计算和操作;属性;索引器;事件;运算符;构造函数:名称和类相同的函数;析构函数:名称是类名前加“~”,类无效时执行。
访问修饰符:
修饰成员的可访问范围。
Public:可以在任何地方被访问
Internal:可以在本项目访问
Private:只能在本类访问(默认)
Protected:只能在本类或者子类被访问
对象:
对象是类的实例化,具体格式:
类名对象名= new 类名(参数)
对象用点运算符“.”来引用类的成员,并受到成员访问修饰符的控制
类成员:
静态成员:使用类名+点运算符“.”来引用,不能用对象引用
静态字段只标记一个储存位置,无论创建多少个实例,静
态字段在内存中只占同一区域
实例成员:
构造函数:
名称和类相同的函数。
功能:初始化类的实例,即创建对象时,直接赋值。
1.每个类都有构造函数,系统会提供一个public类型的默认构造函
数。
2.Private类型的构造函数,表达该类不能被实例化,通常用于只含
静态成员的类。
3.不能被显示的调用。
访问一个类时,将一方面执行构造函数中的语句,执行构造函数之前,系统会给所有未赋初值的字段设立默认值。
静态构造函数:
用static声明的构造函数,用来初始化类,不能初始化实例或者对象在给定的程序中至多只能执行一次,程序中第一次执行某事件时,讲触发静态构造函数的执行。
非静态构造函数需要通过实例才干调用。
析构函数:
销毁类内指定的实例。一个类只能有一个析构函数,不能显示调用,系统自动调用,调用时机由公共语言运营时的垃圾回收机制拟定。
只读字段
关键字readonly来修饰,指定字段的数据不可更改。
不能在编译时拟定,而是在运营时拟定。
1)声明字段时赋值
2)在构造函数内可以多次被赋值或传递到方法中被改变
This
1)this访问
2)在声明构造函数时指定最先执行的构造函数。
使用技巧:①当参数和类变量同名时必须使用this。
②使用时避免自己给自己复制
属性
属性是字段的扩展,属于一种标记符,用来保护私有变量。声明格式:修饰符类型属性名
{
get { }
set { }
}
索引器
是属性的一种特例。操作数组内的元素。具体格式:
修饰符类型this[参数]
{
get { }
set { }
}
命名空间:解决类重名问题,相称于“类的文献夹”。
在不同命名空间下的类,不能被直接访问。想要访问别的命名空间下的类有两种方法:
1)通过using引用对方的命名空间
2)写全称命名空间.类名
第十章继承与多态
继承:派生类可以从基类继承所有的成员,涉及变量和函数结合属性等。
声明格式:
修饰符class 类名:基类
{
}
继承规则:
1)除了object类外,每个类有且只有一个基类,但支持接口的多重继承。程序中没有基类时,那么它的基类就是object。
2)无论基类成员的访问性如何,所有基类成员都可以被子类继承,构造和析构函数除外。但基类成员可以被继承,不保证子类可
以使用这些成员,这取决于成员的访问性。例如基类中的Private
从成员可以被继承,但子类不能使用。
3)子类中可以定义新成员,但不能删除继承成员的定义。
4)继承可以传递,不能循环,基类的可访问性不能小于子类。5)子类中声明与基类相同名称的成员,会将基类中的这些成员隐藏
C#的隐藏
在子类中,可以使用new来明确设立要隐藏基类的同名成员。
多态
实例化时,调用哪个类的构造函数。在子类中重写基类的虚方法,或函数的成员来实现。
虚方法格式:
修饰符virtual 方法()
{
}
修饰符为override时,表达重写方法。
C#中的虚方法和非虚方法的调用原则如下
1)调用虚方法时,按对象的运营类型决定被调函数
2)调用非虚方法时,基类优先。
C#支持两种类型的多态
1)编译时的多态:对非虚成员,根据传递参数、返回类型等信息实现
2)运营时的多态:通过虚成员实现。
Base关键字:
1)用base访问,如在子类中用base访问基类中的方法
2)声明构造函数时指明最先执行的构造函数:先执行基类的方法,在执行派生类的方法。