方法笔记

方法

等同于其他编程语言的函数,功能

pubilc static void main(String[] args){
//程序的入口
}

1.组成部分

[1.访问权限修饰符 public privat protected 默认(缺省)defaul]
[2.访问修饰符 static final abstract]
3.返回值类型 ①无返回值类型 void ②有返回值类型(数据类型)有且只有一个
4.方法名 规范:变量名称规范 小写驼峰
5.形式参数():①无参() ②有参(具体的参数类型)(int num,String str)
参数个数:不要超过四个
形参(局部变量)
[6.方法体:{}]

2.方法分类

针对于返回值类型和形式参数而言:
1.有参无返回值
2.无参有返回值
3.有参无返回值
4.有参有返回值

3.创建方法

方法与方法是平级的关系

3.1无参无返回值

public class Method1 {

    public static void main(String[] args) {

        System.out.println("main开始。。。。。。");

        noArgsNoReturn2();

        System.out.println("main结束。。。。。。");
    }

    //创建方法
    public static void noArgsNoReturn2() {
        //调用noArgsNoReturn1()的方法
        //语法:  方法名();(无参的方法)
        System.out.println("noArgsNoReturn2......");
        noArgsNoReturn1();
    }

    /**
     * 无参无返回值的方法
     * 如果不调用,只是存在于文件中
     * 调用方法: 在方法里面调用方法(程序执行必须依赖于main)
     */
    public static void noArgsNoReturn1() {
        int[] score = {2, 432, 5221, 235, 5352, 1, 53, 5, 3, 5364};
        //去除最高分+最低分
        Arrays.sort(score);//升序排列
        System.out.println(Arrays.toString(score));
        int totalScore = 0;

        int len = score.length;
        for (int i = 1; i < len - 1; i++) {
            totalScore += score[i];
        }
        System.out.println(totalScore / (len - 2));
    }


}

3.2无参有返回值

public static void main(String[] args) {

        System.out.println("main开始。。。。。");
        //调用方法(无参有返回值): 接收返回数据(赋值给某个变量)
        boolean result = userLogin();

        if(!result){
            System.out.println("登录失败");
            return;
        }
        System.out.println("登录成功");

        System.out.println("main结束。。。。。");
    }

    /**
     * 模拟用户登录的功能(成功  失败) boolean  int-->0  1
     * 任意的类型都可以充当返回值类型
     * 返回值类型: 返回的结果的数据类型(谁调用方法就把这个结果给调用者)
     * return 数据;
     */
    public static boolean userLogin() {
        String trueName = "admin";
        int truePass = 1234;

        Scanner input = new Scanner(System.in);
        System.out.println("请录入用户名");
        String name = input.nextLine();
        System.out.println("请录入密码");
        int pass = input.nextInt();

        //使用卫语句 (只要遇见return语句  当前方法结束了)
        if (!trueName.equals(name) || truePass != pass) {
            return false;
        }
        return true;
    }

3.3有参无返回值

形式参数:方法中的其中一个部分
实际参数:调用方法的时候 传递的参数

 public static void main(String[] args) {

        //调用max方法
        //对于有参的方法: 调用的时候   需要传参(实际参数  实参)
        int num1 = 100, num2 = 200;
        // a,b作为参数传递的时候? 传的是什么?   在整个java语言里面  参数传递: 值传递
        // 基本数据类型: 数据传递
        max(num1, num2);
        System.out.println("main........num1:" + num1);//100
    }
//形式参数: 规范  (任意类型都可以充当形参)

    /**
     * 求2个整数的最大值
     *
     * @param num1
     * @param num2
     */
    public static void max(int num1, int num2) {
        int max = (num1 > num2) ? num1 : num2;
        System.out.println("最大值:" + max);//200
        num1 = 10;
        System.out.println("max.......num1:" + num1);//10
    }
    //调用modifyArray
        int[] num = {1, 2, 3};
        //num作为实参传递: 传递的内存的地址值  引用类型(作为实参传递 传递的是内存的地址值)  排除String+包装类
        modifyArray(num);
        System.out.println("main....num:" + Arrays.toString(num));// [-100, 2, 3]

public static void modifyArray(int[] array) {

        //1.预判: null
        if (array == null) {
            System.out.println("参数不能为null");
            return;
        }

        //2.判断数组的长度
        if (array.length == 0) {
            System.out.println("[]");
            return;
        }
        //3.遍历数组元素
        for (int i : array) {
            System.out.println("元素:" + i);
        }

        //修改第一个数据
        array[0] = -100;
        System.out.println("modifyArray...array:" + Arrays.toString(array));

    }
    String str = new String("hello");
        // private final char value[]; 维护String的数据    final  常量(值不可变)
        int num = 100;
        modifyStr(str, num);

        System.out.println("main........");
        System.out.println(str);//hello
        System.out.println(num);//100

 public static void modifyStr(String str, int num) {

        System.out.println(str);
        System.out.println(num);
        System.out.println("modifyStr。。。。修改之后。。。。");
        str = new String("hello world");
        num = 200;
        System.out.println(str);
        System.out.println(num);

    }

3.4有参有返回值

public static void main(String[] args) {

//        System.out.println(10 / 0);

        //调用calculate
        Scanner input = new Scanner(System.in);
        System.out.println("请录入第一个数据:");
        double num1 = input.nextDouble();
        System.out.println("请录入第2个数据:");
        double num2 = input.nextDouble();

        System.out.println(calculate((int) num1, (int) num2, '/'));
    }

    /**
     * 模拟计算器的功能: 算术运算  +  -  *  /  %
     *
     * @param num1
     * @param num2
     * @param operator 算术运算符
     * @return 运算之后结果
     */
    public static double calculate(int num1, int num2, char operator) {
        double result = 0;
        switch (operator) {
            case '+':
                result = num1 + num2;
                break;
            case '-':
                result = num1 - num2;
                break;
            case '*':
                result = num1 * num2;
                break;
            case '/':
                //num2!=0
                if (num2 == 0) {
                    System.out.println("除数不能为0");
                    //结束当前整个程序
                    System.exit(0);//java项目中有效
                    // web项目(运行服务器)   throw
                }
                result = num1 / num2;
                break;
            case '%':
                result = num1 % num2;
                break;
        }
        return result;
    }


    public static String demo(int num, String str) {
        return "";
    }

方法重载

在一个文件中 出现了重名的方法。 Arrays.toString() Arrays.sort()
方法名必须相同
形参类型(数量)必须不同
不考虑返回值以及修饰符

public static long max(long num1, long num2) {
        return Math.max(num1, num2);
    }

    final int max(long num1, int num2) {
        return 100;
    }

    public static double max(double num1, double num2) {
        return 0;
    }

    public static int max(int num1, int num2) {
        return (num1 > num2) ? num1 : num2;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值