方法的知识以及一些案例

本文介绍了Java中的方法定义、调用和参数传递机制,包括方法如何提高代码复用性,方法的返回值类型和形参列表的使用,以及方法的重载概念,强调了方法间的平级关系和return语句的使用规则。
摘要由CSDN通过智能技术生成

方法的概述

●方法是一种语法结构,它可以把一段代码封装成一个功能,一边方便重复调用。

●使用方法的好处:提高代码的复用性,程序逻辑更清晰。


public static void  main (String [] args){  
}
public static int sum(int a, int b ){
  }


public class Demo1 {
    public static void main(String[] args) {

      int c1=  sum(10,20);
        System.out.println(c1);

        int c2= sum(20,90);
        System.out.println(c2);
    }

    public static int sum(int a, int b) {
        int c = a + b;
        return c;
    }
}

方法的定义,调用

方法完整的定义形式,调用

方法定义的完整格式

修饰符   返回值类型   方法名(形参列表){
         方法体代码
      return   返回值;
   }

方法的调用格式

●方法必须调用才可以跑起来,调用格式:方法名(...);

方法的调用流程

●方法没有被调用时,再方法区中的字节码文件忠存放

●方法被调用的时候,需要进入到栈内存中运行

方法合适的注意点

●方法的修饰符:暂时用 public ststic 

●方法声明了具体的返回值类型,内部必须用return返回对应类型的数据

●形参列表可以有多个,也可以没有,多个形参必须用“,”隔开,且不能给初始化值

方法的其他写法

方法定义时:返回值类型,形参列表可以按照需求

填写修饰符   返回值类型    方法名(形参列表){
   方法体代码
   return  返回值
//学会方法的其他形式及其流程

public class Demo1 {
    public static void main(String[] args) {

     sssc();
        System.out.println();
        

    }
   // 无参数无返回值的方法
    public static void sssc () {
        for (int i=1;i<4;i++){
            System.out.println("hello,world");
        }
    }
}

注意事项:

●如果方法不需要返回结果,返回值类型必须申明为void(无返回值),此时方法内部不可以使用return返回数据

●方法如果没有参数,或者返回值类型申明为void可以称为无参数,无返回值的方法,

方法使用的常见问题

                      

 ●方法的编写反序无所谓。

●方法与方法之间是平级关系,不能嵌套定义。

●方法的返回值羹型为 void (无返回值),方法内则不能使用 return 返回数据,如果方法的返回值类型写了具体美型,方法内部则必须使用 return 返回对应类型的数据,

●return 语句下面,不能编写代码,因为永远执行不到,属于无效的代码。

●方法不调用就不执行,调用时必须严格匹配方法的参数情况。

●有返回值的方法调用时可以选择定义变量接收结果,或者直接输出调用,甚至直接调用;无返回值方法的调用只能直接调用一下                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          

方法案例

    • 计算1~n的和返回

public class Demo1 {
    public static void main(String[] args) {

        sum(8);
        System.out.println("1~n的和为"+sum(5));


    }

    public static int sum(int n) {
        int sum =0;
        for (int i = 1; i <= n; i++) {
            sum += i;

        }
        return sum;
    }
    • 判断整数是奇数还是偶数 

public class Demo1 {
    public static void main(String[] args) {

        arr(9);


    }

    public static int arr(int n) {
        if (n % 2 == 0) {
            System.out.println("n为偶数");

        } else {
            System.out.println("n为奇数");
        }
        return n;
    }
}
    • 数组求最值改方法实现

public class Demo1 {
    public static void main(String[] args) {
     //需求:使用方法,找出任意数组的最大值返回
        int [] arr ={12,13,34,56,78,90};
        int max =MaxDate(arr);
        System.out.println("最大值为"+max);

    }

    public static int MaxDate(int[] arr) {
        //找出数组的最大值返回
        int max =arr[0];
        //遍历数组的每一个元素,与最大值的数据进行比较,若较大的替换
        for (int i = 1; i < arr.length; i++) {
            if(arr[i]>max){
                max = arr[i];
            }

        }
      return max;
    }
}

方法的参数传递机制

    • 基本类型的参数传递机制

Java的参数传递机制:值传递

 ●在传输实参给方法的形参是,并不是传输实参变量本身,而是传输实参变量储存的值,这就是值传递。

注意:

实参:方法内部定义的变量

形参 :如在定义方法时,“()”中申明的参数

public class Demo1 {
    public static void main(String[] args) {
    //目标:理解Java的基本类型的参数传递,值传递
        int a=10;
        chang (a);
        System.out.println(a);  //10

    }

    public static int chang(int a) {
        System.out.println(a); //10
        a =20;
        System.out.println(a);  //20
      return a;
    }
    • 引用类型的参数传递

public class Demo1 {
    public static void main(String[] args) {
    //目标:理解Java的引用类型的参数传递,值传递
        int[] arrs={12,13,14};
        chang(arrs);
        System.out.println(arrs[1]);  //222

    }

    public static void chang(int []arrs) {
        System.out.println(arrs[1]);  //13
        arrs[1] =222;
        System.out.println(arrs[1]);   //222
    }

基本类型和引用类型的参数在传递的时候的异同

  1. 都是值传递

  1. 基本类型的参数传递储存的是数据值

  1. 引用类型的参数传递储存的是地址值

方法的参数传递案例

    • 打印整形数组内容

需求:设计一个方法用于输出任意整型数组的内容,要求输出以下形式
“该数组没有为:[11,22,33,44,55]"

public class Demo1 {
    public static void main(String[] args) {
        int [] num ={10,20,30,40,50};
        printArray(num);


    }
    
    public static void printArray(int []arr) {
        System.out.print("[");
       for (int i = 0; i < arr.length; i++) {
         //   if (i == arr.length - 1) {
          //      System.out.println(arr[i] + ",");

          //  } else {
            //    System.out.println(arr[i]);
        System.out.print(i ==arr.length-1? arr[i] :arr[i] +",");
            }
        System.out.println("]");
        }


    }
    • 从数组中查询指定元素的索引

需求:设计一个方法可以接收整型数组,喝药查询的元素值,最终要返回元素在该数组中的索引,如果数组中不存在该元素,则返回-1
public class Demo1 {
    public static void main(String[] args) {
        int[] num = {10, 20, 30, 40, 50};
        int index = printArray(num, 90);
        System.out.println("查询的索引是" + index);


    }

    public static int printArray(int[] arr, int date) {
        //找出数据的索引
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == date) {
                return i;
            }

        }
        return -1;

    }
}
    • 比较两个数组的内容是否一样

需求:

如果两个数组的类型,元素个数,元素顺序和内容是一样的我们就认为这2个数组是一模一样的。

例如:如下2个数组是一样的

int [] arrs -(10,J0,0];

inL [] arrs -(10,20,30);

请使用方法完成:能够判断任意两个整型数组是否一样,并返回 true 或者 false

public class Demo1 {
    public static void main(String[] args) {
        int[] num = {10, 20, 30, 40, 50};
        int[] index = {10, 39, 90, 89, 78};
            System.out.println(compare(num,index));

    }

    public static boolean compare(int[] arr1, int[] arr2) {
//判断两个数组的内容是否一样,先判断长度,再判断元素
        if (arr1.length == arr2.length) {
            for (int i = 0; i < arr1.length; i++) {
                if (arr1[i] != arr2[i]) {
                    return false;
                }
            }
            return true;
        } else {
            return false;
        }

    }
}

方法重载

同一个类中,出现多个方法名称相同,但是形参列表是不同的,那么这些方法就是重载方法

方法重载的好处

●可读性好,方法名称相同提示是同一类型的功能,通过形参不同实现功能差异化的选择,这是一种专业的代码设计。

方法重载的识别技巧

●只要是同一个类中,方法名称相同、形参列表不同,那么他们就是重载的方法,其他都不管!

(如:修饰符,返回值类型都无所谓)

●形参列表不同指的是:形参的个数、类型、顺序不同,不关心形参的名称。

单独使用return关键字

return 可以立即跳出并结束当前方法的执行; return 关键字单独使用可以放在任何方法中

如果要直接结束当前方法的执行,怎么解决

● return ;跳出并立即结束所在方法的执行

● break ;跳出并结束当前所在循环的执行

● continue ;结束当前所在循环的当次继续,进入下一次执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ananan__2023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值