第四讲类与类封装

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

具体产品
类和对象的概念
蓝图与产品的关系 抽象与具体的关系 Class & Object
抽象蓝图
具体产品
类(Classes)
类定义了一个“模板”,通过这个“模板”可以生 成一个或多个对象 z 类定义了一个对象的“状态”和“行为”
z
class class Student Student // //学生类 学生类 { { int int No; No; // //学号 学号 string string Name; Name; // //姓名 姓名 float float Score; Score; // //成绩 成绩
实例化(Instantiation)
实例化就是创建对象的过程 z 使用new关键字来创建
z
public public class class Student Student { { private private static static int int GlobalNo=2004070601; GlobalNo=2004070601; public public int int No; No; // //学号 学号 public public string string Name; Name; // //姓名 姓名 public float Score; // 成绩 public float Score; //成绩 public public int int Enrollment Enrollment () () // //注册,取得学号 注册,取得学号 { { this.No= this.No= GlobalNo++; GlobalNo++; } } public public float float Examine EΒιβλιοθήκη Baiduamine () () // // 考试,修改成绩 考试,修改成绩 { { this.Score=(new this.Score=(new Random(No)).Next(0,101); Random(No)).Next(0,101); } }
} }
学生类
对象2
对象 vs. 对象引用
对象存储在内存堆中,是系统开辟的一片连续 存储空间 z 对象变量保存的仅仅是对象的一个引用地 址,不是对象本身! 张飞
z
Student Student S; S; S S = = new new Student(); Student(); . . . . . . S S = = new new Student(); Student(); . . . . . .
第四讲 类与类的封装
西南林学院计算机与信息科学系 周开来
OOP(Object-Oriented Programming
OOP概述 (主要特征) z 类的封装 z 类的继承 z 多态机制
z
为什么要使用OOP?
为什么使用 object-oriented programming? z 现实世界中就是对象无处不在 z 客户(Customer) z 产品(Products) z 订单(Orders) z 文档(Documents) OOP的三大基本特征 z Encapsulation 封裝 z class z Inheritance 继承(Is-a关系与has-a关系) z Class hierarchy z Polymorphism 多态 z Abstraction class z Interface
z
对象的封装
有选择的信息隐藏 防止意外的数据破坏 更易于隔离和修复错误
对象的继承
通过继承,实现“功能”的重用 减少重复工作
平面直角高清晰 黑白 彩色
对象的多态
彩色图像
消息相同,作用对象 不同,其结果也不同
黑白图像
类和对象的概念
蓝图与产品的关系 抽象与具体的关系 Class & Object
抽象蓝图
行为方法,修改状态
二、类的声明
类的声明就是定义一个新类,其格式如下: [属性] [类修饰符][partial] class 标识符 [:基类] { …… 类的定义体 };
(1 ) 类声明包含一组可选的属性(C# 使程序员可以 创造新的说明性信息种类,称为属性) (2) 一组可选的类修饰符(public; protected; internal; private; abstract; sealed )
对象1
Student Student S2; S2; S2 S2 = = new new Student Student (); (); S2. S2. Name Name = =“ “关羽 关羽"; "; S2. S2. Enrollment(); Enrollment(); S2. S2. Examine(); Examine();
Student Student S1; S1; S1 S1 = = new new Student Student (); (); S1. S1. Name Name = =“ “张飞 张飞"; "; S1. S1. Enrollment(); Enrollment(); S1. S1. Examine(); Examine();
属性字段,描述状态
public public int int enrollment enrollment () () // //注册,取得学号 注册,取得学号 { { …… …… // // 实现代码 实现代码 } } public public float float examine examine () () // // 考试,修改成绩 考试,修改成绩 { { …… …… // //实现代码 实现代码 } } } }
2004070601 78
关羽 2004070602 89
类的声明
(3) Partial是2.0版新增加的一个关键字,表明该 类只是一个局部类(引入局部类后,就可以将 一个大类划分成若干个小局部类,分属于不同 的.CS文件中,但都必须属于同一个名称空间) (4) 关键字 class 和一个名称该类的标识符 (5) 接着是一个可选的继承基类,最后是可根 据需要后接一个分号的类体。
相关文档
最新文档