1.有参无返回值
会出现在什么场景呢?比如我现在需要得到两个数(哪里调用,哪里就给我),求和打印或者是打印三个数之和。
语法:
定义的语法:
修饰符 返回类型 方法名(形参数1类型 形参数1名字,形参数2类型 形参数2名字,形参数3类型 形参数3名字) {
// 可以使用参数1
// 返回语句
}
调用的语法
方法名(实参数值,实参数值)
作用:
提高方法可复用性
实例:
//方法定义
public static void printSum(int num1, int num2) {
int sum = num1 + num2;
System.out.println(sum);
}
//方法调用
printSum(50,2);//一般要在main函数里调用
// 得到一个数组,输出数组的奇数个数以及偶数个数
public static void printArrayEvennumAddOddnum(int[] arr) {
int evenNum = 0;
int oddNum = 0;
for (int i = 0; i < arr.length; i++) {
if(arr[i] % 2 == 0) {
evenNum++;
} else {
oddNum++;
}
}
System.out.println("奇数个数: " + oddNum + " 偶数个数:" + evenNum );
}
//方法调用
public static void main(String[] args) {
int[] arr = {1,2,3,5,3,5};
printArrayEvennumAddOddnum(arr);
}
2.无参有返回值
语法:
修饰符 返回类型 方法名() {
// 方法体
return 值; // 值与返回类型相匹配
}
调用:
类型 变量名 = 方法名()
作用:
可以得到结果,可以让程序更灵活,更好维护
实例:
// 单一职责(一个函数做一个事情)。
//职责: 1. 随机数组 2. 根据情况打印
public static int[] methodA() {
// 需要一个随机数,得到他的和
Random random = new Random();//随机生成
int len = random.nextInt(10) + 1;
System.out.println(len);
int[] arr = new int[len];
for (int i = 0; i < arr.length; i++) {
arr[i] = random.nextInt(100);
}
return arr;//返回结果
}
public static void main(String[] args) {
// 返回了一个结果.
int[] arr = methodA();
// 拿到arr
if(arr.length % 2 == 0) {
System.out.println(Arrays.toString(arr));
}
3.有参有返回值
格式:
修饰符 返回值类型 方法名(参数列表) {
// 方法体
返回语句;
}
简单举个会使用到的场景:
求两个数的和然后打印出来。
方法体可以理解为一只下单的鸡,参数就是喂养的饲料,蛋就是返回值。
public class Main {
public static void main(String[] args) {
int result = addNumbers(5, 3);
System.out.println("The result is: " + result);
}
public static int addNumbers(int num1, int num2) {
return num1 + num2;
}
}
4.方法重载
如何理解?
方法名相同,但是参数列表不同的方法。
参数列表不同的情况:
- 参数个数不同
- 参数类型不同
- 参数类型顺序不同
如何判断两个方法是否为重载方法呢?其一般与参数名和返回值无关。
public static void open(){} // 1
public static void open(int a){} // 2
static void open(int a,int b){} //3
public static void open(double a,int b){} // 4
public static void open(int a,double b){} // 5
public void open(int i,double d){} // 6
public static void OPEN(){} // 7
public static void open(int i,int j){} // 8
以上给了一些方法调用的例子,各位读者可以看看自己是否可以判断出哪些不是方法重载