当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

武汉大学:《WEB程序设计》第六讲 C#的面向对象特性

资源类别:文库,文档格式:PDF,文档页数:47,文件大小:241.19KB,团购合买
一、初级特性:OO最基本的概念,即类和对象,包 二、中级特性:OO最核心的概念,即封装、继承和多态。 三、高级特性:由初级特性和中级特性引出的一些问题,如构造函数的使用、覆盖的规则、静态变量和函数等。
点击下载完整版文档(PDF)

C#的面向对象特性 ·初级特性:OO最基本的概念,即类和对 象,包 中级特性:OO最核心的概念,即封装、 继承和多态 高级特性:由初级特性和中级特性引出 的一些问题,如构造函数的使用、覆盖 的规则、静态变量和函数等

C#的面向对象特性 • 初级特性:OO最基本的概念,即类和对 象,包。 • 中级特性:OO最核心的概念,即封装、 继承和多态。 • 高级特性:由初级特性和中级特性引出 的一些问题,如构造函数的使用、覆盖 的规则、静态变量和函数等。 A-PDF Split DEMO

初级特性 ·面向对象技术最基本的概念是类和对象: 类是一个样板,以操作、表示和算法的形式完整地定义了 组对象的行为。它通常也是面向对象语言中的模块化、封装 和数据抽象的基础 对象是类的一个实例,是一个软件单元,它由一组结构化的 数据和在其上的一组操作构成。 对象 变量 方法

初级特性 • 面向对象技术最基本的概念是类和对象: – 类是一个样板,以操作、表示和算法的形式完整地定义了一 组对象的行为。它通常也是面向对象语言中的模块化、封装 和数据抽象的基础。 – 对象是类的一个实例,是一个软件单元,它由一组结构化的 数据和在其上的一组操作构成。 变量 方法 对象 A-PDF Split DEMO

抽象数据类型 ·类实际上为实际的物体在计算机中定义了一种抽象数 据类型。 抽象数据类型是仅由数据类型和可能在这个数据类型上进行 的操作定义的。 使用者只能通过操作方法来访问其属性,不用知道这个数据 类型内部各种操作是如何实现的。 class Car i int colorNumber: int doorNumber: int speed 现实生活中的对象 void brake0{..↓} void Speedup.; void Slow DownO{…,} 计算机中 对象的原型 Car my Car =new Caro; my Car Speedup

抽象数据类型 class Car { int colorNumber; int doorNumber; int speed; void Brake() { … } void SpeedUp() {…}; void SlowDown() { … } } Car myCar = new Car(); myCar.SpeedUp(); 计算机中 对象的原型 现实生活中的对象 • 类实际上为实际的物体在计算机中定义了一种抽象数 据类型。 – 抽象数据类型是仅由数据类型和可能在这个数据类型上进行 的操作定义的。 – 使用者只能通过操作方法来访问其属性,不用知道这个数据 类型内部各种操作是如何实现的。 A-PDF Split DEMO

变量、方法和消息 对象的三个基本要素: 变量:指对象的数据,用来保存对象的状态,又称为实例字段。 方法:指对象的功能单元。 消息:软件对象通过相互间传递消息来相互作用和通信。 个消息由三部分组成 消息 1.接受消息的对象 2.要完成方法的名字 3.方法需要的参数 如 my Car. SpeedUP(10); 对象B 对象A

变量、方法和消息 • 对象的三个基本要素: – 变量:指对象的数据,用来保存对象的状态,又称为实例字段。 – 方法:指对象的功能单元。 – 消息:软件对象通过相互间传递消息来相互作用和通信。 对象 B 对象 A 一个消息由三部分组成: 消息 1. 接受消息的对象 2. 要完成方法的名字 3. 方法需要的参数 如myCar.SpeedUP(10); A-PDF Split DEMO

类、对象和引用 类:C#所有的代码都是在某一个类中,因此不可能在 类之外的全局区域有变量和方法。 对象:C#中的对象相当于一块内存区域,保存对象特 有的类中所定义的数据 引用:C#中对于对象的操作全部通过引用进行。 引用类似于C++中的对象指针。但又有区别: 在C#中”引用“是指向一个对象在内存中的位置,在本质上是 一种带有很强的完整性和安全性的限制的指针。 当声明某个类、接口或数组类型的一个变量时,变量的值总 是某个对象的引用或者是null引用。 指针就是简单的地址而已,而引用除了表示地址而外,还是 被引用的数据对象的缩影,可以提供其他信息 指针可以有++、-运算,引用不可以运算

类、对象和引用 • 类: C#所有的代码都是在某一个类中,因此不可能在 类之外的全局区域有变量和方法。 • 对象:C#中的对象相当于一块内存区域,保存对象特 有的类中所定义的数据。 • 引用:C#中对于对象的操作全部通过引用进行。 • 引用类似于C++中的对象指针。但又有区别: – 在C# 中 ”引用 “是指向一个对象在内存中的位置,在本质上是 一种带有很强的完整性和安全性的限制的指针。 – 当声明某个类、接口或数组类型的一个变量时,变量的值总 是某个对象的引用或者是null引用。 – 指针就是简单的地址而已,而引用除了表示地址而外,还是 被引用的数据对象的缩影,可以提供其他信息。 – 指针可以有++ 、--运算,引用不可以运算。 A-PDF Split DEMO

类、对象和引用的声明 声明一个类: class类名{变量声明,方法声明} class Student long la, ∥学字号 char gender;∥性别 int classID /班级号,注意不能用clas作属性名 void Change Class( int aClassID)/更改班级 声明一个对象引用:类名引用名 Student student; 创建一个对象:new类构造函数 student= new Student),∥如果缺少这一步编译器会报错 ·使用对象:引用名.变量名/方法名(参数) student. id=200328013203194;

类、对象和引用的声明 • 声明一个类: class 类名 {变量声明,方法声明 } class Student { long id; //学号 char gender; //性别 int classID; //班级号,注意不能用class作属性名 void ChangeClass(int aClassID) //更改班级 { … } } • 声明一个对象引用:类名 引用名 Student student; • 创建一个对象: new 类构造函数 student = new Student(); //如果缺少这一步编译器会报错 • 使用对象:引用名 . 变量名 /方法名 (参数 ) student.id = 200328013203194; A-PDF Split DEMO

存储器分配 · Student student;∥声明一个 Student对象引用 student00000000 student= new studenti0),∥创建一个对象 new Studento student student 00000000 student OxOlabcdef 0000000000000000 0000000000000000 0000 0000 00000000 00000000 Student student2= student 对象赋值 student ox0labcdef H student2 OxOlabcdef 200328013203194 0000 00000000

存储器分配 • Student student; //声明一个Student对象引用 student • student = new Student(); //创建一个对象 new Student() student = student student • Student student2 = student; //对象赋值 – student student2 00000000 0000000000000000 0000 00000000 00000000 0x01abcdef 0000000000000000 0000 00000000 0x01abcdef 200328013203194 0000 00000000 0x01abcdef A-PDF Split DEMO

引用与对象举例 两个引用指向不同的对象 两个引用指向同一个对象 Student xiao- new Studento Student xiaoMing-new Studento Student xiao Fang=new Studento Student xiaoFang= xiaoMing xiaoMing. gender="M xiaoMing. gender="M xiaoFang.gender="F xiaoFang gender="F 说明: 说明 结果 XiaoMing.gender为M',因为 结果 XiaoMing. gender为F”,因为引 引用 xiaoMing和 xiaoFang指向不 用 XiaoMing和 xiaoFang指向同一个 同的对象。 对象。 ( xiaoMing== xiaoFang)的结果为 ( Xiaoming== xiaoFang)的结果为 false。此时对象相等的判断应该 true。 xiaoMing equals( xiaoFang)结 用 equals方法。 果也为tue。 XIaoMing 0x0labcdef ????????2????? XIaoMing 0x0labcdef ?????2222 XlaoF ang 0x0 labcdf5 ??????? XIaoFang0x0labcdf5 ??????? ???????9292 F

引用与对象举例 Student xiaoMing = new Student(); Student xiaoFang = new Student(); xiaoMing.gender = ‘M’; xiaoFang.gender = ‘F’; 说明: 结果xiaoMing.gender 为‘M’,因为 引用xiaoMing 和xiaoFang指向不 同的对象。 ( xiaoMing= = xiaoFang)的结果为 false。此时对象相等的判断应该 用equals方法。 0x01abcdef ???????????????? ‘M’ ???????? xiaoMing xiaoFang 0x01abcdf5 ???????????????? ‘F’ ???????? 两个引用指向不同的对象 Student xiaoMing = new Student(); Student xiaoFang = xiaoMing; xiaoMing.gender = ‘M’; xiaoFang.gender = ‘F’; 说明: 结果xiaoMing.gender 为‘F’,因为引 用xiaoMing 和xiaoFang指向同一个 对象。 ( xiaoMing= = xiaoFang)的结果为 true。xiaoMing.equals(xiaoFang) 结 果也为true。 两个引用指向同一个对象 0x01abcdef ???????????????? ‘F’ ???????? xiaoMing xiaoFang 0x01abcdf5 A-PDF Split DEMO

值的内存分配 int xiaoMing=100 Int xiaoFang XiaoMing, xiao Fang=200 说明: 结果 XiaoMing为100,因为预定义数据类型不存在指向同 个对象的问题。 ( xiaoMing== Xiao Fang)的结果为 false Xiao Mir 100 xiaoFang 200

值的内存分配 int xiaoMing = 100; int xiaoFang = xiaoMing; xiaoFang = 200; 说明: 结果xiaoMing 为100,因为预定义数据类型不存在指向同 一个对象的问题。 ( xiaoMing= = xiaoFang)的结果为false。 xiaoMing 100 xiaoFang 200 A-PDF Split DEMO

参数传递 C#编程语言支持的参数传递方式包括: 值传递:方法中的变量是传入变量的一个拷贝,方 法中对形参做的修改,不会影响方法外面的实参。 对于值类型数据,值传递就是传递了变量的值。 对于引用类型数据,值传递传递的是引用的值,即方法中 的形参和方法外的实参将指向同一对象。因此,通过形参 也能修改对象的实际内容。 地址传递:方法中的变量是传入变量的一个引用, 方法中对形参做的修改,也会影响方法外面的实参。 ref关键字,可以将参数声明为传址调用。 out关键字,声明只用于返回值的参数,可以不用初始化就 作为参数传递给方法

参数传递 • C#编程语言支持的参数传递方式包括: – 值传递:方法中的变量是传入变量的一个拷贝,方 法中对形参做的修改,不会影响方法外面的实参。 • 对于值类型数据,值传递就是传递了变量的值。 • 对于引用类型数据,值传递传递的是引用的值,即方法中 的形参和方法外的实参将指向同一对象。因此,通过形参 也能修改对象的实际内容。 – 地址传递:方法中的变量是传入变量的一个引用, 方法中对形参做的修改,也会影响方法外面的实参。 • ref关键字,可以将参数声明为传址调用。 • out关键字,声明只用于返回值的参数,可以不用初始化就 作为参数传递给方法。 A-PDF Split DEMO

点击下载完整版文档(PDF)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共47页,可试读16页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有