Java中方法的学习

一.方法到底是什么

方法是语句的集合,他们在一起执行一个功能。它包含于类或者对象中。

二.方法的定义和调用

1.定义: 修饰符+返回值类型+方法名+参数+方法体
例如:
public static int add(int a,int b){ return a+b; }
这就是一个简单的方法,传递进去两个参数,返回这两个数的和。
2.命名规则: 方法名的命名要遵守驼峰规则,及第一个单词全小写,之后每一个单词的首字母大写。
例如:studentScore、maxStudentScore
3.调用: 以上面的add方法为例,在主方法里面:

int sum=add(1,2);
System.out.println(sum);

输出结果为3
4.注意:

  • 如果返回类型为void类型,不需要返回任何东西,即不需要写return x;
  • 如果不是,需要返回符合返回类型的内容
  • return 0;终止方法

三.方法的重载

什么是方法的重载?

方法的重载符合以下特点:

  • 方法可以有无数个重名的,但是要保证参数列表不同
    (个数不同或类型不同或参数排列顺序不同)
  • 方法的返回类型可以相同也可以不相同

例如:

    public static void main(String[] args) {
        int result1=add(1,2);
        int result2=add(1,2,3);
        int result3=add(1,2,3,4);
        System.out.println(result1);
        System.out.println(result2);
        System.out.println(result3);
    }
    public static int add(int a,int b){
        return a+b;
    }
    public static int add(int a,int b,int c){
        return a+b+c;
    }
    public static int add(int a,int b,int c,int d){
        return a+b+c+d;
    }

输出结果为:
在这里插入图片描述

四.可变参数

1.什么是可变参数?

在指定参数类型后加一个省略号。

2.使用时要注意什么?

一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在他之前声明。

例如:

    public static void main(String[] args) {
        Demo04 demo04 = new Demo04();
        demo04.test(1);
        demo04.test(1,2,3);
        printMax(1,5,10,50,29,15);
    }
    public static void test(int... i){
        System.out.println(i[0]);
    }
    public static void printMax(double... numbers){
        if(numbers.length==0){
            System.out.println("No argument passed");
            return;
        }
        double result=numbers[0];
        //排序
        for (int i = 1; i < numbers.length; i++) {
            if(numbers[i]>result){
                result=numbers[i];
            }
        }
        System.out.println("The max value is:"+result);
    }

输出结果为:
在这里插入图片描述

五.递归

以一个输出阶乘的方法来理解递归:

    public static int f(int n){
        if(n==1){//边界条件
            return 1;//返回阶段
        }
        else{
            return n*f(n-1);//前阶段
        }
    }

可以从上面这个方法总结出一些递归的知识:

  • 递归结构包括两个部分: 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环 递归体:什么时候需要调用自身方法

注意: 能不用递归就不用递归,因为递归很占空间。

六.应用

最后附上一个写的加减乘除计算器,算是一个小小的应用吧:

public class Demo06 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("本软件为加减乘除运算器:");
        System.out.println("输入0跳转到加法,输入1跳转到减法,输入2跳转到乘法,输入3跳转到除法,输入4退出。");
        System.out.println("请输入初始数据:");
        double pro=input.nextInt();
        int choose=5;
        while(choose!=4){
            System.out.println("请输入对应的数字来跳转到对应的功能:");
            choose=input.nextInt();
            switch (choose) {
                case 0:
                    System.out.println("欢迎使用加法功能,请输入您想要加的数字:");
                    double pro1 = input.nextInt();
                    pro = add(pro, pro1);
                    System.out.println("您当前的结果为:" + pro);
                    break;
                case 1:
                    System.out.println("欢迎使用减法功能,请输入您想要减的数字:");
                    double pro2 = input.nextInt();
                    pro = minus(pro, pro2);
                    System.out.println("您当前的结果为:" + pro);
                    break;
                case 2:
                    System.out.println("欢迎使用乘法功能,请输入您想要乘的数字:");
                    double pro3 = input.nextInt();
                    pro = multiple(pro, pro3);
                    System.out.println("您当前的结果为:" + pro);
                    break;
                case 3:
                    System.out.println("欢迎使用除法功能,请输入您想要除以的数字:");
                    double pro4 = input.nextInt();
                    pro = division(pro, pro4);
                    System.out.println("您当前的结果为:" + pro);
                    break;
                default:
                    System.out.println("已退出计算器,感谢您的使用。");
                    break;
            }
        }
    }
    public static double add(double a,double b){
        double result=a+b;
        return result;
    }
    public static double minus(double a,double b){
        double result=a-b;
        return result;
    }
    public static double multiple(double a,double b){
        double result=a*b;
        return result;
    }
    public static double division(double a,double b){
        double result=a/b;
        return result;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值