- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 面向对象编程基础 主讲人:蔡菲 封 装 性 将类的某些数据和操作这些数据的代码隐藏起来,这就是封装 封装的好处: 可以隐藏类实现的细节 简化用户的使用 易于软件的更新、修订、维护。可以修改内部实现,但不影响用户的使用 3.2类 类和对象 类和对象是密切相关的,但并不相同。类包含了一组对象的特征和行为,是对象的框架。而对象是类的一个具体实例。例如:电话可以是一个类,而一部电话则是这个类的一个实例——对象。 对象是属于某个已知的类的,因此必须先定义类,然后才能定义对象。 对象 万物皆对象 世间万物皆为对象,狗、建筑、汽车……对象都具有状态和行为 对象都有类型 任何对象都是某个类的实例,是属于某个类的对象 阿土仔 ------〉人类 每个对象都利用别的对象来组建自己。 汽车 = 发动机 + 轮胎 + 方向盘 + 刹车 + …… 一只蛤蟆一张嘴,两只眼睛四条腿 换言之,你通过将已有的对象打成一个包,来创建新的对象。由此,你可以将程序的复杂性,隐藏在对象的简单性之下 类是对象的模板,它定义了一组对象的公共属性和行为(方法)。属性和方法共同称作类的成员 对象是类的实例,是具体的 对象必须使用 new 进行实例化才可以使用 new操作符用于一个类类型的实例即对象。 class A{}; A a=new A(); 表3.1 类修饰符 注意: 命名空间或编译单元内的类只有public和internal两种修饰符。默认是internal。 如果是内置的,就是作为另一个类型的成员,也称内部类型(inner type),这样的话,修饰符可以是全部可用修饰符,默认是private。 举例: class a {} //类a是internal class b { class a {} //类a是private } 3.2.2 类的成员 成员变量 类成员访问修饰符 public修饰符声明共有成员,对公有成员访问不受限制,允许类的使用者在类的内部、外部或者派生类中访问 private修饰符声明私有成员,对私有成员仅限于类中的成员可以访问 protected修饰符声明保护成员,对保护成员可以被类中成员或者派生类访问 Internal修饰符声明内部成员,对内部成员只有在同一程序集中的文件才是可访问的。 protected internal 可被类中的成员、继承的子类或在统一程序集中的文件可以访问 默认缺省访问修饰符为private 类成员的访问 常量 类的数据成员包括常量和字段。 常量的值仅可在编译时指定,运行时不允许修改,常量并不占用对象的空间,而是被编译到需要该常量的可执行代码中,常量的声明使用const修饰符。 1.常数声明 补充:静态成员和非静态成员 将类中的某个成员声明为static,该成员称为静态成员。 类中的成员要么是静态,要么是非静态的。 静态成员是属于类所有的,非静态成员则属于类的实例——对象。 类可以具有静态的成员,如静态字段、静态方法 使用 static 关键字修饰 静态成员相当于“全局”的,不依赖于某一个具体的对象 静态示例 using System; class StaticSample { 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 readonly与使用const的区别:简单的说, const型表达式的值在编译时形成, static readonly表达式的值到程序运行时才形成。 字段设计原则 不要提供公共的或受保护的实例字段 对不会更改的常量使用常量字段 对预定义对象实例使用公共静态只读字段 不要将可变类型的实例指定给只读字段 3.2.3 构造函数和析构函数 这表明构造函数在类的声明中可以有函数名相同,但参数个数不同或者参数类型不同的多种形式,这就是所谓的构造函数重载。 用new运算符创建一个类的对象时,类名后的一对圆括号提供初始化列表,这实际上就是提供给构造函数的参数。系统根据这个初始化列表的参数个数、参数类型和参数顺序调用不同的构造函数。 构造函数 构造函数是类的一种特殊方法,每次创建类的实例都会调用它 构造函数 参数化构造函数 构造函数的特点 构造函数的名字必须与类名相同。 是每次创
文档评论(0)