1.方法概述


1.1什么是方法
方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集
注意:
方法必须先创建才可以使用,该过程称为方法定义
方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用
2.方法的定义和调用
2.1方法定义

2.2方法调用

注意:
方法必须先定义后调用,否则程序将报错
2.3方法调用过程

2.4方法练习
需求:设计一个方法用于打印两个数中的较大数

3.带参数方法的定义和调用

注意:
方法定义时,参数中的数据类型与变量名都不能缺少
方法定义时,多个参数之间使用逗号(,)分隔
3.2带参数的方法调用
4.带返回值方法的定义和调用
4.1带返回值方法定义

注意:
方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错
4.2带返回值方法调用

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带返回值方法练习

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方法注意事项
方法不能嵌套定义

void表示无返回值,可以省略return,也可以单独的书写return,后面不加数据

5.2方法的通用格式

定义方法时,要做到两个明确
明确返回值类型:主要是明确方法操作完毕之后是否有数据返回,如果没有,写void;如果有,写对应的数据类型
明确参数:主要是明确参数的类型和数量
调用方法时
void类型的方法,直接调用即可
非void类型的方法,推荐用变量接收调用
6.方法重载
6.1方法重载概述
方法重载指同一个类重定义的多个方法之间的关系,满足下列方法的多个方法相互构成重载
多个方法在同一个类中
多个方法具有相同的方法名
多个方法的参数不相同,类型不同或者数量
6.2方法的重载


注意:
与返回值无关
在调用的时候,Java虚拟机会通过参数的不同来区分同名的方法
6.3方法重载的练习
需求:使用方法重载的思想,涉及比较两个整数是否相同的方法,兼容全整数

7.方法的参数传递(基本类型)
对于基本数据类型的参数,形式参数的改变,不影响实际参数的值

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;
}
}