C语言学习笔记
- 格式:doc
- 大小:25.00 KB
- 文档页数:6
类的成员:
数据成员:字段:成员变量,描述类的特性值;常量。
函数成员:方法(或称函数):实现特定功能的计算和操作;属性;索引器;事件;运算符;构造函数:名称和类相同的函数;析构函数:名称是类名前加“~”,类无效时执行。
访问修饰符:
修饰成员的可访问范围。
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) 声明构造函数时指明最先执行的构造函数:先执行基类的方法,在执行派生类的方法。