2022年第章面向对象编程技术.docx

上传人:Q****o 文档编号:27878406 上传时间:2022-07-26 格式:DOCX 页数:47 大小:115.33KB
返回 下载 相关 举报
2022年第章面向对象编程技术.docx_第1页
第1页 / 共47页
2022年第章面向对象编程技术.docx_第2页
第2页 / 共47页
点击查看更多>>
资源描述

《2022年第章面向对象编程技术.docx》由会员分享,可在线阅读,更多相关《2022年第章面向对象编程技术.docx(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选学习资料 - - - - - - - - - 第4章 面对对象编程技术面对对象的程序设计方法是当前程序设计的大势所趋;面对对象的程序设计方法是对结 构化程序设计方法的重新熟悉;在程序的设计中,方法总是与特定的数据结构亲密相关的,方法含有对数据结构的拜访,特定的方法只适用于特定的数据结构,因此方法与数据结构在 编程中应当是一个密不行分的整体,这个整体叫对象;C#通过类、对象、继承、多态等机制形成一个完善的面对对象的编程体系;4.1 类和对象类是 C#程序设计的基本单位;4.1.1 类和对象概述现实生活中的类是人们对客观对象不断熟悉而产生的抽象的概念,而对象就是现实生活 中的一个个实体;例如,

2、人们在现实生活中接触了大量的汽车、摩托车、自行车等实体,从 而产生了交通工具的概念,交通工具就是一个类,而现实生活中的详细的汽车、摩托车自行 车等就是该类的对象;面对对象程序设计的类从本质上和人们现实生活中的这一熟悉过程是相同的;例如在编 程实践中,人们常常使用按钮这一控件,每一个详细的按钮是一个按钮对象,而按钮类就是 按钮对象的抽象,并且人们把这一抽象用运算机编程语言表示为数据集合与方法集合的统一 体,然后再用这个类创建一个个详细的按钮对象;可以把类比作一种蓝图,而对象就是依据蓝图所创建的实例,可以把类比作生产模具,而对象就是由这种模具产生的实例(产品);所以人们又把对象叫做类的实例;类是对

3、事物 的定义,而对象就是该事物本身;在 Visual Studio.NET 集成环境中的,工具箱中的一个个控件,是被图形文字化的可视的 类,而把这些控件添加到窗体设计器中后,窗体设计器中的控件就是对象,即由工具箱中的 类创建的对象;C#中,类这种数据类型可以分为两种:一种是由系统供应的预先 类是一种数据类型,在 定义的,这些类在 .NET 框架类库中;一种是用户定义数据类型;在创建对象之前必需先定 义该对象所属的类;然后由类声明对象;类本质上是一种数据类型,所以类的用法与基本数据类型的用法基本相同,事实上,在 Visual Studio.NET 中像 int、 float 等基本数据类型也是特

4、殊的类;那么,用基本数据类型可 以声明变量,用类类型也可以声明变量,只不过类类型的变量叫类的对象或类的实例;1 / 25 名师归纳总结 - - - - - - -第 1 页,共 25 页精选学习资料 - - - - - - - - - 4.1.2 类定义类定义的格式与结构定义的格式相像,在类定义中需要使用关键字 class,其简洁的定义 格式为:class 类名 类体 “ 类名” 是一个合法的 C#标识符,表示数据类型(类类型)名称,“ 类体” 以一对大括号 开头和终止,在一对大括号后面可以跟一个分号;例如:class student / 类名为 student public string I

5、D ;public string Name ;public bool Sex ; ( 学 生 ) 的 类 , 类 体 中 包 括 学 生 的 学 号 上 例 中 , 定 义 了 一 个 名 为 “student ”(“ID ” )、姓名(“Name” )与性别(“Sex” );在上例的“ 类体” 中声明的数据都使用“public ” 修饰,“public ” (公共的)表示这些 数据可以直接进行拜访;假如仅从“student” 类的定义形式看,其与结构类型除了关键字外几乎没有任何差别;当 然这只是为了说明问题便利,这种定义方式并不符合面对对象程序设计的原就,由于类中缺 少了对数据的操作;“ 类

6、体” 包括类中的全部数据及对数据的操作,面对对象程序设计将数据与对数据的操作作 为一个整体,以类的形式进行定义,这种机制叫“ 封装” ;在“ 类体” 中,全部的数据及对数据的操作的集合叫类成员,类成员的种类许多,本章 仅介绍“ 字段” 、“ 属性” 、“ 方法” 与“ 构造函数” ;“ 字段” 是类定义中的数据,也叫类的变量;在上例中定义的“ID ” 、“Name” 与“Sex”等均为类中的字段;“ 属性” 用于读取和写入“ 字段” 值,“ 属性” 是字段的自然扩展,对用户而言,“ 属性”等同于“ 字段” 本身,对程序员而言,属性是一种读写“ 字段” 的特殊方法;“ 方法” 实质上就是函数,用

7、于对字段进行运算和操作,即对类中的数据进行操作,以实现 特定的功能;4.1.3 声明与使用对象定义类之后,可以用定义的类声明对象,声明对象后可以拜访对象成员;每一个类对象 均具有该类定义中的全部成员,正如每一个整型变量均可以表示同样的数值范畴一样;1. 声明对象 声明对象的格式与声明基本数据类型的格式相同:类名 对象名;例如:2 / 25 名师归纳总结 - - - - - - -第 2 页,共 25 页精选学习资料 - - - - - - - - - student S1; /声明一个同学类对象 S1 但是,对象声明后,需用“new” 关键字进行初始化,这样才能为对象在内存中安排储存 数据的空

8、间;初始化的格式:对象名 =new 类名 ;例如:S1=new student ; /为 S1 安排内存空间 可以将声明与初始化对象合二为一,例如:student S1=new student ; / 声明对象并初始化2. 拜访对象拜访对象实质是拜访对象成员,对对象变量成员的拜访与结构变量相同,使用“.” 运算 符;例如:S1.ID=12345 ;S1.Name= 张三 ;S1.Sex=true;上面的代码为对象S1 数据成员赋值; S2=S1;” 或“student 可以使用对象变量为另一对象变量整体赋值,例如,“student S2S2=S1;” ;这时,不需要使用new关键字对“S2”

9、初始化;可以使用对象中的某一成员;例如:string sName=S1.Name ; / 将对象 S1 的 Name 成员值赋给字符串变量 sName 4.1.4 值类型与引用类型类定义的类型与结构定义的类型虽然相像,但这两种类型却有很大的差别,这涉及到 C# 中变量储备方式的问题;从变量的储备方式看,C#中的变量可以分为值类型变量与引用类型变量;1. 值类型 值类型变量直接包含其本身的数据,因此每个值类型变量本身就包含有赋给它的值;在 C#中,内置数据类型除了字符串(string )类型与对象(object)类型外其余均为值类 int X =42 ;” ,整型变量 X 就是值类型;型;枚举类

10、型与结构类型也是值类型;例如“2. 引用类型与值类型不同,引用类型变量不包含本身的数据,只是储备对数据的引用,数据储存在 内存的其他位置;例如:using System ;class Class1 class Test public int A ; static void Mainstring args 3 / 25 名师归纳总结 - - - - - - -第 3 页,共 25 页精选学习资料 - - - - - - - - - int X=42,Y=X ;Test T1=new Test ;T1.A=42 ;Test T2=T1 ;Y=100 ;T2.A=100 ; 引用类型与值类型在内存中

11、的储备形式如图 4-1 所示;int X=42 ;42 T1.A=42 ;42 的引用 42 图 4-1 值类型与引用类型的储备值类型变量可以使用变量来赋值,引用类型变量也可以使用变量来赋值;例如上例中的代码:int X=42,Y=X ;Test T1=new Test ;T1.A=42 ;Test T2=T1 ; / 使用对象变量赋值但是,值类型与引用类型用变量赋值的性质却不同,如图 4-2 所示;int X=42 ;int Y=X ;42 42 T1.A=42 ;42 的引用 42 Test T2=T1 ;42 的引用图 4-2 值类型与引用类型用变量赋值从图中可以看到,用变量“X ” 为

12、变量“Y ” 赋值,是将“X ” 所在内存中的值复制给了“ Y ” ;而用变量“T1” 为“T2” 赋值,就是将“T1” 对数据的引用复制给了“T2 ” ,即两个对象变量使用的是同一内存中的数据,也就是说,用“T1” 为“T2 ” 赋值不需要使用new 关键字对对象初始化,也就没有为对象“T2” 安排储备数据的内存空间;这样,在改变变量值时,将发生本质差别;例如上例中的代码:Y=100 ; /Y 的值为 100, X 的值仍是 42 T2.A=100 ; /不仅 T2 的值为 100,T1 的值也为 100 4.1.5 拜访掌握在上面类定义的例子中,声明类的数据成员(字段)时,均使用publi

13、c 进行修饰, public叫拜访修饰符;声明类中的成员时,使用不同的拜访修饰符,表示对类成员的拜访权限不 同,或者说拜访修饰符确定了在什么范畴可以拜访类成员;4 / 25 名师归纳总结 - - - - - - -第 4 页,共 25 页精选学习资料 - - - - - - - - - C#中最常用的拜访修饰符及其意义,如表 4-1 所示;表 4-1 拜访修饰符拜访修饰符 意义public (公有)拜访不受限制,可以被任何其他类拜访private (私有)拜访只限于含该成员的类,即只有该类的其他成员能拜访protected(爱护)拜访只限于含该成员的类、及该类的派生类在类定义中,假如声明成员没

14、有使用任何拜访修饰符,就该成员被认为是私有(private )的;假如不涉及继承,private 与 protected 没有什么区分;在类定义中,假如成员被声明为private 或 protected ,就不答应在类定义外使用点运算符拜访,即在类定义外,点运算符只能拜访 public 成员;例如在下面的类定义中:class student / 类名为 student private string ID ; / 私有public string Name ; / 公有protected bool Sex ; / 爱护 student S1=new student ;S1.ID=12345 ; /

15、非法, ID 为 private S1.Name= 张三 ; / 合法, Name 为 public S1.Sex=true; / 非法, Sex 为 protected 在类定义外使用点运算符拜访“ID ” 与“Sex” 是非法的,而拜访“Name” 就是合法的,由于“ID ” 与“Sex” 是 private 或 protected 的,而“Name” 就是 public 的;通常,在类定义中,数据成员(字段)被声明为private 或 protected ,从而实现所谓的数据隐匿,以确保不能在类外随便拜访类的数据成员;而其他种类的成员就被声明为 public ,以通过这些成员实现对类的数

16、据成员的拜访;4.2 属性对私有或爱护数据成员常见的拜访是读取与设置修改数据值,在类定义外部,这种拜访 可通过属性成员实现;通过属性可以掌握对数据的拜访方式,甚至设置数据可接受的值域;4.2.1 声明属性在类定义中声明属性的格式为:拜访修饰符 类型 属性名 可以将属性声明为读写属性、只读属性或只写属性;1. 声明读写属性修改 student 类定义添加属性声明:class student / 类名为 student /声明字段5 / 25 名师归纳总结 - - - - - - -第 5 页,共 25 页精选学习资料 - - - - - - - - - private string id ;pr

17、ivate string name ;private bool sex ;/声明属性 public string ID get return id ; set id=value ; public string Name get return name; set name=value; public bool Sex get return sex; set sex=value ; 在属性声明中,get 与 set 叫属性拜访器;get 完成对数据值的读取,return 用于返回读取的值; set 完成对数据值的设置修改,value 是一个关键字,表示要写入数据成员的值;属性名应和其要拜访的数据成

18、员名相关但不相同,可以实行数据成员名全用小写,而属性名的单词首字母大写的方式,如数据成员名为name,就对应的属性名为Name;6 / 25 名师归纳总结 - - - - - - -第 6 页,共 25 页精选学习资料 - - - - - - - - - 2. 声明只读或只写属性 在属性声明中,假如只有 get 拜访器,就该属性为只读属性;例如:public bool Sex get return sex; 只读属性意味着,数据成员的值是不能被修改的;在属性声明中假如只有 set 拜访器,就该属性为只写属性;只写属性在程序设计中不常使 用;4.2.1 使用属性属性成员的使用就犹如公有数据成员的

19、使用一样;可以为可写的属性赋值,可以用可读 的属性为其他变量赋值;以 student 类为例:student S1=new student ;/用属性设置修改数据成员值 S1.ID=12345 ;S1.Name= 张三 ;S1.Sex=true;/用属性读取数据成员值为其他变量赋值 bool SSex=S1.Sex ;假如属性为只读的,就属性不能显现在赋值运算符的左边;在 C#程序设计中,窗体与控件的属性就是这类成员,其中在属性窗口显示的属性,均为 可读写属性,窗体与控件的只读属性只能在代码中使用;4.3 方法方法是把一些相关的语句组织在一起,用于解决某一特定问题的语句块;方法必需放在 类定义

20、中;方法同样遵循先声明后使用的规章;4.3.1 声明与调用方法方法的使用分声明与调用两个环节;1. 声明方法声明方法最常用的格式:拜访修饰符 返回类型 方法名 参数列表 方法的拜访修饰符通常是 public ,以保证在类定义外部能够调用该方法;方法的返回类型用于指定由该方法运算和返回的值的类型,可以是任何值类型或引用类型数7 / 25 名师归纳总结 - - - - - - -第 7 页,共 25 页精选学习资料 - - - - - - - - - 据,如,int、string及前面定义的 void ;student 类;假如方法不返回一个值,就它的返回类型为方法名是一个合法的 C#标识符;参数

21、列表在一对圆括号中,指定调用该方法时需要使用的参数个数、各个参数的类型,参数之间以逗号分隔;参数可以是任何类型的变量;假如方法在调用时不需要参数,就不用指定参数,但圆括号不能省;实现特定功能的语句块放在一对大括号中,叫方法体,“ ” 表示方法体的开头,“ ”表示方法体的终止;假如方法有返回值,就方法体中必需包含一个return 语句,以指定返回值,该值可以是变量、常量、表达式,其类型必需和方法的返回类型相同;假如方法无返回值,在方法体中可以不包含return 语句,或包含一个不指定任何值的return 语句;例如下面的方法声明:public int IntMaxint a,int b int

22、c ;ifab c=a;else c=b;return c; 该方法的功能是求两个整数中较大的整数,并将该整数返回;该方法的返回类型是一个整型值,方法名称为“IntMax ” ,参数列表中有两个整型变量参数“a” 与“b” ,方法体中有一个 return 语句,该语句指定的返回值是一个整型变量 c;该方法体中的语句块也可以用条件表达式合并为一句:“return ab.a:b;” ;这时,return 指定的返回值是一个条件表达式, return 语句把该表达式运算的结果返回;2. 调用方法从方法被调用的位置,可以分为在方法声明的类定义中调用该方法和在方法声明的类定义外部调用方法;在方法声明的类

23、定义中调用该方法的格式为:方法名 参数列表 在方法声明的类定义中调用该方法,实际上是由类定义内部的其他方法成员调用该方法;例如在类定义内部调用求较大整数函数:class CLASSMAX public int GetMaxint a,int b / 其他方法成员 return IntMaxa,b ; / 在类定义 CLASSMAX内部调用方法IntMax 8 / 25 名师归纳总结 - - - - - - -第 8 页,共 25 页精选学习资料 - - - - - - - - - public int IntMaxint a,int b / 求较大整数函数 return ab.a:b; 在方法

24、声明的类定义外部调用该方法实际上是通过类声明的对象调用该方法,其格式 为:对象名 .方法名 参数列表 【例 4-1】创建一个掌握台应用程序,并创建一个类,该类仅包含求两个数中较大数的方法 成员,在 Main 方法中调用该方法;using System ;class Class1 class CLASSMAX / 定义一个类 public int IntMaxint a, int b return ab.a:b ; static void Mainstring args int X=42,Y ;Y=100 ;CLASSMAX classmax=new CLASSMAX; / 声明一个对象 int

25、 C=classmax.IntMaxX,Y; / 调用对象方法 Console.Write 较大的值为: ;Console.WriteLineC ;Console.ReadLine ; 程序运行的结果为:较大的值为: 100 4.3.2 参数传递在方法的声明与调用中,常常涉及方法参数,在方法声明中使用的参数叫形式参数(形 参),在调用方法中使用的参数叫实际参数(实参);在调用方法时,参数传递就是将实参 传递给形参的过程;以【例 4-1】为例,声明方法时的形参如下:9 / 25 名师归纳总结 - - - - - - -第 9 页,共 25 页精选学习资料 - - - - - - - - - pu

26、blic int IntMaxint a,int b 调用方法时的实参如下:classmax.IntMax X,Y 这样就完成了形参加实参的结合,其传递关系如图 4-3 所示;方法调用: classmax.IntMaxX, Y 方法声明: public int IntMaxint a, int b图 4-3 形参加实参方法参数传递按性质可分为按值传递与按引用传递;1. 按值传递参数按值的方式传递是指当把实参传递给形参时,是把实参的值复制(拷贝)给形参,实参和形参使用的是两个不同内存中的值,所以这种参数传递方式的特点是形参的值发生改 变时,不会影响实参的值,从而保证了实参数据的安全;按值传递如图

27、4-4 所示;实参形参传递图 4-4 按值传递示意基本类型的参数在传递时默认为按值传递;2. 按引用传递方法只能返回一个值,但实际应用中常常需要方法能够修改或返回多个值,这时只靠 return 语句明显是无能为力的;假如需要方法返回多个值,使用按引用传递参数的方式可以 实现这种成效;按引用传递是指实参传递给形参时,不是将实参的值复制给形参,而是将实参的引用传 递给形参,实参加形使用的是一个内存中的值;这种参数传递方式的特点是形参的值发生改 变时,同时也转变实参的值;按引用传递分基本数据类型与类对象数据类型两种情形,其传递如图 4-5 与图 4-6 所示;实参传实参传形参递递形参 图4-5 基本

28、类型按引用传递示意 图 4-6 类对象按引用传递示意基本类型参数按引用传递时,形参实际上是实参的别名;基本类型参数按引用传递时,实参加形参前均须使用关键字 ref;【例 4-2】编写一个掌握台应用程序,在程序中添加一个交换两个整型变量值的方法;调用 该方法将两个整型变量的值进行交换并输出交换前后的结果;using System ;10 / 25 名师归纳总结 - - - - - - -第 10 页,共 25 页精选学习资料 - - - - - - - - - namespace 数值交换 class Class1 public void Swapref int a,ref int b / /

29、数值交换 int c=a ;a=b;b=c; static void Mainstring args int A=60,B=80 ;形参 a、 b 为引用类型Console.WriteLine交换前 A 、 B 的值: 0 , 1,A,B;Class1 c=new Class1 ;c.Swapref A,ref B ; / 以引用方式传递实参 A、 B Console.WriteLine 交换后 A 、 B 的值: 0 , 1,A,B;Console.ReadLine ; 程序运行结果:交换前 A、 B 的值: 60, 80 交换后 A、 B 的值: 80, 60 由于在 Swap 方法中,对

30、引用形参 a、b 的值的修改,就是对实参 A 、B 的值的修改,所以方法 Swap 胜利地完成了对 A 、B 数据的交换功能,相当于返回了两个值,这在按值传递的方式下是无法实现的;类对象参数总是按引用传递的,所以类对象参数传递不需要使用ref 关键字;类对象参数的传递,实际上是将实参对数据的引用复制给了形参,所以形参加实参共同指向同一个内存区域;【例 4-3】编写一个掌握台应用程序,该程序工程名称为“ 类对象参数” ,程序中有两个类定义,一个是创建程序时系统自动创建的类 class1,一个是用户自定义的 student 类;在class1 类中声明一个方法,该方法以 student 类对象为参

31、数;在 class1 类中的 Main 方法中调用该方法;using System ;namespace 类对象参数 class student /类名为 student /声明字段private string id ;11 / 25 名师归纳总结 - - - - - - -第 11 页,共 25 页精选学习资料 - - - - - - - - - private string name ;private bool sex ;/声明属性 public string ID get return id ; set id=value ; public string Name get return n

32、ame; set name=value; public bool Sex get return sex; set sex=value; class Class1 public void StudentF1student ST1/ / 修改形参数据成员的值 ST1.ID=56789 ;ST1.Name= 张三 ;12 / 25 以对象 ST1 为形参名师归纳总结 - - - - - - -第 12 页,共 25 页精选学习资料 - - - - - - - - - ST1.Sex=true ; static void Mainstring args string SSex ;student S1;

33、 / 声明一个同学类对象 S1 S1=new student ; / 为 S1 安排内存空间 S1.ID=12345 ;S1.Name= 李平 ;S1.Sex=false ;if S1.Sex=true SSex=男 ;else SSex=女 ;同学学号 :+S1.ID+ 姓名 :+S1.Name Console.WriteLine + 性别 :+SSex ; / 输出对象 S1 的值Class1 c=new Class1 ; / 声明对象c 以调用方法StudentF1 c.StudentF1S1 ; /以对象 S1 为实参调用方法 if S1.Sex=true SSex=男 ;else S

34、Sex=女 ;Console.WriteLine 同学学号 :+S1.ID+ 姓名 :+S1.Name + 性别 :+SSex ; / 输出对象 S1 的值 Console.ReadLine ; 程序运行结果:同学学号: 12345 姓名:李平 性别:女同学学号: 56789 姓名:张三 性别:男结果的第一行为调用方法前对象 S1 的值,结果的其次行为调用方法后对象 S1 的值;虽 然在 Main 方法中并未对对象 S1 进行修改,但由于调用方法 StudentF1 时,将 S1 传递给了ST1,而类对象参数是按引用传递的,所以在方法 StudentF1 中对 ST1 的修改,就是对 S1 的

35、 修改,因此,结果的其次行,S1 的值发生了变化;4.3.3 重载方法有时候方法实现的功能需要针对多种类型的数据,虽然C#有隐式转换功能,但这种转换在有些情形下会导致运算结果的错误,而有时数据类型无法实现隐式转换甚至根本无法转 换;例如:using System ;class Class1 13 / 25 名师归纳总结 - - - - - - -第 13 页,共 25 页精选学习资料 - - - - - - - - - public void Swapref int a,ref int b int c=a;a=b;b=c; static void Mainstring args int A=6

36、0,B=80 ;Console.WriteLine 交换前 A 、 B 的值: 0 , 1,A,B;Class1 c=new Class1 ;c.Swapref A,ref B ; / 调用交换值方法 Console.WriteLine 交换后 A 、 B 的值: 0 , 1,A,B;Console.ReadLine ; 上例中的交换方法只能实现两个整型变量的值交换,无法通过隐式或显式转换来实现其 他类型变量的值交换;例如在上例的主方法中添加如下代码:float fA=5.2f,fB=6.0f;ref float 转换为ref int ” 的编译错误;c.Swapref fA,ref fB;运

37、行程序时,将显现“ 无法从为了能使同一功能适用于各种类型的数据,C#供应了方法重载机制;方法重载是声明两个以上的同名方法,实现对不同数据类型的相同处理;方法重载有两点要求: 1 重载的方法名称必需相同; 2 重载的方法,其形参个数或类型必需不同,否就将显现“ 已经定义了一个具有相同类 型参数的方法成员” 的编译错误;假如要使上例中的交换方法能同时处理整型与浮点型数据,重载的方法声明如下:public void Swapref int a,ref int b public void Swapref float a,ref float b 声明白重载方法后,当调用具有重载的方法时,系统会依据参数的

38、类型或个数寻求最匹配的方法予以调用;依据前述的例子,当执行“c.Swapref A,ref B ;” 调用时,系统会调用“public void Swapref int a,ref int b ” 方法,当执行“c.Swapref fA,ref fB ;” 调用时,系统会调用“public void Swapref float a,ref float b ” 方法,从而实现对不同的数据类型进行相同处理;【例 4-4 】创建一个掌握台应用程序,在该程序中实现对两个整型、浮点型、双精度型、十进制型与字符型数据比较大小的功能;using System ;namespace 方法重载 _比较值的大小

39、14 / 25 名师归纳总结 - - - - - - -第 14 页,共 25 页精选学习资料 - - - - - - - - - class Class1 /比较值大小的方法声明 public int Maxint a, int b return ab.a:b ; public float Maxfloat a, float b return ab.a:b ; public double Maxdouble a, double b return ab.a:b ; public decimal Maxdecimal a, decimal b return ab.a:b ; public cha

40、r Maxchar a, char b return ab.a:b ; static void Mainstring args int iA=60,iB=80;float fA=5.2f,fB=8.8f;double dA=6.2,dB=7.2 ;decimal mA=8.2m,mB=9.8m;char cA=a,cB=b ;Class1 c=new Class1 ;Console.WriteLineiA与 iB 较大的值为:0,c.MaxiA,iB;Console.WriteLinefA与 fB 较大的值为: 0,c.MaxfA,fB;Console.WriteLinedA与 dB 较大的值

41、为: 0,c.MaxdA,dB;Console.WriteLinemA与 mB 较大的值为: 0,c.MaxmA,mBConsole.WriteLinecA与 cB 较大的值为: 0,c.MaxcA,cB;Console.ReadLine ; 程序运行结果为:iA 与 iB 较大的值为:80 15 / 25 名师归纳总结 - - - - - - -第 15 页,共 25 页精选学习资料 - - - - - - - - - fA 与 fB 较大的值为: 8.8 dA 与 dB 较大的值为:7.2 mA 与 mB 较大的值为: 9.8 cA 与 cB 较大的值为: b 在上面的程序例题中,由于 float 类型可以隐式

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

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁