1.方法概述
![](https://img-blog.csdnimg.cn/img_convert/752fb4c80a9e47b28101c5e1968855d7.png)
![](https://img-blog.csdnimg.cn/img_convert/785b9f4eaef947a9abab1c57cc32fd50.png)
1.1什么是方法
方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集
注意:
方法必须先创建才可以使用,该过程称为方法定义
方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用
2.方法的定义和调用
2.1方法定义
![](https://img-blog.csdnimg.cn/img_convert/44044f213f6245d9a5b5d28d8e4364c4.png)
2.2方法调用
![](https://img-blog.csdnimg.cn/img_convert/dd18d1a0355a4178a4d88786ef87617c.png)
注意:
方法必须先定义后调用,否则程序将报错
2.3方法调用过程
![](https://img-blog.csdnimg.cn/img_convert/fe61a76b289c48e793cb67665dc831a0.png)
2.4方法练习
需求:设计一个方法用于打印两个数中的较大数
![](https://img-blog.csdnimg.cn/img_convert/8cbea7b28318416dbe175e958b66b549.png)
3.带参数方法的定义和调用
![](https://img-blog.csdnimg.cn/img_convert/9d0cf4b00f7342a29bbc5c270ed910e7.png)
注意:
方法定义时,参数中的数据类型与变量名都不能缺少
方法定义时,多个参数之间使用逗号(,)分隔
3.2带参数的方法调用
4.带返回值方法的定义和调用
4.1带返回值方法定义
![](https://img-blog.csdnimg.cn/img_convert/28c18af6c3934d3bad353bc444162ef7.png)
注意:
方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错
4.2带返回值方法调用
![](https://img-blog.csdnimg.cn/img_convert/1144186eb34c4662a0ab90d54e61e346.png)
public class ScannerDemo {
public static void main(String[] args) {
// //常量值的调用
// isEventNumber(10);
//
// //变量的调用
// int number=10;
// isEventNumber(number);
boolean flag=isEventNumber(10);
System.out.println(flag);
}
public static boolean isEventNumber(int number){
if(number%2==0){
return true;
}else {
return false;
}
}
}
4.3带返回值方法练习
![](https://img-blog.csdnimg.cn/img_convert/b5c14d86cb6e41b79eecaf49252d5829.png)
public class ScannerDemo {
public static void main(String[] args) {
int result=getMax(10,20);
System.out.println(result);
System.out.println(getMax(10,20));
}
public static int getMax(int a,int b){
if (a>b){
return a;
}else {
return b;
}
}
}
5.方法的注意事项
5.1方法注意事项
方法不能嵌套定义
![](https://img-blog.csdnimg.cn/img_convert/7be39ea21bd248eeb325901158eba4e0.png)
void表示无返回值,可以省略return,也可以单独的书写return,后面不加数据
![](https://img-blog.csdnimg.cn/img_convert/7257da66cdeb41e2bceee907c820da52.png)
5.2方法的通用格式
![](https://img-blog.csdnimg.cn/img_convert/2548d645c48a405483780ad631ea3470.png)
定义方法时,要做到两个明确
明确返回值类型:主要是明确方法操作完毕之后是否有数据返回,如果没有,写void;如果有,写对应的数据类型
明确参数:主要是明确参数的类型和数量
调用方法时
void类型的方法,直接调用即可
非void类型的方法,推荐用变量接收调用
6.方法重载
6.1方法重载概述
方法重载指同一个类重定义的多个方法之间的关系,满足下列方法的多个方法相互构成重载
多个方法在同一个类中
多个方法具有相同的方法名
多个方法的参数不相同,类型不同或者数量
6.2方法的重载
![](https://img-blog.csdnimg.cn/img_convert/a6c90fd18a164584a2ab08d7b311cb87.png)
![](https://img-blog.csdnimg.cn/img_convert/fcd319da3d8a4cb6934e4beca15ae7bf.png)
注意:
与返回值无关
在调用的时候,Java虚拟机会通过参数的不同来区分同名的方法
6.3方法重载的练习
需求:使用方法重载的思想,涉及比较两个整数是否相同的方法,兼容全整数
![](https://img-blog.csdnimg.cn/img_convert/a2a41b03af1e46b08291d1ea46fc864a.png)
7.方法的参数传递(基本类型)
对于基本数据类型的参数,形式参数的改变,不影响实际参数的值
![](https://img-blog.csdnimg.cn/img_convert/93b0b73163164c82974b24aa96c638fb.png)
7.2方法参数传递(引用类型)
对于引用类型的参数,形式参数的改变,影响实际参数的值
System.out.println("内容");//输出内容并换行
System.out.print("内容");//输出内容不换行
System.out.println();//起到换行的作用
public class ScannerDemo {
public static void main(String[] args) {
int[] arr={11,22,33,44,55};
printArray(arr);
}
/*
两个明确:
返回值类型:int
参数:int[] arr
*/
public static void printArray(int[] arr) {
System.out.println("[");
for (int x=0;x<arr.length;x++){
if (x==arr.length-1){
System.out.println(arr[x]);
}else {
System.out.println(arr[x]+", ");
}
}
System.out.println("]");
}
}
数组最大值:设计一个方法用于获取数组中元素的最大值,调用方法并输出结果
思路:
定义一个数组,用静态初始化完成数组元素初始化
定义一个方法,用来获取数组中的最大值
调用获取最大值方法,用变量接收返回结果
把结果输出在控制台
public class ScannerDemo {
public static void main(String[] args) {
int[] arr={12,45,98,73,60};
int number=getMax(arr);
System.out.println("number"+number);
}
// 定义一个方法,用来获取数组中的最大值
/* 两个明确:
返回值类型:int
参数:int[] arr*/
public static int getMax(int[] arr){
int max=arr[0];
for(int x=1;x<arr.length;x++){
if(arr[x]>max){
max=arr[x];
}
}
return max;
}
}