黑马程序员技术交流社区

标题: 方法笔记 [打印本页]

作者: huajuanjuan    时间: 2018-6-14 13:04
标题: 方法笔记
概述: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为例子:







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2