资源预览内容
第1页 / 共28页
第2页 / 共28页
第3页 / 共28页
第4页 / 共28页
第5页 / 共28页
第6页 / 共28页
第7页 / 共28页
第8页 / 共28页
第9页 / 共28页
第10页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
深入理解类2方法与方法重载第六章回顾面向对象OOP的特征:封装、继承和多态理解对象理解类类和对象的属性及行为表示定义类和创建对象成员变量访问修饰符回顾第一步:定义类 修饰符 class 类名 /成员字段 修饰符 数据类型 字段名称; /成员方法 修饰符 返回值类型/void 方法名(参数列表) 第二步:实例化(创建对象) 类名 实例化的类名= new 类名()第三步:调用 实例化的类名.字段 实例化的类名.方法名(参数列表)目标成员方法方法的参数方法重载个人演唱会方法 1-1接听响铃挂断PickUp() . /用于传送和接收信号的代码Ring() . /用于显示主叫号码的代码 Hang() . /用于结束会话的代码对象的行为类中的方法 1-1-1方法的定义方法的名称参数列表方法的主体方法返回的对象类 型或原始类型声明方法 1-2语法1.访问修饰符(可选),默认情况下为 private2.如果不需要返回任何值,方法可返回 void 数据类型,如果有返回值,写上返回值的数据类型3.方法名不能以数字 开头,不能与C#中的关键字相同。4.参数列表为数据类型 参数名称,多个参数之间用逗号隔开访问修饰符 返回值数据类型 (参数列表)/ 方法主体调用方法对象名.方法名(参数列表);语法注:参数列表中的参数个数要与定义方法时参数的个数一致;数 据类型也要一致有返回值的方法return 表达式; 有返回值时,一定要用 return来返回,return 返回值的数据类型要与 方法中的返回值一致return 语句 调用 Number num = new Number(); int result = num.Sum(10,31); 定义 public class Number public int Sum(int x,int y)int s = x + y;return s; 语法方法的参数 2-1C#中方法的参数有四种类型:值参数,不含任何修饰符。引用型参数,以ref 修饰符声明。输出参数,以out 修饰符声明。数组型参数,以params 修饰符声明。值参数 2-2当利用值向方法传递参数时,编译程序给实参的 值做一份拷贝,并且将此拷贝传递给该方法。被 调用的方法不会修改内存中实参的值,所以使用 值参数时,可以保证实际值是安全的。Demo1引用型参数 2-31.引用型参数和值参数不同,引用型参数并不会开辟新的内存区域 。2.当利用引用型参数向方法传递形参时,编译程序将把实际值在内 存中的地址传递给方法。格式: 定义方法时,在传递参数的数据类型前加ref关键字表示 调用时,在传递的参数前同样要加ref关键字Demo2输出参数 2-4 输出参数在定义方法的时候必须要赋值输出型参数用于传递方法返回的数据。调用方法前无需对输出参数变量进行初始化。 out 修饰符后应跟随与形参的类型相同的类型声明 定义时在数据类型前加out,调用时同样要在需要 输出的参数前面加out例:public void SplitPath(string path, out string dir, out string name)数组型参数 2-5 形参表中包含了数组型参数,那么它必须在参数表中位于 最后。在方法声明中的 params关键字之后不允许任何其他参数在方法声明中只允许声明一个 params 数组,且必须是一维 数组。 例:public void test(params int arr) 方法体调用:对象名. 方法名(数组名称)int arr1 = new int1,2,3;对象名.test(arr1)Demo示例方法重载方法重载 示例示例消费者 1移动电话固定电话电 费帐单移动电话营业厅供应商 1供应商 2电信电对不同的数据执行相同的任务方法重载 1-1方法重载类中有多个具 有相同名称的 方法方法重载类中有多个具有相 同名称的方法方法具有不同的 参数列表方法重载联想去超市购物:1.去超市A购买了一件化妆品(超市名称、价格)2.去超市B购买一件衣服和百货3.去超市C购买了蔬菜和水果4.去超市D购买了电视机、手机、电池方法重载public hello() Response.Write(“你好“); public hello(String name) Response.Write(name+“,你好“); public hello(String name,int age) Response.Write(name+“,你好。你的年龄是 :“+Convert.ToString(age); 不同参数个数的方法重载 1-2 public void Swap(int x) public void Swap(int x, int y) public void Swap(int x, int y,int z) 参数的类型相同 参数个数不同不同参数类型的方法重载 1-3 public void Swap(double x, double y) double temp = x; x = y; y = temp; public void Swap(float x, float y) float temp = x; x = y; y = temp; public void Swap(int x,int y) int temp = x; x = y; y = temp; 方法中参数个数相等,参数类型不同25 作业题一作业题一: : 方法一:方法一:privateprivate void void method(intmethod(int a) a) 方法二:方法二: p publicublic void void method(intmethod(int a) a) 方法三:方法三: p publicublic void void method(intmethod(int a a,string,string b b) ) 方法四:方法四: p publicublic void void method(method(stringstring b b,intint a) a) 方法五:方法五: p publicublic stringstring method(method(stringstring b b,intint a) a)方法重载方法重载思考:比较两个整型的数的大小,输出最大值比较两个浮点型的数的大小,输出最大值比较三个整型的数的大小,输出最大值答案:Demo1总结 实现方法重载的条件:实现方法重载的条件:1. 1.方法名一样方法名一样2. 2.参数个数不同参数个数不同3. 3.参数类型不同参数类型不同总结成员方法方法的参数值传递 引用传递 输出传递方法重载
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号