VisualC#07-2面向对象

VisualC#07-2面向对象

ID:38513099

大小:144.50 KB

页数:30页

时间:2019-06-14

VisualC#07-2面向对象_第1页
VisualC#07-2面向对象_第2页
VisualC#07-2面向对象_第3页
VisualC#07-2面向对象_第4页
VisualC#07-2面向对象_第5页
资源描述:

《VisualC#07-2面向对象》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章面向对象和类7.5方法与重载7.5.1方法的声明方法是类中完成某一个或几个操作行为的成员。它的声明格式为:方法修饰符返回类型方法名(方法参数列表){方法实现部分;}方法修饰符主要有new、public、protected、internal、private、static、virtual、sealed、override、abstract和extern几种。其中的new、public、protected、internal、private、abstract、sealed与前面讲的类修饰符和类中成员修饰符的含义一样。如果修饰符为static则表明这个方法只能访问类中的静态成员,没有修

2、饰符static的方法可以访问类中任意成员。如果修饰符为virtual,则称这个方法为虚方法,反之称为非虚方法。对于非虚方法,无论是用此类定义的对象调用,还是被这个类的派生类定义的对象调用,方法的执行方式不变。对于虚方法,它的执行方法可以被派生类改变,这种改变是通过重载实现的。如果修饰符为extern,则表示这个方法是外部方法。返回类型可以根据函数实际需要设定,只要是合法的C#数据类型修饰符即可。在方法实现部分,可以通过return语句返回该数据类型。例如:usingSystem;classTest{publicstaticintMax(intx,inty){if(x>=y)re

3、turnx;elsereturny;}publicstaticvoidWriteMin(intx,inty){inttemp=x;if(x>y)temp=y;Console.WriteLine("{0}和{1}中的最小值是:{2}。",x,y,temp);return;}publicstaticvoidMain(){Console.WriteLine(“6和8中的最大值是:{0}。",Max(6,8));WriteMin(6,8);}}程序运行的结果为:6和8中的最大值是:8。6和8中的最小值是:6。实参形参非静态方法可以访问对象中包括静态成员在内的所有成员,而静态方法则只能访问

4、类中的静态成员。如下例代码:usingSystem;classmyClass{publicstaticintClassNumber;publicmyClass()//构造函数{ClassNumber++;}~myClass()//析构函数{ClassNumber--;}publicstaticintGetClassNumber()//静态方法{returnClassNumber;}}classTest{publicstaticvoidtestvalue(){myClassm1=newmyClass();myClassm2=newmyClass();Console.WriteLin

5、e(myClass.GetClassNumber());}publicstaticvoidMain(){myClassm=newmyClass();Console.WriteLine(myClass.GetClassNumber());//用类调用静态方法Test.testvalue();System.GC.Collect();//调用系统回收器Console.WriteLine(myClass.GetClassNumber());myClassm3=newmyClass();Console.WriteLine(myClass.GetClassNumber());}}程序运行结果

6、:1301第7章面向对象和类7.5.2方法的重载利用构造函数可以实现各变量初值的设定,但是所设定的初值仍有局限性,例如,当用户对类Pen声明一个对象myPen以后,对象myPen的变量成员Color就被赋予BLACK,Price就被赋予5。不管再声明什么对象,它的初值都会成为这两个默认值,利用函数重载可以改变这种状况。重载简单来说就是重新装载,具体来说,就是一个函数名,有多种实现的方法,它们的函数名相同,但参数的个数不同或是参数类型不同。在实现时系统会自动选择合适的类型和调用的函数相匹配。方法重载的格式就是在一个类中两次或多次定义同名的方法,这些同名的方法也包括从基类中继承而来的

7、方法。这些方法的名称相同,但每个方法的参数类型或个数不同,这样便于系统区分。例如Console类之所以能够实现对多种数据进行输出,就是因为它定义了该类成员函数WriteLine()的多个重载。publicstaticvoidWriteLine();publicstaticvoidWriteLine(int);publicstaticvoidWriteLine(float);publicstaticvoidWriteLine(long);publicstaticvoidWriteL

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。