面向对象程序设计思想(上)

上传人:san****019 文档编号:70928845 上传时间:2019-01-19 格式:PPT 页数:26 大小:590.31KB
返回 下载 相关 举报
面向对象程序设计思想(上)_第1页
第1页 / 共26页
面向对象程序设计思想(上)_第2页
第2页 / 共26页
面向对象程序设计思想(上)_第3页
第3页 / 共26页
面向对象程序设计思想(上)_第4页
第4页 / 共26页
面向对象程序设计思想(上)_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《面向对象程序设计思想(上)》由会员分享,可在线阅读,更多相关《面向对象程序设计思想(上)(26页珍藏版)》请在金锄头文库上搜索。

1、计算机语言C#,第二章 面向对象程序设计思想(上),上一讲作业答案,1、可以用C#编写哪些类型的应用程序? 【解答】 1) 控制台应用程序。 2) Windows应用程序。 3) ASP.NET Web应用程序。 4) ASP.NET Web服务应用程序。 5)智能设备应用程序。 2、 什么是命名空间?命名空间和类库的关系是什么? 【解答】 1)命名空间是对类的一种逻辑上的分组,即将类按照某种关系或联系划分到不同的命名空间下。 2)命名空间又可以包含其它的命名空间,例如System.Windows.Forms,是指System命名空间下有Windows命名空间,Windows命名空间下有For

2、ms命名空间。 3) 所有类库都在规定的命名空间下。,学习目标,1、理解对象和类的概念 2、初步理解引用 3、掌握C#中如何表示“值” 4、初步掌握不同类型的值如何转换,引子1,(1) 所有东西都是对象 可将对象想象成一种新的类型; 同一类的对象具有相同的属性名称和方法; (2) 程序是一大堆对象的组合 为了告诉对象做什么,需向那个对象“发送一条消息”。具体地讲,可将消息想象为一个调用,它调用的是从属于目标对象的一个子例程或函数。,(3) 每个对象都有自己的存储空间,并且可以包含其他对象 (4)程序通过句柄(引用)访问对象 句柄中包含对象在内存中的存储地址,引子2,墨子 小取“白马,马也;乘白

3、马,乘马也;骊马,马也,乘骊马,乘马也。” 墨子在这里说的是,不论黑马白马,均是马的一种,既然马可以骑,那么白马和黑马都可以骑。 因此: 一个类可以是另一个类的子类; 父类所具有的属性和方法,子类也都有; 可以用父类的名称来表示子类对象,但不能有子类的名称来表示父类对象。,一、对象和类,1.1类 人们对事物的抽象描述,概括出该事物所具有的属性和方法,并将其进行封装,以供使用。 用class定义类,声明类的形式为: 附加声明 访问修饰符 class 类名称:基类 ,接口序列 属性 方法 ,例1,某公司员工类型有“计时工”、“计件工”和“合同工”三类,计时工的工资结算方式为工作时间乘以小时工资,请

4、编写程序计算计时工的工资。,public class HourlyWorker string name; int age; double wagePerHour; double workHours; public void setWagePerHour(double wagePerHour) this.wagePerHour = wagePerHour; public void setWorkHours(double workHours) this.workHours = workHours; public double earnings() return this.wagePerHour *

5、 this.workHours; ,public string getName() return this.name; public int getAge() return this.age; public void setName(string name) this.name = name; public void setAge(int age) this.age = age; ,1.2 对象,对象(实例):类的实例化。客观的。 对象在建立时分配了内存,创建对象实际上作了两个方面的工作: (1)使用new关键字分配内存; (2)使用构造函数初始化数据(构造函数是与类名同名的函数) 。 例:

6、HourlyWorker hw;/声明HourlyWorker类型的引用hw hw = new HourlyWorker(); /创建HourlyWorker对象,并由hw指向该对象,1.3使用对象,1、不直接使用对象,而是使用“引用” “引用”指该类型的变量并不直接存储所包含的实际数据,而是存储实际数据的地址。 C#中的引用类型有四种: 类、委托、接口和数组。 2、引用间赋值时传递的是存放对象的地址 3、当一个对象不被任何句柄引用时,视作“垃圾”。由.Net的垃圾回收机制自动销毁不再使用的对象。 垃圾回收机制是在它认为适当的时候自动回收不再使用的内存的。,测试,class Program s

7、tatic void Main(string args) HourlyWorker hw = new HourlyWorker(); hw.setName(“Tom“); hw.setAge(33); hw.setWagePerHour(8); hw.setWorkHours(32); Console.WriteLine(“0(1):2“, hw.getName(), hw.getAge(), hw.earnings(); Console.ReadLine(); 输出:Tom(33):256,二、C#中如何表示“值”,分为两类:值类型和引用类型。 值类型: 包括基本类型、枚举类型、结构类型。

8、引用类型: 包括类、接口、数组、委托。,2.1基本类型 P19,2.2整型,C#提供了九种整型: sbyte:1字节有符号 byte: 1字节无符号 short: 2字节有符号 ushort: 2字节无符号 int: 4字节有符号,最常用 uint: 4字节无符号 long: 8字节有符号 ulong:8 字节无符号 char:2字节,单个Unicode字符编码,例如:1,2.3浮点类型,float:4字节浮点数,常用。例如:35.0f double:8字节浮点数,常用。例如:2.7E+23 注意:对于直接数,如3.5,C#将其视作double类型。,2.4小数型,即decimal类型,共12

9、8个二进制位,具有28至29位十进制有效数字。适用于金融、货币等需要高精度数值的领域。,2.5布尔型,用bool表示,bool类型只有两个值true和false。 例如: bool isExist = false; bool b = (i0 ,2.6字符型,char型,为单个Unicode字符,字符型常量必须用单引号引起来 。 如果是字符串是单个字符的组合,对应的类型为string。string类型的常量用双引号将字符串引起来。 char和string类型均可以使用转义符。,2.7结构型,结构是复合值类型 对性能特别关注的情况下,可以考虑使用结构。 凡是使用结构实现的功能,均可以用类实现。 声

10、明struct类型的语法形式为: 附加声明 访问修饰符 struct 结构名称: 实现的接口 结构体;,三、类型转换,3.1、隐式转换 从低精度、小范围的数据类型转换为高精度、大范围的数据类型,可以用隐式转换。 例如: int k = 1; long i = 2; i = k; /隐式转换 3.2、显式转换 将大范围类型的数据转换为小范围类型的数据的时候,必须特别谨慎,因为此时有丢失数据的危险。 (1)大类型-小类型 (2)无符号有符号 (3)浮点型中只能将float转换为double,其余都不行 例如: float k = 3.5;,3.3使用Convert类转换,Convert类位于Sys

11、tem命名空间下,用于将一个值类型转换为另一个值类型。 using System; using System.Collections.Generic; using System.Text; namespace ConvertClassExample class Program public static void Main() double d1 = 23.5D, d2 = 23.4D; int i1 = Convert.ToInt32(d1); int i2 = Convert.ToInt32(d2); Console.WriteLine(“0,1“, i1, i2); int i = 0;

12、 bool b1 = Convert.ToBoolean(d1); bool b2 = Convert.ToBoolean(i); Console.WriteLine(“0,1“, b1, b2);,string s = “123“; i = Convert.ToInt32(s); Console.WriteLine(“0,1“, s, i); Console.ReadLine(); 输出结果: 24,23 True,False 123,123,四、课堂练习,1、参照例1中的“计时工”类设计“计件工”类和“合同工”类。 “计件工”的工资核算公式为:工资=加工件数*每件加工费; “合同工”工资核

13、算公式为:工资=每月底薪+加工件数*每件加工费。 2、使用下面数据创建对象,并输出,五、课后作业,1、C#语言中,值类型和引用类型有何不同? 2、C#中不同整型之间进行转换的原则是什么? 3、分析下面程序是否正确,若有错误,请指出原因: using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication3 class Program static void Main(string args) float f1 = 9.0f; float f2 = f1*3.0; Console.WriteLine(f2); ,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号