java的方法(函数)

0 阅读4分钟

方法的定义

  • 方法也可以叫函数,可以帮我们实现一些特定的需求。如果系统方法无法满足,我们也可以自定义方法,还可以在注释中用@parm对方法进行说明
    /**
     * 计算start-end之间所有整数的和
     *
     * @param start 开始
     * @param end   结束
     */                           //参数列表
    public static 返回值类型 方法名(int start, int end) {
        //这里面是方法体

        //防止前者比后者大
        if (start > end) {
            int temp = start;
            start = end;
            end = temp;
        }

        int b = 0;
        for (int j = start; j <= end; j++) {
            b += j;
        }
        System.out.println(start + "-" + end + "之间所有整数的和等于:" + b);

    //return 0; 如果有指定返回值类型,就需要return。 如果是void,就不需要
    }

方法的使用

  • 在main函数中调用
public class demo {  
    public static void main(String[] args) {  
        sum(1, 2);  
    }
    
    public static int sum(int start, int end) {
	    //防止前者比后者大
	    if (start > end) {
	        int temp = start;
	        start = end;
	        end = temp;
	    }
	    int b = 0;
	    for (int j = start; j <= end; j++) {
	        b += j;
	    }
	    System.out.println(start + "-" + end + "之间所有整数的和等于:" + b);
	    return b; //如果有指定返回值类型,就需要return。 如果是void,就不需要
    }
}

参数列表

调用方法的时候,需要严格按方法的参数列表(原型)来传值,匹配对应的数量和类型。

  • 字面量、变量、其他方法的返回值、计算后的结果,都可以直接传递给方法:
sum(1, 2); 
sum(max, i); 
sum(addExact5(9, 5, 6, 7, 8), 9); 
sum(1 + 1, 2 + 2);
  • 调用时传递的参数类型比参数列表定义的*类型更小(窄)*的时候,编译器会自动匹配、转换(==状态提升)==;
  • 如果更大(宽),就需要你自己做取舍,做强制转换(精度丢失);
  • 如果相互之间没办法转换,就无法使用;比如布尔值就是无法通过强制转成为int或者double类型的
  • 每个方法都有自己相对独立的变量空间,和其他方法各自独立。(方法中的参数只是形参)

返回值

  • 如果有声明方法的返回值类型,那么就必须用return返回对应类型的值,这个值可以是基本类型,也可以是某个对象类型;
  • 一个方法可以声明多个return,但如果遇到其中一个,就会提前结束方法的执行。
  • 即使是返回void的方法也可以使用return来提前结束当前方法

本地变量(形式参数)

  • 方法被调用后计算机会在内存空间中,确切的来说是在内存中的jvm中分配一段内存空间,方法里面的形式参数就会作为方法运行所需要的临时变量,存在内存空间中,当方法调用完毕就会从内存空间中销毁,每次调用方法都会进行上述的过程

作用域

  • 作用域:顾名思义,就是能够起作用的范围是哪些区域。本地变量的作用域也就是大括号里面;

变量的生存期(生命周期)

- 变量从生成到销毁,这一过程我们称之为变量的生命周期
- 进入到某个作用域之前,里面的变量是不会被创建的。
- 每个变量也都会有自己的生存期,在被创建的时候诞生,在作用域消失的时候就没了;
  • 参数列表、方法里新定义的都是本地变量;
  • 不同作用域的本地变量,可以重名,不冲突。但是一个大括号里面的下一级出现同名就会出现冲突。
  • 本地变量不会被自动初始化,但是在使用前必须被初始化。

方法的注解

  • 我们可以对方法进行注解以方便ide帮助我们检查代码,和提示我们错误

  • 常有的方法注解有

    • Deprecated 注解该方法已经过时,这样在后续的开发如果还用这个方法,ide会提醒我们最好不要使用该方法
    • Override 注解该方法是一个重写方法,这样当父类没有该方法的时候,ide会提醒我们去父类加上