收藏 分销(赏)

学习情景面向对象程序设计.pptx

上传人:w****g 文档编号:13180810 上传时间:2026-01-30 格式:PPTX 页数:88 大小:10MB 下载积分:8 金币
下载 相关 举报
学习情景面向对象程序设计.pptx_第1页
第1页 / 共88页
学习情景面向对象程序设计.pptx_第2页
第2页 / 共88页


点击查看更多>>
资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,11/7/2009,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,学习情景面向对象程序设计,第一页,共88页。,面向对象,的软件开发技术是当今计算机技术发展的重要成果和趋势之一。,C#,是完全面向对象的程序设计语言,。,类和对象,是面向对象程序设计中的重要概念。,封装性、继承性和多态性,是面向对象的特点。,本讲主要介绍面向对象程序设计中的基本概念和基于C#的面向对象程序设计的方法。,2026/1/30 周五,2,C#程序设计实用教程,第二页,共88页。,7.1,对象和类,对象,对象是人们要进行研究的任何事物,颜色:灰色,排量:3.0,刹车,产地:德国,行驶,名字:保时捷,行为,状态,颜色:红色,排量:4.0,刹车,产地:意大利,行驶,名字:法拉利,行为,状态,回顾,现实生活中的,对象,描述汽车的特征和行为,有各自不同的状态,第三页,共88页。,7.1,类和对象,小汽车,颜色:灰色,排量:,3.0,刹车,产地:德国,行驶,名字:保时捷,行为,状态,类的实例化,是由类具体化对象,类,排量,颜色,行驶,刹车,归纳一组相似对象的共性,对象,属性,方法,类描述一组相似对象的共性,产地,名字,第四页,共88页。,7.1,类和对象,-,类,属性,型号,价格,里程,行为,起动,停车,行驶,属性,车轮数量,档的数量,行为,加速,换档,刹车,属性,名称,颜色,品种,行为,摇尾巴,吃东西,犬 吠,第五页,共88页。,7.1,类和对象,类:,相对对象而言,类似于蓝图,包含方法和数据,对象:,是类的实例,使用关键字 new 创建,对象具有行为,对象,厨房,起居室,浴室,书房,饭厅,储藏室,门廊,类,第六页,共88页。,7.1,类和对象,数据成员,成员方法,对象:桑塔纳,对象特征:黑色,2000,2.4T,上海大众,动态特征:载人,抽象,实例化,类:汽车,属性:颜色,型号,马力,生产厂家,服务:运输,数据值,执行的操作,类与对象的关系示例,第七页,共88页。,7.1,类和对象,类,:,是一种抽象的数据类型,它是所有具有一定共性的对象的抽象。本质上可以认为是对对象的描述,是创建对象的,“,模板,”,。,类的某一个,对象,则被称为是类的一个,实例,,是类的,实例化,结果。,对象,类,实例化,抽象,第八页,共88页。,课堂讨论,先有对象还是先有类?,应该先定义类才可以从类的定义声明对象,。,第九页,共88页。,7.2,面向对象语言的特点,设计规范,面向对象,封装,继承,多态,第十页,共88页。,7.2,面向对象语言的特点,-,封装,封装,就是对数据的,隐藏,,封装实现了把数据和操作这些数据的代码(即离散的部件)包装成一个对象,,而将数据和操作细节(方法)隐藏起来,。,私有数据,方法,方法,数据,对象A,对象B,公有数据,产品封装,模块化,信息隐藏,第十一页,共88页。,7.2,面向对象语言的特点,-,继承,继承,:指面向对象程序的两个类之间的一种关系。,被继承的类叫,父类,、,超类,或,基类,(SuperClass、,BaseClass)继承了父类所有属性和方法的类叫,子类,(SubClass).,C#只支持单继承。,继承实现了软件的重用。,第十二页,共88页。,在面向对象技术中,山地自行车、赛车以及串座双人自行车都是自行车类的子类,这个父子关系可以如图所示:,自行车,(父类),双人自行车,子类,山地自行车,赛车,7.2 面向对象语言的特点-继承,第十三页,共88页。,7.2,面向对象语言的特点,-,多态,多态是指一个程序中存在着,同名,的,不同方法,。在面向对象的程序中多态表现为,可以利用,重载,在同一类中定义多个同名的不同方法实现多态,也可以通过子类对父类,方法的覆盖,实现多态。,将军对士兵们命令:出发!,步兵步行,骑兵骑马,将军不必命令:步兵步行出发,骑兵骑马出发,第十四页,共88页。,7.3,类的定义,格式为:,类修饰符,class,类名,:,基类类名,类体,关键字,合法的标识符,属性(变量),方法,第十五页,共88页。,例7-1:定义一个车辆类(有两个变量,一个方法),class Vehicle,int Passengers;/乘客数,int Gas;/所耗燃料,void Run()/模拟汽车运行,if(Gas0),Gas-=10;,else,Console.Write(“没有油了,不能再跑了”);,成员变量(字段),成员方法,第十六页,共88页。,7.3,类的定义,在哪儿书写类的代码?,与你的源代码文件在一块,同一个命名空间,(,namespace,),下。,C#,允许在一个类中嵌套另一个类的定义。,建议,将类书写在另外一个,.cs,文件中。,第十七页,共88页。,C#,中类的定义方法,类定义的示例,7-3,:,class,人,/声明字段,public,string,姓名;,public,string,性别;,public,string,年龄;,/声明方法,public,void,吃饭(,string,食物),Console.Write(姓名+“正在吃:”+食物);,第十八页,共88页。,例如,7_2,:,public class,Cuboid /,类名为,Cuboid,/,声明字段,(,定义成员变量,),private,double length;,private,double width;,private,double high;,public,double Cubage(),return length*width*high,7.3,类的定义,声明字段,访问控制符,类的方法,第十九页,共88页。,1.,声明字段,(,成员变量,),与普通变量的声明格式相同。,在类体中,字段声明的位置没有特殊要求,习惯上将字段声明在类体中的最前面,以便于阅读。,7.3,类的定义,第二十页,共88页。,课本实例,5-2,class,Student,/字段声明,public,string,strName;,private,int,nAge;,/方法,void,pri(),Console.Write(姓名为:0,年龄为1,strName,nAge);,第二十一页,共88页。,7.4,创建类的对象,在,C#,中,我们使用,new,运算符来创建类的对象。,定义,Vehicle,类的对象,Vehicle vc=,new,Vehicle();,定义,Cuboid,类的对象,Cuboid cu=,new,Cuboid();,类名,对象名=,new,类名,();,实例化对象,实例化对象,第二十二页,共88页。,引用对象成员变量的语法形式为:,对象名,.,成员变量名,(,成员方法,),;,例如:,cu.length=2;,cu.width=3;,cu.high=5;,cu.Cubage();,访问对象成员,第二十三页,共88页。,class Vehicle,int Passengers;/,乘客数,int Gas;/,所耗燃料,void Run()/,模拟汽车运行,if(Gas0),Gas-=10;,else,Console.Write(“,没有油了,不能再跑了”,);,Vehicle vc=new Vehicle();,vc.Passengers=4;,vc.Gas=100;,vc.Run();,为,7-1,创建对象,第二十四页,共88页。,为,7-2,创建对象,例如7_2:,public class,Cuboid /类名为Cuboid,/声明字段(定义成员变量),double length;,public,double width;,private,double high;,public,double Cubage(),return length*width*high,Cuboid cu=new Cuboid,cu.length=2;,cu.width=3;,cu.high=5;,cu.Cubage();,第二十五页,共88页。,课本实例,5-2,创建对象,class,Student,/,字段,public,string,strName;,p,ublic,int,nAge;,public,void,PintInfo(),Console.Write(姓名为:0的学生年龄为:1,strName,nAge);,class,test,static,void,Main(,string,args),Student,stu=,new,Student,();,stu.strName=,张三,;,stu.,nAge=19;,stu.PintInfo();,第二十六页,共88页。,创建,7-3,对象,类和对象的例子:,人,姓名,性别,年龄,吃饭(),王秃子:人,王秃子,男,20,吃饭(),人,王秃子 =,new,人,();,王秃子.姓名 =,“王秃子“,;,王秃子.性别 =,“男”,;,王秃子.年龄 =,20,;,王秃子.吃饭(,“红烧肉”,);,第二十七页,共88页。,公有成员和私有成员,class student,p,ublic,string name;,/姓名,p,rivate,int age;,/年龄,private,string idNumber,;/身份证号,static void Main(string args),student myStudent=new student();,myStudent.name=,张三,;,myStudent.age=20;,私有成员,公有成员,实例化一个对象,可以访问,无法访问编译错误,第二十八页,共88页。,表7.1 类访问修饰符,访问修饰符,意,义,public,(公有),类可以在其他名字空间访问,internal,(内部),类只能为所在名字空间访问(默认此)(如果引用类库,则不能访问),表7.2成员访问修饰符,访问修饰符,意,义,public,(公有),访问不受限制,protected,(受保护),访问限于所在类和所在类的派生类,internal,(内部),访问限于所在名字空间内(,如果引用类库,则不能访问),private(私有),访问限于,所在类,。,7.3,类的定义,第二十九页,共88页。,公有成员和私有成员,public(公有级别),定义为公有访问级别的类的成员能够被外界的任何对象访问,没有任何限制。,class,Person,public string,Name;,/.,class,Program,public static void,Main(,string,args),Person,myself=,new,Person,();,myself.Name=,“Jiawei”,;,第三十页,共88页。,private(私有级别),定义为私有访问级别的类的成员只能被类的成员所访问,而不能被其它对象访问。,class,Person,private string,Name;,/.,class,Program,public static void,Main(,string,args),Person,myself=,new,Person,();,/!myself.Name=“Jiawei”;,公有成员和私有成员,第三十一页,共88页。,private(私有级别),正确使用方法,class,Person,private string,_name;,public void,SetName(,string,name),_name=name;,class,Program,public static void,Main(,string,args),Person,myself=,new,Person,();,myself.SetName(,“Jiawei”,);,公有成员和私有成员,第三十二页,共88页。,只有set时:只写属性,public class Cuboid /类名为Cuboid,C#允许在一个类中嵌套另一个类的定义。,第四十九页,共88页。,WriteLine(a=0,b=1,a,b);,get return high;set high=value;,private char _gender;,void pri(),if(i=5),static void Main(),nAge=value;,public class Student,属性在实现时类似于方法,可以编写代码控制用户对数据的存、取,增加安全性检查,public string Name;,声明字段(成员变量),课本实例,5-3,/,/学生类,/,class,Student,/字段,public,string,strName;,private,int,nAge;,/方法,public,void,SetAge(,int,_nAge),this.nAge=_nAge;,public,int,GetAge(),return,this.nAge;,class,UseStudent,static,void,Main(,string,args),Student,s=,new,Student,();,s.SetAge(10);,Console.WriteLine(s.GetAge();,第三十三页,共88页。,7.4,类和类的成员属性,class Student,private static string strName;,private static int nAge;,public,void,SetAge(,int,_nAge),this.nAge=_nAge;,public,int,GetAge(),return,this.nAge;,方法,Set,Age,(Value),和,Get,Age,(),分别读取和写入学生 Age,Student s;,s.SetAge(20);,int StuAge=s.GetAge(),每次都调用,GetId(),和,SetId(),方法会很繁琐,属性,第三十四页,共88页。,7.4,类和类的成员属性,class Student,public,string,strName;,private,int,nAge;,public string Age,get,return nAge;,set,nAge=value;,读取,ID 时调用,将值,赋给,ID 时调用,第三十五页,共88页。,7.4,类和类的成员属性,访问修饰符,数据类型 属性名,get,;,set,;,读/写属性,可以赋值和检索值,第三十六页,共88页。,7.4,类和类的成员属性,访问修饰符,数据类型 属性名,get,;,只读属性,只能检索值,第三十七页,共88页。,7.4,类和类的成员属性,访问修饰符,数据类型 属性名,set,;,只写属性,只能赋值,第三十八页,共88页。,7.4,类和类的成员,属性,属性是“聪明”的字段,“特殊”的方法,定义属性类似于定义一个方法,但使用属性时如同使用一个字段,class,Cat,private string name;,private int age;,static void Main(),Cat cat1=new Cat();,cat1.age=-13;,/错误,第三十九页,共88页。,属性的语法格式为:,访问修饰符,属性名,get,/,读访问器,/,执行体,return,;,/,执行体可任写,但须有,return,语句。,set,/,写访问器,/,执行体,=,value,;,/,执行体可任写,但须有,value,值给某字段语句。,7.4,类和类的成员,属性,第四十页,共88页。,7.4,类和类的成员,属性,示例:,public class Cat,private int age;,public int Age,get,return,age;,set,if(value=20),报告出错,else,age=,value,;,第四十一页,共88页。,7.4,类和类的成员,属性,示例,con6_2,:,Cat cat1=new Cat();,cat1.Age=1;,/使用Age属性的set访问器,int n=Cat.Age;,/使用Age属性的get访问器,cat1.Age=100;,/收到错误消息,第四十二页,共88页。,例如,7_2(,添加属性定义,),:,public class,Cuboid /,类名为,Cuboid,/,声明字段,(,定义成员变量,),private,double length;,private,double width;,private,double high;,/,声明属性,public,double Length,get return length;set length=value;,public,double Width,get return width;set width=value;,public,double High,get return high;set high=value;,/,声明方法,public,double Cubage(),return length*width*high,7.4,类和类的成员,属性,数据读取,属性名:与字段相关但不同,对数据值设置,关键字,要写入字段的值,第四十三页,共88页。,7.4,类和类的成员,属性,public class Student,int age=26;,/,姓名,private string name;,public string Name,get return name;,set name=value;,/问候,public void SayHi(),类的成员,字段,属性,方法,类名,第四十四页,共88页。,7.4,类和类的成员,属性,如果只提供了,get,,没有,set,,这样的属性为只读属性,如果只提供了,set,,没有,get,,只写属性,优点:,属性在使用时类似于类的字段,简单,属性在实现时类似于方法,可以编写代码控制用户对数据的存、取,增加安全性检查,可以设置只读或只写属性,第四十五页,共88页。,7.4,类和类的成员,属性,private int age;/年龄,public int Age,get return age;,set,if(value 0&value 0&value 100),age=value;,else,age=18;,控制私有字段的可访问性,保护内部数据的安全,建议类内部敏感字段使用,属性来控制访问,类型可以是各种数据类型,如:对象、数组等等,第四十八页,共88页。,小结,编写考试管理系统中的,Student,类,包含的属性,年龄(,0-100,)不符合的设为,18,姓名(只读属性),爱好(读写),给属性赋值并打印出来,第四十九页,共88页。,7.5,类的方法,-,方法的定义,语法,访问修饰符(可选),默认情况下为,private,访问修饰符,返回类型,(,参数列表,),/,方法主体,如果不需要返回任何值,方法可能返回,void,数据类型,方法是类或对象的行为,对象需要做某些事情,在类中添加方法,方法的定义,合法的标识符,不能加“;”,用逗号隔开变量定义,通过return返回值,如果返回类型是void,方法是否需要返回值?,第五十页,共88页。,【例5-9】,方法的定义。,class Motorcycle,public void StartEngine(),public void AddGas(int gallons),public int Drive(int miles,int speed)return 0;,2026/1/30 周五,51,C#程序设计实用教程,第五十一页,共88页。,7.5,类的方法,2.,调用方法,从方法被调用的位置,可以分为在方法声明的,类内部,调用该方法和在,类外部,调用方法。,内部调用,语法格式为:,方法名,(,参数列表,),在方法声明的类定义,外部调用,该方法实际上是通过类声明的对象调用该方法,,其格式为,:,对象名,.,方法名,(,参数列表,),第五十二页,共88页。,实例,6_1,:通过调用体积方法来实现计算长方体对象的体积,第五十三页,共88页。,7.5,类的方法,-,方法的调用,【,例,5-10】,方法的调用。,Motorcycle moto=new Motorcycle();,moto.StartEngine();,moto.AddGas(15);,moto.Drive(5,20);,第五十四页,共88页。,7.5,类的方法,-,从方法返回,一般来说有两种情况将导致方法返回。,(1),当遇到方法的结束花括号。,(2),执行到,return,语句。,有两种形式的,return,语句:一种用在,void,方法中(即无需有返回值的方法),另一种用在有返回值的方法中。,第五十五页,共88页。,【例5-11】,通过方法的结束花括号返回。,class MyClass,public void myMethod(),int i;,for(i=0;i=5),i=i*2;,Console.WriteLine(i);,return;,else,i=i*3;,Console.WriteLine(i);,return;,2026/1/30 周五,57,C#程序设计实用教程,static void Main(),MyClass mycls=new MyClass();,mycls.myMethod();,第五十七页,共88页。,使用下述形式的return语句从方法返回一个值给调用者:,格式:,return value;,【例5-13】通过方法的return语句返回值。,class MyClass,public int myMethod(),int i=8;,if(i=5),i=i*2;,return i;,else,i=i*3;,return i;,static void Main(),MyClass mycls=new MyClass();,Console.WriteLine(mycls.myMethod();,2026/1/30 周五,58,C#程序设计实用教程,第五十八页,共88页。,7.5 类的方法-方法的参数,在方法的声明与调用中,经常涉及方法参数,在,方法声明中,使用的参数叫,形式参数,(形参),在,调用方法,中使用的参数叫,实际参数,(实参)。在调用方法时,,参数传递,就是将,实参,传递给,形参,的过程。,2026/1/30 周五,59,C#程序设计实用教程,第五十九页,共88页。,7.5 类的方法-方法的参数,1.值参数,简单数据类型的参数为值参数,它表明实参与形参之间按值传递。,当这个方法被调用时,编译器为值参数分配存储单元,然后将对应的实参的值拷贝到形参中。,这种传递方式的好处是在方法中对形参的修改不会影响外部的实参。,2026/1/30 周五,60,C#程序设计实用教程,第六十页,共88页。,5.4.2 方法的参数,【例5-14】,使用值参数。,using System;,namespace ValueParameters,class MyClass,public void Swap(int x,int y),int k;,k=x;,x=y;,y=k;,2026/1/30 周五,61,C#程序设计实用教程,class Test,static void Main(),int a=8,b=10;,Console.WriteLine(a=0,b=1,a,b);,MyClass mycls=new MyClass();,mycls.Swap(a,b);,Console.WriteLine(a=0,b=1,a,b);,程序的运行结果为:,a=8,b=10,a=8,b=10,第六十一页,共88页。,7.5 类的方法-方法的参数,2.引用参数,用,ref,修饰符声明的简单数据类型参数为引用参数。,引用数据类型作为参数,引用参数并不创建新存储单元,它与实参变量同处一个存储单元。因此,对形参的修改就是对实参变量的修改。,基本类型,参数按,引用传递,时,,实参与形参前,均须使用关键字,ref,。,2026/1/30 周五,62,C#程序设计实用教程,第六十二页,共88页。,7.5 类的方法-方法的参数,【例5-15】,使用引用参数。,using System;,namespace ReferenceParameters,class MyClass,public void Swap(ref int x,ref int y),int k;,k=x;,x=y;,y=k;,2026/1/30 周五,63,C#程序设计实用教程,第六十三页,共88页。,class Test,static void Main(),int a=8,b=10;,Console.WriteLine(a=0,b=1,a,b);,MyClass mycls=new MyClass();,mycls.Swap(ref a,ref b);,Console.WriteLine(a=0,b=1,a,b);,程序的运行结果为:,a=8,b=10,a=10,b=8,2026/1/30 周五,64,C#程序设计实用教程,第六十四页,共88页。,7-6,构造函数,构造函数是类的一种特殊方法,每次创建类的实例都会调用它。,访问修饰符,(),/,构造函数的主体,语法:,/,默认构造函数,Student,(),_,class,=“,信管,;,示例:,第六十五页,共88页。,有以下几点特殊性,:,构造方法在创建对象时,被自动调用,。,构造方法的,方法名,与,类名相同,。,没有返回类型,和,返回值,。,构造方法可以,重载,。,通常用,public,修饰,7-6,构造函数,第六十六页,共88页。,6.3.1,声明构造方法,声明构造方法有两个特别要求,:,一是构造方法,不允许有返回类型,包括,void,类型,二是构造方法的名称必须,与类名相同,。,7-6,构造函数,第六十七页,共88页。,演示:示例 1,7-6,构造函数,class Student,private string _name;,private char _gender;,private string _class;,private uint _grade;,/默认构造函数,private Student(),_class=“信管;,static void Main(string args),/调用默认构造函数,Student obj=new Student();,Console.WriteLine(“班级=+obj._class);,Console.WriteLine(“成绩=+obj._grade);,第六十八页,共88页。,长方体类构造方法声明如下:,public class,Cuboid /,类名为,Cuboid,/,声明字段,(,定义成员变量,),private,double length;,private,double width;,private,double high;,/,声明构造方法,public Cuboid(double l,double w,double h),length=l;width=w;high=h;,/,声明属性,public,double Length,get return length;set length=value;,public,double Width,get return width;set width=value;,public,double High,get return high;set high=value;,/,声明方法,public,double Cubage(),return length*width*high,第六十九页,共88页。,7-6,构造函数,创建对象:,Cuboid cubiod=new Cuboid(l,w,h);,第七十页,共88页。,7-6构造函数,【例5-5】,通过构造函数,实现在产生一个学生对象时为其完成起名工作。,using System;,namespace Example_Construct,/,/学生类,/,public class Student,public string strName;/域,2026/1/30 周五,71,C#程序设计实用教程,第七十一页,共88页。,7-6构造函数,/,/,构造函数,为学生起名,/,public Student(string _strName),this.strName=_strName;,class Class1,static void Main(string args),Student s=new Student(张三);,Console.WriteLine(s.strName);,2026/1/30 周五,72,C#程序设计实用教程,第七十二页,共88页。,例:using System;,class MyClass,public int x;,public Myclass()/类MyClass的构造函数,x=10;,class ConsDemo,public static void Main(),MyClass t1=new MyClass();,MyClass t2=new MyClass();,Console.WriteLine(“0t1”,t1.x,t2.x);,运行结果如下:,第七十三页,共88页。,7-6,构造函数,-,参数化构造函数,访问修饰符,/,构造函数的主体,语法,:,(,参数列表,),/,参数化构造函数,Student,(string str,class,),_,class,=str,class,;,示例:,第七十四页,共88页。,构造函数也可以带参数。,例:using System;,class Fruit,public string color;,public string shape;,public Fruit(string c,string s)/类Fruit的构造函数,color=c;,shape=s;,class Test,public static void Main(),Fruit Orange=new Fruit(“orange”,”round”);/创建Orange实例,Console.WriteLine(“0,1”,Orange.color,Orange.shape);,运行结果如下:,第七十五页,共88页。,7-6,构造函数,-,参数化构造函数,/默认构造函数,private Student(),_class=“信管;,/参数化构造函数,private Employee(string strclass,string strName,char gender,uint grade),_class=strclass;,_name=strName;,_gender=gender;,_grade=grade;,public static void Main(string args),/调用默认构造函数,Student obj=new Student();,/调用参数化构造函数,Student obj1=new Student(“信管08“,”张亮亮“,男,98);,Console.WriteLine(“默认构造函数输出:,n班级=“+obj._class);,Console.WriteLine(“n参数化构造函数输出:,n班级=+obj1._class);,第七十六页,共88页。,析构函数,是用于执行清除操作的特殊方法,()0,/,析构函数的主体,语法,:,Student,(),示例:,第七十七页,共88页。,7.7,方法重载,6.4.1,成员方法重载,方法可以重载,即两个或两个以上方法有,相同的名称,。重载后的方法被调用时,可根据方法的,参数个数、类型,来区分应该调用哪个方法。,例如能同时处理整型与浮点型数据的重载方法:,public void Swap(ref int a,ref int b),public void Swap(ref float a,ref float b),第七十八页,共88页。,为什么要重载,public int Sum(int para1,int para2),return para1+para2;,整形参数,返回值整型,如果想让两个string型、两个double型相加,怎么做?,编写两个不同名字的方法,这样我们在进行调用时,要先判断是什么类型,能否不判断直接就能相加呢?,第七十九页,共88页。,方法的重载,同一个类中添加几个名字相同,参数与返回值不同的方法,public string,Sum(string,para1,string,para2),return para1+para2;,public,double,Sum(,double,para1,double,para2),return para1+para2;,调用时只要传递参数即可,无需判断类型,第八十页,共88页。,重载的方式,class Add,public string,Sum(string,para1,string,para2),public int Sum(int para1,int para2),基于不同类型参数的重载,class Add,public,int,Sum(,int,para1,int,para2),public int Sum(int para1,int para2,int para3,),相同类型不同参数个数的重载,不允许重载方法仅仅是返回值不同,第八十一页,共88页。,7.7方法重载,int smallest(int num1,int num2),Console.WriteLine(“0 和 1 相比,最小的是:,num1,num2);,if(num1 num2),return num1;,else,return num2;,int smallest(int num1,int num2,int num3),Console.WriteLine(“0,1 和 2 相比,最小的是:,num1,num2,num3);,if(num1 num2&num1 num3),return num1;,else if(num2 num1&num2 num3),return num2;,else,return num3;,具有不同数量的参数的方法重载,第八十二页,共88页。,例:方法重载。,using System;,class TestoverLoad,public void print(int i),Console.WriteLine(输出的整数=0,i);,public void print(string s),Console.WriteLine(输出的字符串=0,s);,public void print(double d),Console.WriteLine(输出的双精度数=0,d);,class test,public static void Main(),TestoverLoad app=new TestoverLoad();,app.print(6);,app.print(理解方法重载了吗?);,app.print(3.14);,运行结果为:,输出的整数=6,输出的字符串=理解方法重载了吗?,输出的双精度数=3.14,第八十三页,共88页。,7.7 方法重载-构造方法重载,构造函数重载,构造函数名称相同,参数个数或类型不同,从而构成重载。,2026/1/30 周五,84,C#程序设计实用教程,第八十四页,共88页。,7.7 方法重载-构造方法重载,【例5-6】,实现Time类的构造函数及其重载。,using System;,namespace Example_Construct
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服