C#—第九章类成员

 

静态成员:使用关键字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)只能在实例构造函数,实例方法,实例访问器中使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值