Java方法

源自视频课程的本人总结,推荐课程链接

何谓方法

  • System.out.println(),println()就是一个方法
  • Java方法就是语句的集合,他们一起执行一个功能;
  • Java方法在程序中创建,在其他地方引用;
  • Java方法,一个方法只完成一个功能,符合规范
  • Java方法命名规则:首字母小写,遵循驼峰原则。

示例:方法调用

package menthod;

public class Demo01 {
    //main方法
    public static void main(String[] args) {
        int sum = add(2, 3);
        System.out.println(sum);   //5
    }

    //加法  static修饰符将该方法变为类方法,才可以在main方法里调用
    public static int add(int a, int b){
        return a + b;
    }
}

方法的定义及调用

  1. 方法定义
修饰符 返回值类型 方法名(参数类型 参数名){
	...
	方法体
	...
	return 返回值;
}
  • 修饰符:可选,eg.public、static、final…;
  • 返回值类型:int、double…无返回值类型woid;
  • 命名:遵循命名规则
  • 参数类型:可选,方法中可以没有参数,此参数为形参;实际传递的参数为实参;
  • 方法体:功能
  • return:如果有返回值的方法必须在方法体中return返回值。
  1. 方法调用:对象名.方法名(实参列表)
  • 当方法返回一个值的时候,方法调用通常被当做一个值:
int larger = max(30,40);
  • 当方法返回值是woid,方法调用一定是一条语句:
System.out.println("hello wrold!);

示例:

package menthod;

public class Demo02 {
    public static void main(String[] args) {
        int max = max(10, 10);
        System.out.println(max);
    }

    //比大小,返回大值
    public static int max(int a, int b){
        if (a==b){
            System.out.println("a==b");
            return 0;  //终止方法
        }else if(a>b){
            return a;
        }else{
            return b;
        }
    }
}

方法重载

  1. 重载:一个类里可以有多个相同方法名的方法,但必须形参类型不同
package menthod;

public class Demo02 {
    public static void main(String[] args) {
        double max = max(10.0, 20.0);
        System.out.println(max);
    }

    //比大小,返回大值
    public static int max(int a, int b){
        //执行语句
        return;
    }

    public static double max(double a,  double b){
        //执行语句
        return;
    }

    //三个数比大小
}
  1. 方法的重载的规则:
  • 方法名称必须相同
  • 参数列表必须不同,可以是个数不同、类型不同、参数排列不同等;
  • 方法的返回类型可以相同,也可以不同;
  • 仅仅返回类型不同不足以构成重载。

示例:三个方法,重载

package menthod;

public class Demo02 {
    public static void main(String[] args) {
        double max = max(10.0, 20.0);
        int max3 = max(10,20,30);
        System.out.println(max);  //20.0
        System.out.println(max3);  //30
    }

    //比大小,返回大值
    public static int max(int a, int b){
        if (a==b){
            System.out.println("a==b");
            return 0;  //终止方法
        }else if(a>b){
            return a;
        }else{
            return b;
        }
    }

    public static double max(double a,  double b){
        if (a==b){
            System.out.println("a==b");
            return 0;  //终止方法
        }else if(a>b){
            return a;
        }else{
            return b;
        }
    }

    //三个数比大小
    public static int max(int a,  int b, int c){
        if (a==b && b==c){
            System.out.println("a==b==c");
            return 0;  //终止方法
        }else if(a>b && a>c){
            return a;
        }else if(b>a && b>c){
            return b;
        }
        else{
            return c;
        }
    }

}

命令行传参(不常用,了解)

  • main方法中用命令行调用实现
package menthod;

public class Demo03 {
   public static void main(String[] args) {
       //args.length 数组长度
       for (int i = 0; i < args.length; i++){
           System.out.println("args["+i+"]:"+args[i]);  //输出所有数组
       }
   }
}
  • 找到Demo03路径,用cmd打开
    在这里插入图片描述

可变参数

  1. 传递同类型的可变参数(个数可变);
  2. 在方法声明中,在指定参数类型后面加一个省略号(…);
  3. 一个方法中只能声明一个可变参数,且该可变参数必须是方法的最后一个参数,其他普通参数声明必须在它之前

示例:

package method;

public class Demo04 {
    public static void main(String[] args) {
        //调用可变参数的方法
        printMax(34,4,23,42,4,2);  //The max value is 42.0
        printMax(new double[]{1,23,4,56,6});  //The max value is 56.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);
    }
}

递归

层层递进,再返回值。

练习

  1. 实现计算器功能,即加减乘除,并且能够循环接收新数据,通过用户交互实现
    思想:(1)加减乘除四个类方法;(2)Scanner接收键盘输入交互;(3)while循环判断IO输入循环接收;(4)switch判断加减乘除符号
package method;

import java.util.Scanner;

public class Cal {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        while (scanner.hasNextLine()){  //实现循环接收新数据
            double result  = 0.0;

            int i = scanner.nextInt();
            char c = scanner.next().charAt(0);  //
            int j = scanner.nextInt();

            //判断计算符
            switch (c){
                case '+':
                    result = add(i, j);
                    break;
                case '-':
                    result = cha(i, j);
                    break;
                case 'x':
                    result = chen(i, j);
                    break;
                case '/':
                    result = chu(i, j);
                    break;
                default:
                    System.out.println("输入有误!");
            }
            System.out.println(result);
        }

        scanner.close();
    }

    //Add
    public static int add(int a, int b){
        int sum = a + b;
        return sum;
    }

    //Cha
    public static int cha(int a, int b){
        int cha = a - b;
        return cha;
    }

    //Chen
    public static int chen(int a, int b){
        int chen = a * b;
        return chen;
    }

    //Chu
    public static double chu(int a, int b){
        double chu = a / b;
        return chu;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值