1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章C#40

C#语言程序设计 徐虹 xh27@163.com 第六章 类进阶 6.1 类成员 类的声明语句组成: 【特性】 【修饰符】 核心声明 多个修饰符的顺序可以是任意的。 public static int MaxVal static public int MaxVal 两者是等价的。 6.2 实例类成员 类的成员关联到实例,也就是每个实例拥有自己的类成员,这样的成员称为实例成员。改变一个实例字段的值不会影响任何其他实例中的成员的值。(见示例page_71) 6.3 静态字段 静态字段被类的所有实例共享,所有实例都访问同一内存位置。因此,如果该内存位置的值被一个实例改变了,这种改变堆所有的实例都可见。静态字段用static 修饰。 6.4 从类的外部访问静态成员 静态成员在类外部采用“类名.成员名”的方式访问。和实例变量不同的是,静态成员即使没有类实例也存在并可以访问。(见实例Page_73) 6.5 静态函数成员 静态方法是一种特殊的成员方法,它不属于类的某一个具体的实例。非静态方法可以访问类中的任何成员,而静态方法只能访问类中的静态成员。(见实例Page_74) 静态成员与实例成员总结 若将类中的某个成员声明为static该成员称为静态成员。类中的成员要么是静态,要么是非静态的。一般说来,静态成员是属于类所有的,非静态成员则属于类的实例化对象。 类的非静态成员属于类的实例所有,每创建一个类的实例,都在内存中为非静态成员开辟了一块区域。而类的静态成员属于类所有,为这个类的所有实例所共享。无论这个类创建了多少个副本,一个静态成员在内存中只占有一块区域。 以下示例代码演示了如何声明静态和非静态成员。 程序清单: class Test { int x; static int y; void F() { x=1;// 正确,等价于this.x=1 y=1;// 正确,等价于Test.y=1 } static void G() { x=1;//错误,不能访问this.x y=1;//正确,等价于Test.y=1 } static void Main(string[] args) { Test.t=new Test(); t.x=1;//正确 t.y=1;//错误,不能在类的实例中访问静态成员 Test.x=1;//错误,不能按类访问非静态成员 Test.y=1;//正确 } } 6.6 其他静态类成员类型 6.7 成员常量 成员常量要声明在类声明中。 class MyClass { const int IntVal=100; } const double PI=3.1416; // 错误 6.7 成员常量 初始化成员常量的值在编译期必须是可计算的。不能在成员常量声明以后给它赋值。(见实例Page_74) 常量就像静态量 即使没有类的实例,成员常量也可以使用。与静态量不同,成员常量没有自己的存储位置,而是在编译时被编译器替换。不能声明一个常量为static。(见实例Page_76) 6.8 属性 属性代表类的实例或类中的一个数据项的成员。使用属性和使用字段语法一样。属性有自己的名字、类型,可以被赋值和读取。但它没有被分配内存,它执行代码。有两个访问器的方法get 和set。 set访问器有一个单独的、隐式的值参value,其值与属性的类型相同,set访问器返回类型为void。 get访问器没有参数,必须包含一个return语句,返回与属性类型相同的值。 set和get可以以任意顺序声明。除了这两个访问器外属性不可以有其他的方法。不能显式的调用访问器。 属性一般会与某个字段相关联。把字段定义为private,把属性定义为public。(见示例Page_80) 属性和后备字段的命名规则 执行其他计算 属性访问器不只是可以对关联的后备字段传进传出数据,还

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档