概述:java语言的“方法”(Method),在其他语言中有可能“函数”,对于一些复杂的代码逻辑,放在大括号里取上一个名字,就是我们的方法。 程序当中有返回值的方法: * A)参数(原料),进入方法的数据 * B)返回值(产出物):从方法中计算出来的数据。 *如何定义一个方法? * *格式: * 修饰符 返回值类型 方法名称(参数类型 参数名称) * { * 方法体 * * return 返回值; * } * * 修饰符:目前固定写法,两个关键字,public static。 * * 返回值类型:方法最终产生的数据是什么类型 * * 方法名称:自定义的名字。规则和变量、类名称一样。 * * 参数类型:进入方法的数据是什么类型。 * * 参数名称:进入方法的数据,对应的变量名称。 * * 方法体:需要执行的若干代码 * * return:有两个作用,第一:结束当前方法,第二带着后面的返回值交给屌用处。 * * 注意事项 * A)返回值类型必须和返回值对应。 * B)如果参数有多个,那么使用逗号进行分隔。 * C)如果不需要参数,那么小括号留空。 * 方法的调用: * * 1.单独调用:格式 方法名称(参数值)。 * * 在单独调用的时候,无法使用返回值。 * * 2.打印调用: 格式 System。out。println(方法名称(参数值)) * * 3.赋值调用: 格式 数据类型 变量名称 = 方法名称(参数值); * 调用方法,并且将返回值交给一个变量、注意:变量的数据类型必须和方案的返回值类型对应。 方法调用过程图解: 方法定义过程当中方法名与变量名的注意事项 /* * 1.变量的名称能不能和方法的名称一样?---可以。 * 2.如果两个方法,每一个当中都有一个同名变量,是否可以?可以,虽然名称一样,但是是两个变量。 */ 方法调用的步骤: 有返回值得方法: 带回返回值 无返回值的方法:
无返回值,什么都不带。 无返回值的方法的定义: * 若方法只进行一部分操作,没有进行最终的数据结果的交还于调用处, * 则该方法是无返回值方法。 * * 需要关键字:void作为索引。 * *格式:修饰符 void 方法名称(参数类型 参数名称) *{ * 方法体; * return;//最后一行的return可写,可不写,一般情况下是不写,省略。 *} * *格式的调整: *1.返回值类型固定写成关键字:void。 *2.不能return一个具体的返回值,只能写return分号; *3.如果为无返回值的方法最后一行的return一般省略不写。 * 注意:无返回值的方法定义与有没有参数并无必然联系; * * 可独立完成则不用参数,参数留空;不能独立完成,则 * * 赋予参数,辅助方法的调用。 * * 定义一个方法,用来打印输出指定次数的HelloWorld。 * 代码详见Demo02MethodVoid。 方法的重载: * 现有问题描述: * 对于类似的多个方法,全都是执行相加的操作,但是因为参数列表不一样, * 所以需要记住名字。 * * 解决方案: * 使用方法重载(Overload)技术; * 对于类似功能的多个方法,只要记住一个相同的方法名,根据参数列表的不同自动适配。 * * 方法重载(Overload):方法名称相同,但是参数列表不同。 * * 注意事项: * 1.参数的个数不同; * * 2.参数的类型不同; * * 3.参数的多类型顺序不同。//不同类型的参数以及不同参数的顺序。 * * 重载与下列因素无关: * 1.与返回值的类型无关; * 2.与参数名称无关; 参数的传递: * 既在调用方法的时候,向方法内传入一些数据的动作。 * * 【形式参数】:在【定义】方法的时候,写在小括号之内的参数。 * 例如:public static int sum(int a,int b){。。。}//这里的a与b是在定义的时候写的, * 所以是形式参数。 * * 【实际参数】:在“调用”方法的时候,真正传入方法里的数据,叫做实际参数。(主动传入数据的) * 例如:int num= sum(10,20);//这里的10和20是在调用的时候传入方法的,所以是实际参数。 * 又比如: * int x = 10; * int y = 20; * int result = sum(x,y);//这里的x和y也是在调用方法的时候传入的,所以也是实际参数。 * * 参数传递的过程中,有【两项规则】: * 1.对于基本数据类型(以及String)来说,形式参数的操作【不会】影响实际参数。 * 2.对于引用数据类型(除了String)来说,形式参数的操作【会】影响实际参数。
详见:源代码 Demo01MethodParamBasic
方法传参细解与图解 基本数据类型以Demo01MethodParamBasic为例子。 引用数据类型以Demo02MethodParamRef为例子:
|