(九)方法

(九)方法,第1张

目录

        前言:

                一、概述

                二、方法的好处

                三、方法的格式

                四、方法格式的注意点

                五、例题1

              例题2

                       例题3

        六、方法调用的内存流程

        七、方法的参数传递机制

        八、方法重载

        九、return关键字的使

前言:

      Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程  。

        Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。

一、概述

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

二、方法的好处

        ①提高了代码的复用性。

        ②让程序的逻辑更清晰

三、方法的格式

修饰符 返回值类型 方法名 (形参列表){

        方法体代码 (需要执行的功能代码)

        return 返回值;

}

四、方法格式的注意点

        ①方法的修饰符:暂时都使用public static修饰。

        ②方法申明了具体的返回值类型,内部必须使用return返回对应的类型。

        ③形参列表可以有多个,甚至没有;如果有多个形参列表必须用","隔开,且不能给初始化值。

        ④如果方法不需要返回结果,返回值必须申明成void(无返回值),此时方法内部不可以使用return返回数据;如果方法的返回值写了具体类型,方法内部则必须使用return返回数据。

        ⑤方法如果没有参数,或者返回值类型申明为void可以称为无参数/无返回值的方法,依此类推。

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

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

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

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

五、例题1:

        定义一个方法,方法计算出1-n的和并返回。

public class Test {
    /*定义一个方法,方法计算出1-n的和并返回
     */
    public static void main(String[] args) {
        System.out.println("1~5的和为"+sum(5));
        System.out.println("-------------");
        System.out.println("1~100的和为"+sum(100));
    }
    public static int sum(int n){
        int sum = 0;
        for (int i = 1; i <=n ; i++) {
            sum +=i;
        }
        return sum;
    }
}
例题2:

        拿一个整数,然后调用方法,把整数交给方法,在方法中输出该数为奇数还是偶数。

public class Test {
    /*
    拿一个整数,然后调用方法,把整数交给方法,在方法中输出该数为奇数还是偶数
     */
    public static void main(String[] args) {
        check(11);
        System.out.println("----------------");
        check(29);
    }
    public static void check(int number){
        if (number%2 == 0) {
            System.out.println(number+"是偶数");
        }else {
            System.out.println(number+"是奇数");
        }
    }
}
例题3:

        找出数组的最大值,改造成方法,可以支持返回任意整型数组的最大值数据。

public class Test {
   /*
   找出数组的最大值,改造成方法,可以支持返回任意整型数组的最大值数据
   》要返回最大值,需要申明返回值类型
   》需要接收数据,需要申明形参列表
    */
   public static void main(String[] args) {
      int[] ages = {11,22,33,23,14,24,65,87,34};
      int max = MaxData(ages);
      System.out.println("最大值数据是: "+max);
   }
   public static int MaxData(int[] arr){
      //找出数组的最大值
      int max =arr[0];
      //遍历整数的每个元素与最大值的数据进行比较
      for (int i = 0; i < arr.length; i++) {
         if (arr[i]>max) {
            max = arr[i];
         }
      }
      return max;
   }
}
六、方法调用的内存流程

        方法没有被调用时,在方法区中的字节码文件中存放;

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

七、方法的参数传递机制

1.java的参数传递机制:值传递。

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

注意:

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

        形参:如在定义方法时,"( )"中声明的参数。

2.基本类型的参数传递

 

3.引用类型的参数传递

 

4.基本类型和引用类型的参数在传递的时候有什么不同?

        ①都是值传递;

        ②基本类型的参数传输存储的数据值;

        ③引用类型的参数传输存储的地址值。

八、方法重载

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

(1)代码演示:

public class Test2 {
    /*
​
     */
    public static void main(String[] args) {
        fire();
        fire("M国");
        fire("R国", 123);
    }
    public static void fire(){
        fire("H国");
    }
    public static void fire(String location){
        System.out.println("默认发射一枚武器给"+location+"~~~~");
    }
​
    public static void fire(String location,int number){
        System.out.println("默认发射"+number+"枚武器给"+location+"~~~");
    }
}

(2)总结:

1.方法重载是什么样的?

        同一个类中,多个方法的名称相同,形参列表不同。

2.使用方法重载的好处?

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

3.方法重载的识别技巧

        ①只要在同一类中、方法名称相同、形参列表不同,那么他们就是重载的方法,其他都不管!(如:修饰符,返回值类型都无所谓)

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

九、return关键字的使用

1.return关键字:

        可以立即跳出并结束当前方法的执行;

return关键字单独使用可以放在任何方法中。

2.代码演示:

public class Test2 {
    /*
    return关键字的使用
     */
    public static void main(String[] args) {
        System.out.println("开始。。。。");
        chu(10,0);
        System.out.println("结束。。。。");
    }
    public static void chu(int a,int b){
        if (b == 0) {
            System.out.println("您输入的数据有问题,除数不能为0");
            return;//立即跳出当前方法,并结束当前方法的执行
        }
        int c = a/b;
        System.out.println("结果为:"+c);
    }
}

3.总结:

        return:跳出并立即结束所在方法的执行。

        break:跳出并结束当前所在循环的执行。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/3002922.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-27
下一篇 2022-09-27

发表评论

登录后才能评论

评论列表(0条)

保存