学习资料
b站狂神说: ps://www.bilibili.com/video/BV12J41137hu
方法
一个方法只实现一个功能,一处定义,多处调用
定义语法: 修饰符 返回值类型 方法名(参数类型 参数名){
....方法体...
return 返回值
}
package com.zy7y.method;
/**
* @ProjectName: JavaSE
* @PackageName: com.zy7y.method
* @Author: zy7y
* @Date: 2020/8/14 下午5:44
* @Description:
*/
public class method01 {
public static void main(String[] args) {
int a = 13;
int b = 1;
// 此处的a,b是实际参数
add(a, b);
}
// 定义一个add的方法,返回值是int类型
public static int add (int a, int b){
// a , b形式参数
return a + b;
}
}
方法的重载
同一个类中,有相同的函数名称,但是形参不同的方法(函数).
重载的规则:
- 方法名称必须相同。
- 参数列表必须不同(个数不同/类型不同/参数排列顺序不同等)。
- 方法的返回类型可以相同/不同/
- 仅仅返回类型不同不不足以成为方法的重载。
package com.zy7y.method;
/**
* @ProjectName: JavaSE
* @PackageName: com.zy7y.method
* @Author: zy7y
* @Date: 2020/8/14 下午5:44
* @Description:
*/
public class method01 {
public static void main(String[] args) {
int a = 13;
int b = 1;
// 此处的a,b是实际参数
int result = add(13, 12,13);
System.out.println(result);
}
// 定义一个add的方法,返回值是int类型
public static int add (int a, int b){
// a , b形式参数
return a + b;
}
// 重载add方法: 参数个数不同
public static int add (int a, int b, int c){
return b + a + c;
}
// 重载add方法: 参数类型不同
public static double add (double a, double b){
return a + b;
}
}
命令行传参
可变参数
可以是一个,也可以是多个
定义语法: 修饰符 返回值类型 方法名(参数类型... 参数名){
....方法体...
return 返回值
}
public static void sum (int... numbers){
for (int number:numbers) {
System.out.println(number);
}
}
main方法
sum(new int[]{1,3,4,5}); // 1 3 4 5
sum(1); // 1
递归
自己调用自己
package com.zy7y.method;
/**
* @ProjectName: JavaSE
* @PackageName: com.zy7y.method
* @Author: zy7y
* @Date: 2020/8/14 下午6:26
* @Description: 递归
*/
public class Recursion {
public static void main(String[] args) {
// 阶乘
System.out.println(recursion(5));
}
public static int recursion(int number){
if (number == 1) {
return 1;
}else{
// 1的阶乘是1, 5的阶乘:5*4*3*2*1
return number * recursion(number-1);
}
}
}
计算器作业
课程上是要求只用循环和switch,但是我没有好的实现方法所以加了个if
package com.zy7y.method;
import java.util.Scanner;
/**
* @ProjectName: JavaSE
* @PackageName: com.zy7y.method
* @Author: zy7y
* @Date: 2020/8/14 下午6:32
* @Description: 计算器
*/
public class Topic {
// 加
public static int add(int a, int b){
return a + b;
}
// 减
public static int less(int a, int b){
return a - b;
}
// 乘
public static int product(int a, int b){
return a * b;
}
// 除
public static int consult(int a, int b){
return a / b;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
for (;;){
System.out.println("请选择运算方式: 1 加法, 2 减法, 3 乘法, 4 除法");
int choice = scanner.nextInt();
if (choice != 1 && choice != 2 && choice != 3 && choice != 4){
System.out.println("程序已退出!");
System.exit(0);
}
System.out.print("输入第一个数字:");
int a = scanner.nextInt();
System.out.print("输入第二个数字:");
int b = scanner.nextInt();
switch (choice){
case 1:
System.out.println(add(a,b));
break;
case 2:
System.out.println(less(a,b));
break;
case 3:
System.out.println(product(a,b));
break;
case 4:
System.out.println(consult(a,b));
break;
}
}
}
}