静态成员:使用关键字static修饰,通过类名来引用
实例成员:不使用关键字static修饰,通过类的实例对象来引用
静态字段:使用关键字static修饰,通过类名调用
实例字段:不使用关键字static修饰,通过类的实例对象来引用
常量字段:使用关键字const修饰,默认为静态成员,但声明时不允许使用关键字static
静态方法:使用关键字static修饰,只能直接访问静态成员,不对特定实例进行操作,不能引用this指针
实例方法:不使用关键字static修饰,能访问实例成员和静态成员,还可以引用this指针。
分部方法:使用关键字partial修饰
外部方法:使用关键字extern修饰
重载:在定义两种或多种具有相同名称但是签名不同的方法时,就称为重载。签名包括(函数参数的个数、顺序、类型但不包括返回类型)
注意:如果一个方法采用ref,另一个采用out参数时,无法重载;但如果一个方法采用ref或out参数时,另一个方法不采用这两个参数,则时重载。
1、类的数据成员和函数成员分别有哪些?
答:数据成员有:字段、常量和事件
函数成员有:包括方法、属性、构造函数和析构函数、运算符以及索引器
2、静态成员使用什么关键字?它与实例成员有什么区别?
答:static。
静态成员必须通过类名来引用,一个静态字段共享同一个存储位置,静态函数成员,其代码体内不能直接引用实例成员。
实例成员必须通过对象实例来引用。类的每个实例分别包含各实例字段的单独副本
实例函数成员作用于类的给定实例,故在其代码体内既可以使用实例成员,也可以直接引用类的静态成员
3、this关键字的含义是什么?使用的限制是什么?
答:this关键字引用类的当前实例
静态成员方法中不能使用this关键字。this关键字只能在实例构造函数、实例方法、实例访问器中使用。
如果定义了局部变量与实例字段重名,则采用直接实例字段名称将引用局部变量
4、类成员有哪5种访问修饰符?含义?
答:
5、常量使用什么关键字?常量是静态成员还是实例成员?
答:const。 静态成员。
6、值形参、引用形参和输出形参分别使用什么关键字?有什么区别?
答:值形参没有关键字、引用形参使用ref和输出形参使用out。
值形参为单向的输入传递、引用形参为双向的输入输出传递,输出形参为单向的输出传递。
7、什么是可选参数?它和其他非可选参数的位置顺序有什么要求?
答:指定参数的默认值
声明方法时,有默认值的可选参数必须位于其他无默认值的参数之后。ref和out参数不能指定默认值
8、什么是形参数组?使用什么关键字?在位置上,类型上有什么要求?
答:用 params 修饰符声明的形参是形参数组,允许向方法传递可变数量的实参
如果形参表包含一个形参数组,则该形参数组必须位于该列表的最后,且必须是一维数组类型。
9、什么是命名参数?
答:参数传递的意义更明确
可以不按形参参数定义的顺序
结合可选参数,可以简化调用
10、什么是函数重载?可以通过哪些方式重载?
答: 当定义两种或多种具有相同名称但是签名(函数参数的个数、顺序、类型(不包括函数返回类型))不同的方法时,就称作重载(overloading)
11、什么是分部方法?使用什么关键字?有什么限制?
答:使用partial修饰符定义分部方法(partial method)
分部方法在分部类的一个部分中声明分部方法定义,而在分部类的另一个部分中声明分部方法实现
这两个声明必须具有相同的修饰符、类型、方法名、形参数列表
12、什么是外部方法?使用什么关键字?
答:当方法声明包含 extern 修饰符时,称该方法为外部方法(external method)。外部方法是在外部实现的(通常为dll库函数),故外部方法声明不提供任何实际实现,其方法体只由一个分号组成
13、属性一般使用哪两种访问器?它与字段的区别和联系是什么?自动实现的属性语法是什么?
答:get和set访问器。属性往往可以通过字段包装而来,字段通常为private,属性通常为public,字段是数据成员,属性是函数成员。
[属性修饰符] 类型 属性名{get;set;}[;]
14、构造函数的名字、个数、作用分别是什么?有没有返回值?
答:名字与类名相同,个数可以有多个,如果没有自己定义,系统会有一个默认的无参构造函数;但是自己定义了的话系统就没有这个默认的了。作用通常是一些初始化工作。没有返回值,不使用void。
15、析构函数的名字、个数、作用分别是什么?
答:为~类名,个数只能有一个。析构函数(destructor)用于实现销毁类的实例所需的操作,如释放对象占用的非托管资源(例如:打开的文件、网络连接等)
一,类的成员
第一种分类
1,描述状态的数据成员
- 描述类的状态:字段(类的变量)、常量(与类关联的常量值)、事件(可由类生成的通知)
- 可以是静态数据,与整个类相关;或实例数据,类的每一个实例都有它自己的数据副本
- 字段是与类相关的变量
- 常量是与类相关的常量,使用关键字const关键字来声明常量
- 事件是在发生某些行为时由类生成的通知,它可以让对象通知调用程序
2,描述操作的函数成员
- 用于提供操作类中数据的某些功能,包括方法、属性、构造函数、析构函数、运算符、索引器
- 方法是与某一个类相关的函数,可以是实例方法,也可以是静态方法
- 属性是字段的自然扩展。
- 属性和字段都是命名的成员,都具有相关的类型而且用于访问字段和属性的语法也相同。
- 字段表示存储位置,属性则通过访问器指定它们的值被读取或写入时需要执行的语句
第二种分类
1,静态成员
- 静态成员属于类,被这个类的所有实例所共享
- 实例成员属于对象(类的实例),每一个对象都有实例成员的不同副本
- 常量会隐式地声明为静态成员,其他没有用static修饰的成员都是实例成员或者非静态成员
2,实例成员
二,构造函数和析构函数
1,构造函数
定义:名称与类名相同的特殊方法,当类被实例化时,首先会执行构造函数
2,析构函数
定义:一种特殊的方法,其名称由类名前加一个符号~所构成,当类的实例无效时,这个函数被执行
三,静态成员和实例成员的特征
1,静态成员
(1)静态成员必须通过类名来引用。
(2)一个静态字段共享同一个存储位置。
四,this关键字
1)this引用类的当前实例
2)this不能在静态成员中使用
3)只能在实例构造函数,实例方法,实例访问器中使用