【方法-学习笔记】

方法

方法是程序中最小的执行单元
作用:
1.提高代码复用性
2.提高代码可维护性

方法的格式
1.方法的定义把一些代码打包在一起

2.方法调用方法定义后并不是直接运行的,需要手动调用才能执行
方法必须先定义后调用,否则程序将报错

无参数格式

定义一个方法,在方法内部打印一个人所有信息

package com.hh.methoddemo;
public class MethodDemo2 {
    public static void main(String[] args) {
        printInfo();
    }
    public static void printInfo(){
        System.out.println("aa");
        System.out.println("18");
        System.out.println("boy");
    }
}

定义一个方法,在方法内部定义两个变量,并求出他们的和并进行打印

package com.hh.methoddemo;
public class MethodDemo3 {
    public static void main(String[] args) {
        getSum();
    }
    public static void getSum(){
        int num1 = 10;
        int num2 = 20;
        int result = num1 + num2;
        System.out.println(result);
    }
}

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

有参数格式

定义
public static void 方法名(参数){… …}
public static void 方法名(参数1,参数2,…){… …}
调用
方法名(参数);
方法名(参数1,参数2,…);
注意
方法调用时,形参和实参必须一一对应,否则程序将报错

package com.hh.methoddemo;
public class MethodDemo4 {
    public static void main(String[] args) {
        getSum(1,2);
    }
    public static void getSum(int num1,int num2){
        int result = num1 + num2;
        System.out.println(result);
    }
}

形参和实参
1.形参:是指方法定义中的参数
2.实参:是指方法调用中的参数

练习定义一个方法求长方形的周长

package test;
public class test1 {
    public static void main(String[] args) {
        getLength(10,20);
    }
    public static void getLength(int len,int width){
        int length = (len + width) * 2;
        System.out.println(length);
    }
}

定义一个方法,求圆的面积,将结果在方法中打印

package test;
public class test2 {
    public static void main(String[] args) {
        scale(1.5);
    }
    public static void scale(double r){
        double scales = r * r * 3.14;
        System.out.println(scales);
    }
}

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

带返回值格式

方法的返回值其实就是方法的运行最终结果
public static 返回值类型 方法名(参数){
方法体;
return 返回值;
}
方法的调用
1.直接调用:方法名(实参)
2.赋值调用:整数类型 变量名 = 方法名(实参);
3.输出调用:System.out.println(方法名(实参));

定义一个方法,求一家商场每个季度的营业额,根据方法的结果计算出全年营业额

package com.hh.methoddemo;
public class MethodDemo5 {
    public static void main(String[] args) {
        int spring = getSum(10,20,30);
        int summer = getSum(20,15,20);
        int fall = getSum(10,20,15);
        int winter = getSum(15,20,15);
        System.out.println(spring + summer + fall + winter);
    }
    public static int getSum(int num1,int num2,int num3){
        int result = num1 + num2 + num3;
        return result;
    }
}


定义方法,比较两个长方形的面积

package test;
public class test3 {
    public static void main(String[] args) {
        double area1 = area(5.1,4.3);
        double area2 = area(4.2,6.3);
        if(area1 > area2){
            System.out.println("1");
        }else if(area1 == area2){
            System.out.println("equal");
        }else{
            System.out.println("2");
        }
    }
    public static double area(double len,double width){
        return len * width;
    }
}

方法的注意事项
1.方法不调用就不执行
2.方法与方法之间是平级关系,不能相互嵌套定义
3.方法的编写顺序和执行顺序无关
4.方法的返回值类型为void,表示该方法没有返回值,没有返回值的方法可以省略return不写.如果要编写return,后面不能跟具体数据
5.return语句下面,不能编写代码,因为永远执行不到,属于无效代码

return关键字
方法没有返回值:可以省略不写,如果书写,表示结束方法
方法有返回值:必须要写,表示结束方法和返回结果

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

方法的重载

在同一个类中,定义了多个同名的方法,这些同名的方法具有相同的功能
每一个方法具有不同的参数类型参数个数,这些同名的方法,就构成了重载关系

简单记:同一个类中,方法名相同,参数不同的方法.与返回值无关
在这里插入图片描述
在这里插入图片描述
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
输出语句
System.out.println(“abc”);//只打印abc,在进行换行
System.out.print(“abc”);//只打印abc,不换行
System.out.println();//不打印任何数据,只做换行处理

设计一个方法用于数组遍历,要求遍历的结果是在一行上的.例如[11,22,33,44,55]

package test;
public class test5 {
    public static void main(String[] args) {
        int[] arr = {11,22,33,44,55};
        bianli(arr);
    }
    public static void bianli(int[] array){
        System.out.print("[");
        for (int i = 0; i < array.length; i++) {
            if(i == array.length-1){
                System.out.print(array[i]);
            }else{
                System.out.print(array[i]+" ");
            }
        }
        System.out.print("]");
        System.out.println();
    }
}

设计一个方法求数组最大值,并将最大值返回

package test;
public class test6 {
    public static void main(String[] args) {
        int[] array = {11,22,33,44,55};
        System.out.println(maxNumber(array));
    }
    public static int maxNumber(int[] array){
        int max = array[0];
        for (int i = 1; i < array.length; i++) {
            if(array[i] > max){
                max = array[i];
            }
        }
        return max;
    }

}

定义一个方法判断数组中的某个数是否存在,系那个结果返回给调用处

package test;
public class test7 {
    public static void main(String[] args) {
        int[] arr = {11,22,33,44,55};
        boolean flag = isExist(arr,12);
        System.out.println(flag);
    }
    public static boolean isExist(int[] array,int n){
        for (int i = 0; i < array.length; i++) {
            if(array[i] == n){
                return true;
            }
        }
        return false;
    }
}

return和break的区别
return跟循环没有关系,跟方法有关,表示1.结束方法,2.返回结果.如果方法执行到了return,那么整个方法全部和结束,里面的循环也会随之结束
break跟方法没有关系,结束循环或者结束switch

定义一个方法copyOfRange(int[] arr,int from,int to)
将数组arr中索引from(包含from)开始.到索引to就结束(不包含to)的元素复制到新数据中,将新数组返回

package test;

public class test8 {
    public static void main(String[] args) {
        //定义一个方法copyOfRange(int[] arr,int from,int to)
        //将数组arr中索引from(包含from)开始.到索引to就结束(不包含to)的元素复制到新数据中,将新数组返回
        int[] arr = {11,22,33,44,55};
        int[] copyArray = copyOfRange(arr,1,5);
        for (int i = 0; i < copyArray.length; i++) {
            System.out.println(copyArray[i]);
        }
    }
    public static int[] copyOfRange(int[] arr,int from,int to){
        int[] copyArr = new int [to-from];
        int index = 0;
        for (int i = from; i < to; i++,index++) {
            copyArr[index] = arr[i];
        }
        return copyArr;
    }
}

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

方法的内存

1.方法调用基本内存原理
2.方法传递基本数据类型原理
3.方法传递引用数据类型原理

基本数据类型和引用数据类型
基本数据类型变量当中存储的是真实数据,数据存储在自己的空间中,赋值给其他变量时,也是赋的真实值
引用数据类型变量当中存储的是地址值,数据存储在其他空间,赋值给其他变量时赋的是地址值

传递基本数据类型时,传递的是真实的数据,形参的改变,不影响实际参数的值
传递引用数据类型时,传递的是地址值,形参的改变,影响实际参数的值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值