《C#入门经典(第6版)》学习笔记_第10章_定义类成员

第10章 定义类成员

本章内容:
 如何定义类成员
 如何使用类图添加成员
 如何控制类成员的继承
 如何定义嵌套的类
 如何实现接口
 如何使用部分类定义
 如何使用Call Hierarchy窗口

10.1 成员定义
在类定义中,也提供了该类中所有成员的定义,包括字段、方法和属性。
所有成员都有自己的访问级别,用下面的关键字之一来定义:
 public——成员可以由任何代码访问。
 private——成员只能由类中的代码访问(如果没有使用任何关键字,就默认使用这个关键字)。
 internal——成员只能由定义它的程序集(项目)内部的代码访问。
 protected——成员只能由类或派生类中的代码访问。
后两个关键字可以结合使用,所以也有protected internal成员。它们只能由程序集(项目)中派生类的代码来访问。
也可以使用关键字static来声明字段、方法和属性,这表示它们是类的静态成员,而不是对象实例的成员。

10.1.1 定义字段
用标准的变量声明格式(可以进行初始化)和前面介绍的修饰符来定义字段,例如:
public int MyInt; 使用标准的变量声明格式和修饰符来定义字段。
public readonly int MyInt=17; 使用关键字readonly,表示这个字段只能在执行构造函数的过程中赋值,或由初始化赋值语句赋值。
public static int MyInt; 使用static关键字将字段声明为静态。
静态字段必须通过定义它们的类来访问,而不是通过这个类的对象实例来访问。
另外,可以使用关键字const来创建一个常量。按照定义,const成员也是静态的,所以不需要使用static修饰符,如果使用static修饰符,则会产生一个错误。

10.1.2定义方法
方法使用标准函数格式、可访问性和可选的static修饰符来声明。
静态方法必须通过定义它们的类来访问,而不是通过这个类的对象实例来访问。
也可以在方法定义中使用下述关键字:
 virtual——方法可以重写。
 abstract——方法必须在非抽象的派生类中重写(只用于抽象类中)。
 override——方法重写了一个基类方法(如果方法被重写,就必须使用该关键字)。
 extern——方法定义放在其他地方。
如果使用了override,也可以使用sealed来指定在派生类中不能对这个方法做进一步的修改,即这个方法不能由派生类重写。
使用extern可以在项目外部提供方法的实现代码。

10.1.3 定义属性
属性定义方式与字段类似,但包含的内容比较多,比字段复杂,因为它们在修改状态前还可以执行一些额外操作,实际上,它们可能并不修改状态。
属性拥有两个类似于函数的块,一个块用于获取属性的值,另一个块用于设置属性的值。这两个块也称为访问器,分别用get和set关键字来定义,可以用于控制属性的访问级别。可以忽略其中的一个块来创建只读或只写属性。当然,这仅适用于外部代码,因为类中的其他代码可以访问这些代码块能访问的数据。还可以在访问器上包含可访问修饰符,例如使get块变成公共的,使set块变成受保护的。至少包含其中一个块,属性才是有效的(既不能读取也不能修改的属性没有任何用处)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值