g第7章方法.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《g第7章方法.ppt》由会员分享,可在线阅读,更多相关《g第7章方法.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第7章章 方法方法n前言前言n7.1 方法的定义和调用方法的定义和调用n7.2 方法的参数方法的参数n7.3 方法的重载方法的重载 n7.4 静态和非静态方法静态和非静态方法n总结总结前言前言在面向过程的在面向过程的C语言中语言中,通常通常 可分为可分为数据数据和和对数据的操作对数据的操作两大部分两大部分在面向对象的在面向对象的C+中中,大多数情况下大多数情况下,数据数据 成为类的数据成员成为类的数据成员 对数据的操作对数据的操作 成为类的方法成员成为类的方法成员在在C#中中,任何事物都必须封装在类中任何事物都必须封装在类中 故故C#中中没有全局变没有全局变(常常)量和全局函数的概念量和全局
2、函数的概念 返回首页7.1 方法的定义与调用方法的定义与调用n7.1.1 方法的定义方法的定义n7.1.2 方法的调用方法的调用返回首页7.1.1 函数的定义函数的定义C#中中的的每每一一个个函函数数一一般般从从五五个个方方面面来来进进行行定定义义:方方法法修饰符、返回类型、方法名、形式参数表和方法体。修饰符、返回类型、方法名、形式参数表和方法体。定义一个函数的语法格式为:定义一个函数的语法格式为:修饰符修饰符 ()方法体方法体例如:例如:public int max(int a,int b)int t;if(ab)t=a;else t=b;return t;返回上节例例7-1:给出以下程序的
3、运行结果。给出以下程序的运行结果。class Ccountpublic int Func(int n)if(n0)return 1;else if(n=0)return 0;else return-1;public static void Main()int n;n=int.Parse(Console.ReadLine();CCount count=new Ccount();Console.WriteLine(“返回返回结结果果:0”,count.Func(n);返回上节7.1.2 方法的调用方法的调用n注注意意:在在C#中中,除除了了主主方方法法main和和构构造造方方法法,析析构构方方法法
4、由由系系统统自自动动调调用用外,其他方法都是由主方法直接或外,其他方法都是由主方法直接或间接间接调用的调用的。n调用的语法格式为:调用的语法格式为:n 1.对象方法对象方法:对象对象.方法名方法名(实际参数表实际参数表);n 2.对对象内部中象内部中调调用内部方法用内部方法:方法名方法名(实际参数表实际参数表);n3.静态方法静态方法:类类.方法名方法名(实际参数表实际参数表);注意注意:C#中没有中没有默默认认参数参数的概念的概念,所以都必所以都必须传递须传递确定的确定的值值;返回上节7.2 方法的参数方法的参数n7.2.1 值参数值参数n7.2.2 引用型参数引用型参数n7.2.3 输出参
5、数输出参数n7.2.4 数组型参数数组型参数返回首页7.2.1 值参数值参数n记忆记忆:值参数传递的是值参数传递的是调用参数调用参数的一分拷贝的一分拷贝!例例7-1 输入输入a,b两个数两个数,求和求和 using System;class Sum public float Add(float x,float y)return x+y;public static void Main()float a,b;Sum obj=new Sum();Console.Write(“请输入一个浮点数请输入一个浮点数a:”);a=float.Parse(Console.ReadLine();/转换成浮点数转换
6、成浮点数 Console.Write(“请输入一个浮点数请输入一个浮点数b:”);b=float.Parse(Console.ReadLine();/转换成浮点数转换成浮点数 console.WriteLine(“总计总计:0”,obj.Add(a,b);console.WriteLine(“a=0 b=1”,a,b);返回上节7.2.2 引用类型引用类型(ref)参数参数n记记忆忆:C#编编译译器器把把参参数数传传递递指指向向和和调调用用代代码码的的变变量量一样的内存中去一样的内存中去 例例7-2 交换交换a,b两个数两个数 using System;class RefSwap public
7、 void Swap(ref float x,ref float y)float tmp;tmp=a;a=b;b=tmp;public static void Main()float a,b;RefSwap obj=new RefSwap();Console.Write(“请输入一个浮点数请输入一个浮点数a:”);a=float.Parse(Console.ReadLine();/转换成浮点数转换成浮点数 Console.Write(“请输入一个浮点数请输入一个浮点数b:”);b=float.Parse(Console.ReadLine();/转换成浮点数转换成浮点数 obj.Swap(ref
8、 a,ref b);console.WriteLine(“交换结果交换结果:0,1”,a,b);/注意注意:在调用方法之前在调用方法之前,被传递的参数一定已被初始化过被传递的参数一定已被初始化过返回上节7.2.3 输出输出(out)参数参数n记记忆忆:与与ref 类类似似,只只是是传传入入时时不不必必初初始始化化,而而在在返返回回时时,必须已有值必须已有值.using System;class Test public void SplitPath(string path,out string dir,out string name)ini i=path.Length;while(i-0)cha
9、r ch=pathi-1;if(ch=|ch=/|ch=:)break;dir=path.Substring(0,i);name=path.Substring(i);public static void Main(params string arg)string dir,name;SplitPath(arg0,out dir,out name);console.WriteLine(“目录目录:0,文件名文件名:1”,dir,name);/注意注意:在在 返回之前返回之前,被传递的参数必须初始化被传递的参数必须初始化/不需要初始化不需要初始化返回上节7.2.4 数组类型数组类型(params)参
10、数参数n例例:class Test public static void F(params int args)Console.Write(“数组含有数组含有0 个元素个元素:”,args.Length);foreach(int i in args)Console.Write(“0”,i);Console.WriteLine(“”);public static void Main(params string args)int a=1,2,3;F(a);F(10,20,30,40);F();显示显示:数组含有数组含有3 个元素个元素:1 2 3 数组含有数组含有4 个元素个元素:10 20 30
11、40 数组含有数组含有0 个元素个元素:注意注意:如果将其定义为如果将其定义为 public static void F(int args),则仅能向其传递则仅能向其传递F(a)返回上节7.2.4 数组类型数组类型(params)参数参数n记记忆忆:当当需需要要传传递递不不确确定定的的同同类类型型参参数数时时,可可以以使使用用它它.例例:using System;class Test public void Main(params string arg)foreach(string s in arg)Console.WriteLine(s);在控制台中在控制台中:Test I like it
12、“我我 喜欢喜欢”(回车回车)显示显示:I like it 我我 喜欢喜欢 返回上节7.2.4 数组类型数组类型(params)参数参数n注意注意:n 1.参参数数中中如如果果包包含含数数组组型型参参数数,那那么么它它必必须须在在参参数数表的最后表的最后n F(int a,params int c,double b)/错误错误 F(int a,double b,params int c)/正确正确 2.数组型参数只允许是一维数组数组型参数只允许是一维数组,如如string string 类型都可以类型都可以,但但string,不行不行 3.数组型参数不能再有数组型参数不能再有ref 和和out
13、 修饰符修饰符 返回上节7.3 方法的重载方法的重载n 7.3.1 什么叫重载什么叫重载?n 7.3.2 构造方法的重构造方法的重载载n 7.3.3 运算操作符的重运算操作符的重载载返回首页7.3.1 方法的重载方法的重载n什么叫重载什么叫重载?在同一在同一类类中多于两个的同名方法中多于两个的同名方法-重重载载.n编译编译器如何区分重器如何区分重载载的方法的方法?编译编译器会根据方法的特征器会根据方法的特征(又称又称签签名名)的不同来区分同名的方法的不同来区分同名的方法.所以定所以定义义方法重方法重载时载时,不能使不能使”签签名名”相同相同void open()void open()/错误!,
14、签名相同void open()int open();/错误!,签名相同void open()void open(int arg)/参数个数不同,签名不同void open(int arg)void open(string arg)/参数类型不同,签名不同void open(int arg1,string arg2)void open(string arg1,int arg2)/参数类型的顺序不同,签名不同void open(int ars)void open(params int args)/错误,虽然表面上,个数不一定相同,但是参数类型都是数组类型,所以编译器不可以识别void open()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- g第7章 方法
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内