第5章_2-域和属性.pptVIP

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章_2-域和属性.ppt

类 -域和属性 继承 理解域 理解属性 静态类 静态属性 静态方法 1 域 定义:域(Field)又称为成员变量 含义:数据、静态特征 Java中称为属性。 问:为什么C#中不把它称为属性呢? 1 域 语法格式: private string name; private int a,b; 1 域 注意: 书写的位置—直接在类class中,不在某些方法中。在方法中的是局部变量。 类中的普通方法可以访问它。 初始化 直接赋初值 错误用法 构造方法 2 类成员的访问限制 public:外部对类的数据成员可以访问,很方便,但会有潜在的危险。 问:会有什么危险? private:数据成员为类所私有,安全了。 2 类成员的访问限制 2 类成员的访问限制 规则: 命名空间总是默认的public 类总是默认的private 类成员默认为private 对于一个类成员只能使用一个访问修饰符。private internal尽管是两个单词,但它是单个访问修饰符。 成员的作用域永远不超出包含它的类。 2 类成员的访问限制 推荐做法: 当使用某类时,类成员的可访问性决定了用户所能访问的类成员。如果把一个类的某个成员定义为private,那么该类的使用者就看不到或使用那个成员 应该只把那些要让类使用者看到的元素定义为public。减少public成员数量可以减少类的复杂性(从使用者角度看),而且使类的创建者便于对类进行维护,同时也便于为其提供文档。 3 属性 问:数据成员为类所私有(private),外界怎么访问这些数据呢? 使用方法存取字段 当前述MyTime类的字段hour, minute, second的访问属性使用private后,使用者便无法访问它们,也就是说,无法直接了解当前时间的小时数。 可以通过在MyTime类中增加一个GetHour( )方法来实现。 使用方法存取字段 如果还需要单独设置当前时间的小时数,可以再增加一个SetHour( )方法。 使用方法存取字段 优点:很多很多。。。 缺点: 这样的设计对于使用者来说,不方便了。因为他要分别记住2个方法,哪个方法是设置值的,哪个方法是获取值的。 有没有一种途径,它可以让使用者像使用公共的字段一样方便,又能让设计者能够进行安全地检查? 3 属性 我们可以使用属性来解决这个问题。 属性,从外部(类的使用者)来看,类似于类的字段。 从内部(类的作者)来看,类似于类的方法。 3 使用属性 如果只提供 get访问器, 那么这个属性是只读的。 如果只提供 set访问器,那么这个属性是只写的。 建议: 将所有字段都定义为private。 如果字段需要公开,请使用属性将其公开。 3 使用属性 命名规范: 域:首字母小写,name 属性:与域同名,首字母大写,Name 方法:首字母大写,Eat( Fruit f ) 练习 编写一个学生类,有学号、姓名、出生日期,要求输入的内容必须满足: 1)学号长度必须为12位 2)年龄必须介于18-30岁之间 使用属性完成 静态类 静态类只用于包含静态成员的类,它不能实例化,静态类的特性是防止继承,防止外部来创建对象。 static class MyUtility { public int data; //错误 protected int data; //错误 static string sr; } 静态类 静态类的几个注意点: 1.静态类不能有构造函数 2.静态类不能有任何实例成员。 3.静态类的成员不能有protected或protected internal访问保护修饰符。 静态类不能使用abstract或sealed修饰符。 静态类不能指定任何接口实现。 静态变量和非静态变量 数据成员包括:静态变量和非静态变量两种 静态变量:带有static 修饰符的变量称为静态变量。 非静态变量:不带有static修饰符声明的变量称为非静态变量,又叫实例变量。 类中的成员变量要么是静态,要么是非静态的。 静态成员变量是属于类所有的,非静态成员则属于类的实例——对象。 静态方法 静态方法: C#的类中可以包含两种方法:静态方法和非静态方法。 静态方法是一种 特殊的成员方法,它不属于类的某一个具体的实例,而是属于类本身。所以对静态方法不需要首先创建一个类的实例,而是采用类名.静态方法的格式 。 静态变量和非静态变量 静态类成员的调用 类名.成员字段 类名.成员方法([参数列表]) 非静态类成员的调用 类名 对象名 = new 构造函数名([参数列表]) 对象名.成员字段名 对象名.成员方法([参数列表]) 静态方法示例

您可能关注的文档

文档评论(0)

cai + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档