概念: 方法是一种语法结构,可以将一段代码封装成一个功能,方便复用。
特点:
- 提高代码复用性
- 提高逻辑清晰性
一、基本方法定义和调用
 1、有反有参方法
 修饰符 返回类型 方法名( 形参列表 ){
 方法体代码;
 return 返回值;
 }
	public static void main(String[] args) {
        System.out.println(sum(1, 3, 5, 8, 7));
    }
    public static int sum(int... array){ //int... 效果等于 int[] 数组声明,是一种新型的同类型数据形参声明类型,其形式等于 int a1,int a2,...,int an
        int sum = 0;
        for (int i : array) {
            sum += i;
        }
        return sum;
    }
2、有反无参方法
 修饰符 返回类型 方法名(){
 方法体代码;
 return 返回值;
 }
	public static void main(String[] args) {
        System.out.println(Arrays.toString(getVerityRandom()));
    }
    public static int[] getVerityRandom(){
        int[] verity = new int[6];
        for (int i = 0; i < 6; i++) {
            verity[i] = (int) (Math.random()*8+1);
        }
        return verity;
    }
3、无反有参方法
 修饰符 void 方法名( 形参列表 ){
 方法体代码;
 }
	public static void main(String[] args) {
        printContent("这就是有参无反型方法");
    }
    public static void printContent(String printContent){
        System.out.println(printContent);
    }
4、无反无参方法
 修饰符 void 方法名(){
 方法体代码;
 }
	public static void main(String[] args) {
        printContent();
    }
    public static void printContent(){
        System.out.println("这就是无反无参型方法");
    }
5、调用方法
 格式: 方法名(参数列表)
方法常见问题
- 方法的编写顺序无所谓(仅限Java)
- 方法不能嵌套
- 方法返回类型为void,则不需要return返回数据;若写明具体返回类型,则必须使用return返回响应数据类型数据
- return是一个方法的程序终点
- 方法不调用不执行,调用时严格按照参数列表顺序
方法案例
 1、计算1~n的和。
	public static void main(String[] args) {
        printResult(20,2);
    }
    public static void printResult(int start,int end){
        int sum = 0;
        if (start > end){
            int temp = end;
            end = start;
            start = temp;
        }
        for (int i = start; i <= end; i++) {
            sum += i;
        }
        System.out.println(sum);
    }
2、判断奇偶并找出最值
	public static void main(String[] args) {
        printResult(1,7,5,9,8,3);
    }
    public static void printResult(int... array){
        int max = array[0];
        int min = array[0];
        for (int i : array) {
            System.out.println(i%2==0?"偶数="+i:"奇数="+i);
            max = Math.max(max, i);
            min = Math.min(min, i);
        }
        System.out.println("max="+max+",min="+min);
    }
奇数=1
奇数=7
奇数=5
奇数=9
偶数=8
奇数=3
max=9,min=1
三、方法内存图
 方法在未被调用时存储在方法区中。
 调用时进入栈内存中执行。
 结束调用后方法将从栈内存弹出,由JVM进行垃圾回收清理内存。
 
 四、方法参数传递机制
 Java中最常用的传递方式是值传递,是指将一个实际参数的值赋值给形式参数,在方法改变形式参数值时,并不实际改变实际参数。
 1、基本数据类型传递
 方法在方法区加载完毕后,当我们依次调用方法时,首先执行main函数,main函数中有变量a的声明与初始化,所以开辟了一个空间,接着执行print方法,所以需要在方法区查找print方法,在占内存中开辟print方法空间,main方法中的实参a,将值赋值给print方法的形参content,print方法继续执行方法代码。
 
2、引用数据类型传递
 引用数据类型传递的是内存地址值,与基本数据类型的传递是相同的,并通过内存地址获取内存单元存储的数据,再进行执行。
注意: 引用数据类型传递的是内存地址,也就是非形式参数值,所以当我们改变引用数据类型时,也会改变实际参数。
五、方法常见形式与技术
 1、方法重载
 概念: 同一个类出现多个名称相同,参数列表不同(个数、类型、顺序的不同) 的方法,被称为方法重载。
 作用: 方法名相同表示同一类功能,根据参数列表的不同表示不同场景的调用。
2、单写return关键字
 单独使用return关键字,可以立即跳出当前方法执行。


















