6.方法
MODULE 6 方法
All
一、方法的使用
(一)方法介绍以及简单方法定义(无参数返回值)
1.问题描述:
之前所有的代码都在main方法中,如果我们将来将所有的代码都放在main 方法中,会使得main方法代码太多 -> 不好维护
解决:将不同功能的代码梵高不同的方法中,想执行某个功能,直接调用方法 名就行了,对应的代码就自动执行起来,将来维护的时候,直接找到对应的方 法,就可以对其直接修改维护
2.方法:(功能就是方法)
拥有功能性相同的代码块
将不同的功能放在不同的方法中,给每个方法取个名字,直接调用方法名,对 应的方法就执行起来了,好维护
3.通用的定义格式:
修饰符 返回值类型 方法名(参数){
方法体
return 结果
}
4.通过通用格式,分成四种方法来学习:
(1)无参无返回值方法
(2)有参无返回值方法
(3)无参有返回值方法
(4)有参有返回值方法
(二)方法定义各部分解释
1.通用格式:
修饰符 返回值类型 方法名(参数){
方法体
return 结果
}
2.各部分解释:
(1)修饰符:public static
(2)返回值类型:
该方法最终返回结果的数据类型
如果没有返回值,不要写具体的返回值类型,写void
(3)方法名:见名知意(小驼峰式)
(4)参数:进入到方法内部参与执行的数据(数据类型 变量名,数据类型 变 量名)
(5)方法体:实现该方法的具体代码
(6)return 结果:如果有返回值,可以利用return将结果返回
(三)无参无返回值方法
1.格式:
public static void 方法名(){
方法体 -> 实现此方法的具体代码
}
2.调用:(直接调用)
在其它方法中:方法名()
3.注意事项:
(1)void关键字代表无返回值,写了void,就不要在方法中写return 结果
(2)方法不调用不执行,main方法是jvm调用的
(3)方法之间不能互相嵌套,方法之间是平级关系
(4)方法的执行顺序只和调用顺序有关
(四)有参无返回值方法
1.格式:
public static void 方法名(数据类型 变量名){
方法体
}
2.调用:(直接调用)
方法名(具体的值)-> 调用的时候要给参数赋值
(五)无参有返回值方法
1.格式:
public static 返回值类型 方法名(){
方法体
return 结果
}
2.调用:返回值返回给谁?哪里调用返回值给哪里
(1)打印调用:sout(方法名())-> 不推荐
(2)赋值调用:调用完之后用一个变量接收返回值结果 -> 极力推荐
数据类型 变量名 = 方法名()
(六)有参有返回值方法
1.格式:
public static 返回值类型 方法名(参数){
方法体
return 结果
}
2.调用:
(1)打印调用:
sout(方法名(具体的值))
(2)赋值调用:(力推)
数据类型 变量名 = 方法名(具体的值)
(七)形参和实参的区别
1.形参:在定义方法的时候形式上定义的参数,此参数还没有值
2.实参:在调用方法的到时候给形参赋予具体的值
(八)参数和返回值使用时机
1.参数:
当想将方法A的数据传递到方法B时,那么定义方法B时就需要带个参数, 在方法A中调用方法B时,可以将方法A中的数据通过参数传递到方法B中
2.返回值:
调用方法A时,想要方法A的结果,去参与其他的操作,那么方法A就需要将 自己的结果返回
三层架构思想:
(1)Controller接受的请求参数需要一层一层传递到service层,service 层需要将请求参数再传递到dao层,此时service的方法以及dao的方法都需 要参数去接收
(2)dao层的结果需要传递给service,再传递给controller层,此时 dao 层和service方法需要返回值
(九)变量作为实参使用
package com.shujia.a_method;
/*
变量作为实参使用
*/
public class Demo06Method {
public static void main(String[] args) {
int i = 27;
int j = 97;
boolean b = myMethod(i, j);
System.out.println("b = " + b);
}
public static boolean myMethod(int a,int b){
if (a>b){
return true;
}else {
return false;
}
}
}
二、方法注意事项终极版
1.方法不调用不执行
2.方法的执行顺序只和调用顺序有关
3.方法之间不能互相嵌套
4.void不能和【return 结果】共存,但是void能和【return】共存
(1)void:代表没有返回值
(2)return 结果:就代表有返回值了
先将结果返回,然后结束方法
(3)return:仅代表结束方法,不代表有返回值
5.一个方法中,不能连续写多个return(也就是说一个方法不能有多个返回值)
6.调用方法的时候要看看下面有没有这个方法,没有的方法直接调用会报错
初写:
(1)先定义,再调用
(2)如果没有返回值的方法,直接在调用的方法内部输出结果
(3)如果是带返回值的方法,就调用完毕之后,用一个变量去接收结果,输 出这个变量
(4)调用方法:
直接调用:方法名() 或者 方法名(实参) -> 只针对无返回值的 方法
打印调用:sout(方法名())或者sout(方法名(实参)) -> 不 推荐
赋值调用数据类型 变量名 = 方法名() 或者 数据类型 变量名 = 方法名(实参) -> 针对有返回值的方法 -> 推荐
如何练习:
(1)如果定义的方法没有返回值,写个void不要return结果
(2)如果定义的方法有返回值,就将void改成具体的返回值类型,在方法中 最后写一个return结果,将结果返回
(3)如果方法有返回值,调用的时候推荐使用赋值调用,如果没有返回值, 使用直接调用
(4)练习四种方法,如两个整数相加
三、方法的练习
1.数组本身是引用数据类型,引用数据类型做方法参数传递,传递的是地址值
2.返回值为引用数据类型时,返回的也是地址值
四、方法的重载(Overload)
1.概述:方法名相同,参数列表不同的方法
2.什么叫参数列表不同:
(1)参数个数不同
(2)参数类型不同
(3)参数类型顺序不同
3.判断两个方法是否为重载方法,和什么无关:
(1)和参数名无关
(2)和返回值无关
如果定义方法功能一样,只不过实现细节不一样,就可以考虑定义成重载的方法